A felhasználói fiókok felügyelete (User Account Control [UAC]) egy, a Microsoft által a Windows Vista, ill. a Windows Server 2008 operációs rendszerekkel bevezetett technológia és biztonsági infrastruktúra, aminek egy enyhített verziója megtalálható a Windows 7-ben, a Windows Server 2008 R2-ben, a Windows 8-ban, a Windows Server 2012-ben és a Windows 10-ben is. A célja, hogy a Microsoft Windowst biztonságosabbá tegye azáltal, hogy a szoftveralkalmazások hozzáférését az általános felhasználói jogosultságokra korlátozza, amíg egy rendszergazda több hozzáférést nem ad. Így csak a felhasználó által megbízhatónak tartott alkalmazások kaphatnak rendszergazdai jogokat, és a rosszindulatú szoftverektől védve marad az operációs rendszer. Más szavakkal, a felhasználói fióknak lehetnek rendszergazdai jogai, de a felhasználó által futtatott alkalmazások nem öröklik ezeket, kivéve ha ez már előre jóvá lett hagyva vagy a felhasználó kifejezetten engedélyezi.
Az UAC Meghatalmazottintegritás-ellenőrzéssel (Mandatory Integrity Control) választja szét a különböző jogokkal futó folyamatokat. Hogy csökkentsék az alacsonyabb hozzáféréssel rendelkező alkalmazások magasabb hozzáféréssel rendelkezőkkel való kommunikációját, egy másik új technológiát, a Felhasználói Felület Jogelszigetelését (User Interface Privilege Isolation) használják a Felhasználói Fiókok Felügyelete mellett, hogy ezeket a folyamatokat elválasszák egymástól. Erre kiváló példa az Internet Explorer 7 „Védett Módja”.
Története A nagyszámítógépek és szerverek operációs rendszereiben évtizedek óta különbséget tettek kiemelt felhasználók és a többi felhasználó között. Ez nyilvánvalóan biztonsági és adminisztrációs elem egyszerre, védte a rendszerbeállításokat attól, hogy a felhasználók véletlenül megváltoztassák.
A korai otthoni Microsoft operációs rendszerekben (mint az MS-DOS, a Windows 95, a Windows 98 és a Windows Me) nem volt meg az ugyanazon a gépen különböző felhasználói fiókok koncepciója. A Windows 95-ben, a Windows 98-ban, és a Windows Me-ben minden alkalmazásnak magával az operációs rendszerével egyenrangú jogai voltak; az MS-DOS-ban és a Windowsban az 1.0-tól a 3.11-es verzióig minden alkalmazásnak annyi joga volt, mint az operációs rendszernek. A több felhasználói fiókot a Windows NT-vel vezették be, de a gyakorlatban a legtöbb felhasználó mint rendszergazda folytatta a normál tevékenységét. Emellett néhány alkalmazásnak szüksége volt arra, hogy a felhasználó rendszergazda legyen ahhoz, hogy néhány vagy az összes funkciója működjön. A Windows és a Microsoft-alkalmazások későbbi verziói ösztönözték a nem-rendszergazdai fiókkal való bejelentkezést, bár néhány alkalmazás továbbra is csak rendszergazdai jogokkal működött. A Microsoft nem tartja Windows-megfelelőségre alkalmasnak azokat az alkalmazásokat, amik rendszergazdai jogokkal működnek; ezeknek a csomagolásán nem használható a Windows-megfelelőség logó.
A Microsoft a Vista biztonsági rendszerét először a Korlátozott Felhasználói Fiókból (Limited User Account) [LUA]) fejlesztette ki, majd a koncepciót átnevezte Felhasználói Fiókvédelemmé (User Account Protection [UAP]), míg végül Felhasználói Fiókok Felügyelete néven került a termékekbe. A Windows Vistával kezdődően a Felhasználói Fiókok Felügyelete egy integrált, kiegyensúlyozott megközelítését kínálja a „felhasználó kiemelése szükség esetén” ösztönzésének. Az UAC kulcsa, hogy úgy lehet felhasználók jogosultsági szintjét emelni, hogy közben a felhasználó kontextusa nem változik (a „Béla” felhasználó továbbra is „Béla”). Mint mindig, nehéz úgy új biztonsági funkciókat bevezetni, hogy közben ne sérüljön a kompatibilitás meglevő alkalmazásokkal.
Ha valaki általános jogú felhasználóként jelentkezik be a Vistába, a rendszer egy belépési munkamenetet indít és egy legalacsonyabb szintű jogokból álló jogosultságot rendel hozzá. Ezáltal az új belépési munkamenet nem hajthat végre a teljes rendszert érintő változtatásokat. Amikor valaki olyan felhasználóként jelentkezik be, amelyik tagja a Rendszergazdák csoportnak, a rendszer két külön jogosultságot rendel a munkamenethez. Az első tartalmaz minden jogot ami tipikusan egy rendszergazdához tartozik, a második pedig egy korlátozott jogosultság amit egy általános jogú felhasználó kapna. A felhasználói alkalmazások, beleértve a Windows Shellt, a korlátozott jogosultsággal indulnak, így egy korlátozott hozzáférésű környezetben futnak – még akkor is, amikor rendszergazdai fiókból futtatják. Amikor az alkalmazás magasabb szintű hozzáférést kér vagy a felhasználó a „Futtatás rendszergazdaként” opciót választja, az UAC az általános jogú felhasználóktól bekéri a rendszergazdai fiók hitelesítő adatait ill. rendszergazdáktól jóváhagyást kér, és ha megerősítést kap, akkor egy korlátozás nélküli jogosultsággal folytatja vagy kezdi el a folyamatot.
A Windows 7-et a Microsoft egy olyan felhasználói felülettel bővítette, amivel változtatni lehet a Felhasználói Fiókok Felügyelete beállításait, és egy új értesítési móddal: az alapértelmezett beállítással. Alapértelmezettként az UAC nem kér hozzájárulást a Windows olyan beállításainak megváltoztatásakor, amihez emelt szintű jogosultság szükséges, ha a felhasználó ezt egy olyan programmal csinálja, ami a %SystemRoot%-ban van tárolva és amit a Microsoft digitálisan aláírt. Azok a programok, amiknek a futtatásához jóváhagyás szükséges, továbbra is értesítést aktiválnak. A többi Felhasználói Fiókok Felügyelete beállítás, ami az új felhasználói felületről módosítható, a Windows Vista-ban a rendszerleíró adatbázison keresztül volt elérhető.
A Windows 8-ban és a 8.1-ben változott ennek a kivitelezése. Amikor valami UAC-t aktivál, sem az alkalmazások, sem a tálca nem látható amikor az asztal elhalványul.
A Windows 10-nek ugyanolyan az elrendezése, mint a Windows 8-nak és a 8.1-nek, de az Évfordulós frissítéssel modernebb kinézetet kapott. Ezenkívül a Windows 10 már támogatja a Windows Hellót is a Felhasználói Fiókok Felügyelete párbeszédpanelen.
UAC-értesítést aktiváló feladatok Olyan feladatok, amikhez rendszergazdai jogosultság szükséges, UAC-értesítést aktiválnak (amennyiben az UAC engedélyezve van); ezeket jellemzően egy pajzs ikon jelöli, rajta a 4 mező 4 színű mint a Windows logón (a Vistánál és a Windows Server 2008-nál), vagy 2 sárga – 2 kék (Windows 7, Windows Server 2008 R2 vagy újabb). Futtatható állományok ikonján egy ilyen pajzs jelenik meg. Az alábbi feladatokhoz van szükség rendszergazdai jogosultságra: Az alkalmazás rendszergazdaként való futtatása Egész rendszert érintő módosítás Olyan mappákban levő fájlok módosítása, amikhez az általános jogú felhasználónak nincs hozzáférése (mint a %SystemRoot% vagy legtöbb esetben a %ProgramFiles%) Egy hozzáférést szabályozó lista (access control list [ACL]) – vagy ahogy általában nevezik, fájl- vagy mappa-hozzáférés – módosítása Alkalmazások telepítése és eltávolítása az alábbi helyeken kívülre/-ről: A %USERPROFILE% (pl.: C:\Users\{bejelentkezett felhasználó}) mappa és almappái Legtöbbször ez itt található: %APPDATA%. (pl.: C:\Users\{ bejelentkezett felhasználó }\AppData). Alapértelmezettként ez egy rejtett mappa. A Chrome telepítéskor rendszergazdai jogot kér a felhasználótól, ha megkapja, akkor a Program Files mappába települ és minden felhasználó számára elérhető lesz, ha nem kapja meg, akkor az %APPDATA% mappába települ és csak az aktuális felhasználó számára lesz elérhető. A Microsoft Store. A telepítő mappája és almappái. A Steam a játékait a /steamapps/ almappába telepíti, így nem jelez az UAC felé. Viszont néhány játék előfeltételeihez is telepítés szükséges, ezek jelezhetnek az UAC felé. Eszközök illesztőprogramjainak a telepítése AciveX vezérlők telepítése A Windows tűzfal beállításainak a módosítása Az UAC beállításainak a módosítása A Windows Update konfigurálása Felhasználói fiókok hozzáadása/eltávolítása Felhasználói fiók típusának módosítása Vendég fiók bekapcsolása (Windows 7 és 8.1) Fájlmegosztás vagy médialetöltés bekapcsolása Szülői Felügyelet konfigurálása A Feladatütemező futtatása Rendszerfájlok biztonsági másolatának visszaállítása Másik felhasználó mappáinak és fájljainak megtekintése vagy módosítása A Lemeztöredezettség-mentesítő futtatása A Beállításszerkesztő futtatása Megjelenítési nyelv telepítése/eltávolítása (Windows 7) A Windows élményindex-értékelés futtatása Hangrögzítés és -lejátszás, hardver / eszközök és energiafogyasztás hibaelhárítása Az energiagazdálkodási beállítások módosítása, Windows funkciók kikapcsolása, programok eltávolítása, módosítása ill. helyreállítása Dátum és idő ill. Internetes időkiszolgálóval való szinkronizálás módosítása Megjelenítési nyelv telepítése/eltávolítása A Könnyű elérhetőség rendszergazdai beállításainak módosítása Átlagos feladatok, mint az időzóna módosítása, nem igényelnek rendszergazdai jogosultságot (bár magának a rendszeridőnek a módosítása igen, mert ezt általában a biztonsági protokollok is használják, mint a Kerberos). Jónéhány feladat, amihez rendszergazdai jogosultság kellett a Windows korábbi verzióiban, mint a kritikus Windows-frissítések telepítése, a Vistában már nem szükséges. Bármilyen program futtatható rendszergazdaként, az ikonjára jobb gombbal kattintva és a „Futtatás rendszergazdaként” opciót választva, kivéve az MSI/MSU csomagok, természetüknél fogva, amikor rendszergazdai jogosultságra van szükség, általában értesítés jelenik meg. Ha ez nem működik, az egyetlen kerülő megoldás a Parancssor megnyitása rendszergazdaként, és az MSI/MSP csomag elindítása innen.
Jellemzői A Felhasználói Fiókok Felügyelete Biztonságos Asztal módban kéri be a hitelesítő adatokat, ilyenkor a Windows Aero kikapcsol, az egész képernyő elhalványul a bejelentkező ablakot kivéve, ami a csak a jogosultságszint-emelő felhasználói felületet mutatja. Egy átlagos alkalmazás nem kommunikálhat a Biztonságos Asztallal. Ez segít megelőzni a csalásokat, mint az emelési kérelmen különböző szöveg vagy kép megjelenítése, vagy az egérmutató manipulálása, hogy a felhasználó, szándéka ellenére, a jóváhagyás gombra kattintson. Amikor a jóváhagyási kérelmet egy kis méretű ablakban futó alkalmazás váltja ki, a Biztonságos Asztal is kis méretű ablakban fut, hogy az aktuális fókuszt ne változtassa meg. A Biztonságos Asztal kikapcsolható, de biztonsági okokból nem tanácsos.
Azok az alkalmazások, amiket azzal a feltételezéssel írtak, hogy a felhasználó rendszergazdai jogosultsággal fogja futtatni, a Windows korábbi verzióiban problémába ütköztek, amikor Korlátozott Felhasználói Fiókból futottak, mert gyakran az egész gép, rendszermappák (mint a Program Files), vagy a rendszerleíró adatbázis kulcsoknak (nevesül a HKLM) a beállításait akarták módosítani. Ezt az UAC a Fájlrendszer és Rendszerleíró adatbázis Virtualizációval próbálja orvosolni, ami a módosításokat (és az ezeket követő olvasásokat) egy felhasználónként létrehozott helyre, a felhasználói profilba irányítja. Például ha egy alkalmazás megpróbál egy olyan mappába írni, mint a "C:\Program Files\appname\settings.ini", amihez a felhasználónak nincs írási joga, a módosítás a "C:\Users\username\AppData\Local\VirtualStore\Program Files\appname\settings.ini"-be lesz irányítva. Az átirányítás csak a nem emelt jogosultsági szintű 32-bites alkalmazásokra működik, és csak akkor, ha nincs egy jegyzékfájljuk, ami konkrét jogosultságot kér.
Jónéhány UAC-beállítás konfigurálható. Lehetséges: Rendszergazdáktól újra bekérni a jelszót a még nagyobb biztonság érdekében; Felhasználóktól Ctrl+Alt+Del lenyomását kérni a bejelentkezés részeként a még nagyobb biztonság érdekében; Csak a Fájlrendszer és Rendszerleíró adatbázis Virtualizáció kikapcsolása A Rendszergazdai engedélyezéses mód (az UAC rendszergazdai értesítései) teljes kikapcsolása; megjegyzendő, hogy amíg ez kikapcsolja a jóváhagyási párbeszédpaneleket, addig a Windows-ba épített LUA-t nem, így még a rendszergazdának megjelölt felhasználók is korlátozott felhasználók tényleges rendszergazdai hozzáférés nélkül.