Az engedélyezés alapjai
Az engedélyezés (néha rövidítve AuthZ) olyan engedélyek beállítására szolgál, amelyek lehetővé teszik az erőforrásokhoz vagy funkciókhoz való hozzáférés kiértékelését. Ezzel szemben a hitelesítés (néha AuthN néven rövidítve) annak bizonyítására összpontosít, hogy egy felhasználóhoz vagy szolgáltatáshoz hasonló entitás valóban az, akinek vallja magát.
Az engedélyezés magában foglalhatja az entitások számára engedélyezett funkciók, erőforrások vagy adatok megadását. Az engedélyezés azt is meghatározza, hogy mit lehet tenni az adatokkal. Ezt az engedélyezési műveletet gyakran hozzáférés-vezérlésnek nevezik.
A hitelesítés és az engedélyezés olyan fogalmak, amelyek nem korlátozódnak csak a felhasználókra. A szolgáltatások vagy démonalkalmazások gyakran úgy vannak létrehozva, hogy az erőforrásokra vonatkozó kéréseket ne egy adott felhasználó nevében, hanem maguk intézhessék. Ebben a cikkben az "entitás" kifejezés egy felhasználóra vagy alkalmazásra hivatkozik.
Engedélyezési módszerek
Az engedélyezés kezelésére számos gyakori módszer létezik. A szerepköralapú hozzáférés-vezérlés jelenleg a leggyakoribb módszer az Microsoft Identitásplatform használatával.
Hitelesítés hitelesítésként
Az engedélyezés legegyszerűbb formája a hozzáférés engedélyezése vagy megtagadása attól függően, hogy a kérést küldő entitás hitelesítése megtörtént-e. Ha a kérelmező bizonyítani tudja, hogy ki az, akinek vallja magát, hozzáférhet a védett erőforrásokhoz vagy funkciókhoz.
Hozzáférés-vezérlési listák
A hozzáférés-vezérlési listák (ACL-ek) használatával történő engedélyezés magában foglalja az erőforrásokhoz vagy funkciókhoz hozzáférő vagy nem hozzáféréssel nem rendelkező entitások explicit listáinak karbantartását. Az ACL-ek finomabb vezérlést biztosítanak az hitelesítés mint engedélyezés felett, de az entitások számának növekedésével egyre nehezebb kezelni.
Szerepköralapú hozzáférés-vezérlés
A szerepköralapú hozzáférés-vezérlés (RBAC) talán a leggyakoribb módszer az alkalmazásokban való engedélyezés kényszerítésére. RBAC használata esetén a szerepkörök az entitások által végezhető tevékenységek típusainak leírására vannak definiálva. Az alkalmazásfejlesztők nem egyéni entitásokhoz, hanem szerepkörökhöz biztosítanak hozzáférést. A rendszergazdák ezután szerepköröket rendelhetnek különböző entitásokhoz, így szabályozhatják, hogy mely entitások férhetnek hozzá az erőforrásokhoz és a funkciókhoz.
A speciális RBAC-implementációkban a szerepkörök leképezhetők engedélygyűjteményekre, ahol egy engedély részletes műveletet vagy végrehajtható tevékenységet ír le. A szerepkörök ezután engedélyek kombinációiként vannak konfigurálva. Az entitások általános engedélykészletének kiszámítása az entitáshoz rendelt különböző szerepkörökhöz megadott engedélyek kombinálásával. Erre a megközelítésre jó példa az RBAC implementáció, amely az Azure-előfizetésekben lévő erőforrásokhoz való hozzáférést szabályozza.
Feljegyzés
Az alkalmazás RBAC különbözik az Azure RBAC-től és a Microsoft Entra RBAC-től. Az Azure-beli egyéni szerepkörök és a beépített szerepkörök egyaránt az Azure RBAC részét képezik, amely segít az Azure-erőforrások kezelésében. A Microsoft Entra RBAC lehetővé teszi a Microsoft Entra-erőforrások kezelését.
Attribútumalapú hozzáférés-vezérlés
Az attribútumalapú hozzáférés-vezérlés (ABAC) egy részletesebb hozzáférés-vezérlési mechanizmus. Ebben a megközelítésben a rendszer szabályokat alkalmaz az entitásra, a elérni kívánt erőforrásokra és az aktuális környezetre. A szabályok határozzák meg az erőforrásokhoz és a funkciókhoz való hozzáférés szintjét. Ilyen lehet például, ha csak a felettes felhasználók férhetnek hozzá a "csak munkaidőben dolgozó vezetők" metaadatcímkével azonosított fájlokhoz munkanapokon 9:00 és 17:00 között. Ebben az esetben a hozzáférés a felhasználó attribútumának (kezelői állapotának), az erőforrás attribútumának (egy fájl metaadatcímkéjének) és egy környezeti attribútumnak (az aktuális időnek) a vizsgálatával határozható meg.
Az ABAC egyik előnye, hogy részletesebb és dinamikusabb hozzáférés-vezérlés érhető el szabály- és feltételkiértékelésekkel anélkül, hogy nagy számú konkrét szerepkört és RBAC-hozzárendelést kellene létrehoznia.
Az ABAC Microsoft Entra-azonosítóval való elérésének egyik módszere a dinamikus tagsági csoportok használata. A dinamikus csoportok lehetővé teszik, hogy a rendszergazdák dinamikusan hozzárendeljenek felhasználókat a kívánt értékeket tartalmazó adott felhasználói attribútumok alapján a csoportokhoz. Létrehozhat például egy Szerzők csoportot, ahol a Szerző beosztású összes felhasználó dinamikusan van hozzárendelve a Szerzők csoporthoz. A dinamikus csoportok az RBAC-vel együtt használhatók az engedélyezéshez, ahol a szerepköröket csoportokhoz rendeli, és dinamikusan hozzárendeli a felhasználókat a csoportokhoz.
Az Azure ABAC egy ma elérhető ABAC-megoldás példája. Az Azure ABAC az Azure RBAC-re épít úgy, hogy adott műveletek kontextusában attribútumokon alapuló szerepkör-hozzárendelési feltételeket ad hozzá.
Engedélyezés megvalósítása
Az engedélyezési logikát gyakran olyan alkalmazásokban vagy megoldásokban implementálják, ahol hozzáférés-vezérlésre van szükség. Az alkalmazásfejlesztési platformok sok esetben köztes szoftvereket vagy más API-megoldásokat kínálnak, amelyek leegyszerűsítik az engedélyezés megvalósítását. Ilyen például az AuthorizeAttribute használata ASP.NET vagy az Útválasztási őrök az Angularban.
A hitelesített entitásra vonatkozó információkra támaszkodó engedélyezési módszerek esetében az alkalmazás kiértékeli a hitelesítés során kicserélt információkat. Például egy biztonsági jogkivonatban megadott információk használatával. Ha jogkivonatokból származó információkat szeretne használni engedélyezésre, javasoljuk, hogy kövesse ezt az útmutatást az alkalmazások megfelelő védelméről jogcímérvényesítéssel. a biztonsági jogkivonatban nem szereplő információk esetén az alkalmazás további hívásokat kezdeményezhet külső erőforrásokhoz.
Nem feltétlenül szükséges, hogy a fejlesztők az engedélyezési logikát teljes egészében az alkalmazásaikba ágyazhassák be. Ehelyett dedikált engedélyezési szolgáltatások használhatók az engedélyezés megvalósításának és felügyeletének központosítására.
Következő lépések
- Az alkalmazások egyéni szerepköralapú hozzáférés-vezérlési implementációjának megismeréséhez tekintse meg az alkalmazásfejlesztők szerepköralapú hozzáférés-vezérlését.
- Az alkalmazás regisztrálásának folyamatáról az Microsoft Identitásplatform integrálható alkalmazásmodellben olvashat.
- Az egyszerű hitelesítésen alapuló engedélyezés konfigurálására példa: Az App Service vagy az Azure Functions-alkalmazás konfigurálása a Microsoft Entra-bejelentkezés használatára.
- A jogkivonat-jogcímek használatával történő megfelelő engedélyezésről további információt a jogcímek érvényesítésével kapcsolatos biztonságos alkalmazások és API-k című témakörben talál .