Szerepköralapú hozzáférés-vezérlés implementálása

A szerepköralapú hozzáférés-vezérlés (RBAC) lehetővé teszi, hogy a felhasználók vagy csoportok meghatározott engedélyekkel rendelkezzenek az erőforrások eléréséhez és kezeléséhez. Az RBAC erőforrás védelmére való implementálása általában magában foglalja a webalkalmazások, az egyoldalas alkalmazások (SPA) vagy az API védelmét. Ez a védelem a teljes alkalmazásra vagy API-ra, adott területekre és funkciókra vagy API-metódusokra vonatkozhat. Az engedélyezés alapjairól további információt az engedélyezés alapjai című témakörben talál.

Amint azt az alkalmazásfejlesztők szerepköralapú hozzáférés-vezérlése ismerteti, az RBAC három módon implementálható a Microsoft Identitásplatform:

  • Alkalmazásszerepkörök – Alkalmazásszerepkörök funkció használata az alkalmazásban a logikával a bejövő alkalmazásszerepkör-hozzárendelések értelmezéséhez.
  • Csoportok – egy bejövő identitás csoporthozzárendeléseinek használata az alkalmazás logikájának használatával a csoporthozzárendelések értelmezéséhez.
  • Egyéni adattár – szerepkör-hozzárendelések lekérése és értelmezése az alkalmazásban lévő logikával.

Az előnyben részesített módszer az alkalmazásszerepkörök használata, mivel ez a legegyszerűbben implementálandó. Ezt a megközelítést közvetlenül a Microsoft Identitásplatform használó alkalmazások készítéséhez használt SDK-k támogatják. A megközelítés kiválasztásáról további információt a Megközelítés kiválasztása című témakörben talál.

Alkalmazásszerepkörök definiálása

Az RBAC alkalmazáshoz való implementálásának első lépése az alkalmazás szerepköreinek meghatározása, valamint a felhasználók vagy csoportok hozzárendelése. Ez a folyamat a Hogyan: Alkalmazásszerepkörök hozzáadása az alkalmazáshoz és azok fogadása a jogkivonatban című témakörben található. Miután meghatározta az alkalmazásszerepköröket, és felhasználókat vagy csoportokat rendelt hozzájuk, hozzáférhet az alkalmazásba érkező jogkivonatokban lévő szerepkör-hozzárendelésekhez, és ennek megfelelően kell eljárnia rajtuk.

RBAC implementálása a ASP.NET Core-ban

ASP.NET Core támogatja az RBAC hozzáadását egy ASP.NET Core-webalkalmazáshoz vagy webes API-hoz. Az RBAC hozzáadása egyszerű végrehajtást tesz lehetővé a ASP.NET Core Authorize attribútummal végzett szerepkör-ellenőrzések használatával. A szabályzatalapú szerepkör-ellenőrzésekhez ASP.NET Core-támogatás is használható.

ASP.NET Core MVC-webalkalmazás

Az RBAC implementálása egy ASP.NET Core MVC-webalkalmazásban egyszerű. Ez elsősorban az Engedélyezés attribútum használatával határozza meg, hogy mely szerepkörök férhetnek hozzá a vezérlők adott vezérlőihez vagy műveleteihez. Kövesse az alábbi lépéseket az RBAC implementálásához egy ASP.NET Core MVC-alkalmazásban:

  1. Alkalmazásregisztráció létrehozása alkalmazásszerepkörökkel és -hozzárendelésekkel a fenti Alkalmazásszerepkörök definiálása című témakörben leírtak szerint.

  2. Tegye a következő lépések valamelyikét:

    • Hozzon létre egy új ASP.NET Core MVC-webalkalmazás-projektet a dotnet cli használatával. Adja meg a --auth jelölőt egy bérlős vagy MultiOrg több-bérlős hitelesítés esetén, a --client-id jelölőt SingleOrg az ügyféllel, ha az alkalmazásregisztrációból, és a --tenant-id bérlőhöz tartozó jelzőt, ha a Microsoft Entra-bérlőről:

      dotnet new mvc --auth SingleOrg --client-id <YOUR-APPLICATION-CLIENT-ID> --tenant-id <TENANT-ID>  
      
    • Adja hozzá a Microsoft.Identity.Web és a Microsoft.Identity.Web.UI kódtárakat egy meglévő ASP.NET Core MVC-projekthez:

      dotnet add package Microsoft.Identity.Web 
      dotnet add package Microsoft.Identity.Web.UI 
      
  3. Kövesse a rövid útmutatóban megadott utasításokat: Bejelentkezés hozzáadása a Microsofttal egy ASP.NET Core-webalkalmazáshoz hitelesítés hozzáadásához az alkalmazáshoz.

  4. Szerepkör-ellenőrzések hozzáadása a vezérlőműveletekhez a Szerepkör-ellenőrzések hozzáadása című témakörben leírtak szerint.

  5. Tesztelje az alkalmazást a védett MVC-útvonalak egyikének elérésével.

ASP.NET Core webes API

Az RBAC implementálása egy ASP.NET Core webes API-ban elsősorban az Engedélyezés attribútum használatával határozza meg, hogy mely szerepkörök férhetnek hozzá a vezérlők bizonyos vezérlőihez vagy műveleteihez. Kövesse az alábbi lépéseket az RBAC implementálásához a ASP.NET Core webes API-ban:

  1. Alkalmazásregisztráció létrehozása alkalmazásszerepkörökkel és -hozzárendelésekkel a fenti Alkalmazásszerepkörök definiálása című témakörben leírtak szerint.

  2. Tegye a következő lépések valamelyikét:

    • Hozzon létre egy új ASP.NET Core MVC webes API-projektet a dotnet cli használatával. Adja meg a --auth jelölőt egy bérlős vagy MultiOrg több-bérlős hitelesítés esetén, a --client-id jelölőt SingleOrg az ügyféllel, ha az alkalmazásregisztrációból, és a --tenant-id bérlőhöz tartozó jelzőt, ha a Microsoft Entra-bérlőről:

      dotnet new webapi --auth SingleOrg --client-id <YOUR-APPLICATION-CLIENT-ID> --tenant-id <TENANT-ID> 
      
    • Adja hozzá a Microsoft.Identity.Web és Swashbuckle.AspNetCore kódtárakat egy meglévő ASP.NET Core webes API-projekthez:

      dotnet add package Microsoft.Identity.Web
      dotnet add package Swashbuckle.AspNetCore 
      
  3. Kövesse a rövid útmutatóban megadott utasításokat: Bejelentkezés hozzáadása a Microsofttal egy ASP.NET Core-webalkalmazáshoz hitelesítés hozzáadásához az alkalmazáshoz.

  4. Szerepkör-ellenőrzések hozzáadása a vezérlőműveletekhez a Szerepkör-ellenőrzések hozzáadása című témakörben leírtak szerint.

  5. Hívja meg az API-t egy ügyfélalkalmazásból. Lásd: Angular egyoldalas alkalmazás, amely meghívja ASP.NET Core webes API-t, és alkalmazásszerepkörök használatával implementálja a szerepköralapú hozzáférés-vezérlést egy végpontok közötti minta létrehozásához.

RBAC implementálása más platformokon

Angular SPA a MsalGuard használatával

Az RBAC implementálása az Angular SPA-ban magában foglalja a Microsoft Authentication Library for Angular használatát az alkalmazáson belüli Angular-útvonalakhoz való hozzáférés engedélyezéséhez. Az Egyoldalas Angular-alkalmazás engedélyezése a felhasználók bejelentkezésére és api-k meghívására az Microsoft Identitásplatform mintával című témakörben látható példa.

Feljegyzés

Az ügyféloldali RBAC-implementációkat kiszolgálóoldali RBAC-vel kell párosítani, hogy az illetéktelen alkalmazások ne férhessenek hozzá a bizalmas erőforrásokhoz.

Node.js expressz alkalmazással

Az RBAC expressz alkalmazással rendelkező Node.js való implementálása magában foglalja az MSAL használatát az alkalmazásban található Express-útvonalakhoz való hozzáférés engedélyezéséhez. A Node.js webalkalmazás engedélyezése a felhasználók bejelentkeztetésére és api-k meghívására az Microsoft Identitásplatform mintával című témakörben látható.

Következő lépések