Dela via


Lägg till applikationsroller i din applikation och ta emot dem i token

Rollbaserad åtkomstkontroll (RBAC) är en populär mekanism för att framtvinga auktorisering i program. MED RBAC kan administratörer bevilja behörigheter till roller i stället för till specifika användare eller grupper. Administratören kan sedan tilldela roller till olika användare och grupper för att styra vem som har åtkomst till vilket innehåll och vilka funktioner.

Genom att använda RBAC med programrolls- och rollanspråk kan utvecklare på ett säkert sätt framtvinga auktorisering i sina appar med mindre ansträngning.

En annan metod är att använda Microsoft Entra-grupper och gruppanspråk enligt kodexemplet active-directory-aspnetcore-webapp-openidconnect-v2 på GitHub. Microsoft Entra-grupper och programroller är inte ömsesidigt uteslutande. de kan användas tillsammans för att ge ännu mer detaljerad åtkomstkontroll.

Deklarera roller för ett program

Under appregistreringen definierar du approller med hjälp av Microsoft Entras administrationscenter. Approller definieras i en programregistrering som representerar en tjänst, en app eller ett API. När en användare loggar in på programmet genererar Microsoft Entra-ID ett roles anspråk för varje roll som användaren eller tjänstens huvudnamn har beviljats, vilket kan användas för att implementera anspråksbaserad auktorisering. Approller kan tilldelas till en användare eller en grupp användare. Approller kan också tilldelas till tjänstens huvudnamn för ett annat program eller till tjänstens huvudnamn för en hanterad identitet.

Just nu, om du lägger till en tjänstprincip i en grupp och sedan tilldelar en applikationsroll till den gruppen, lägger inte Microsoft Entra-ID till anspråket roles till de token som det utfärdar.

Approller deklareras med hjälp av användargränssnittet för approller i administrationscentret för Microsoft Entra:

Antalet roller du lägger till räknas mot programmets manifestgränser som tillämpas av Microsoft Entra ID. Information om dessa gränser finns i avsnittet Manifestgränser i manifestreferensen för Microsoft Entra-appen.

Användargränssnitt för approller

Så här skapar du en approll med hjälp av Microsoft Entra-administrationscentrets användargränssnitt:

  1. Logga in på administrationscentret för Microsoft Entra som minst molnprogramadministratör.

  2. Om du har åtkomst till flera klienter, använd ikonen Inställningar i den översta menyn för att växla till den klient som innehåller appregistreringen från menyn Kataloger + prenumerationer.

  3. Bläddra till Identitetsprogram>> Appregistreringar och välj sedan det program som du vill definiera approller i.

  4. Under Hantera väljer du Approller och sedan Skapa approll.

    Appregistreringens approller i Azure-portalen

  5. I fönstret Skapa en approll anger du inställningarna för rollen. Tabellen som följer bilden beskriver varje inställning och deras parametrar.

    En appregistrerings applikationsroller skapar en sammanhangspanel i Azure-portalen

    Fält Beskrivning Exempel
    Visningsnamn Visningsnamn för approllen som visas i administratörens medgivande och apptilldelningsupplevelser. Det här värdet kan innehålla blanksteg. Survey Writer
    Tillåtna medlemstyper Anger om den här approllen kan tilldelas till användare, program eller både och.

    När det är tillgängligt för applications, visas approller som programbehörigheter i en appregistrerings Hantera-avsnitt >API-behörigheter > Lägg till en behörighet > Mina API:er > Välj ett API > Programbehörigheter.
    Users/Groups
    Värde Anger värdet för rollanspråket som programmet bör förvänta sig i token. Värdet ska exakt matcha strängen som refereras i programmets kod. Värdet får inte innehålla mellanslag. Survey.Create
    Beskrivning En mer detaljerad beskrivning av approllen som visas under tilldelning av administratörsroller och godkännandeprocesser. Writers can create surveys.
    Vill du aktivera den här programmets roll? Anger huruvida approllen är aktiverad. För att ta bort en applikationsroll avmarkerar du kryssrutan och tillämpar ändringen innan du försöker ta bort rollen. Den här inställningen styr användningen och tillgängligheten för appens roll, och gör det möjligt att inaktivera den tillfälligt eller permanent utan att ta bort den helt. Kontrollerad
  6. Tryck på Apply (Verkställ) för att spara ändringarna.

När approllen har angetts till Aktiverad har alla användare, program eller grupper som har tilldelats approllen inkluderad i sina token. Dessa kan vara åtkomsttoken när din app är DET API som anropas av en app eller ID-token när din app loggar in en användare.

När approllen är inställd på Inaktiveradblir den inaktiv och är inte längre tilldelningsbar. De aktuella approlltilldelningarna till användare, grupper och program finns dock kvar och approllen fortsätter att skicka in token(erna). Ta bort approllen från användaren, gruppen eller programmet för att säkerställa att approllen också tas bort från token(erna).

Tilldela programägare

Innan du kan tilldela approller till applikationerna måste du tilldela dig själv som applikationsägare.

  1. I din appregistrering går du till Hantera, väljer Ägare och Lägg till ägare.
  2. I det nya fönstret letar du upp och väljer de ägare som du vill tilldela till programmet. Markerade ägare visas i den högra panelen. När du är klar bekräftar du med Välj och appägare visas i ägarens lista.

Anteckning

Kontrollera att både API-programmet och det program som du vill lägga till behörigheter till båda har en ägare, annars visas inte API:et när du begär API-behörigheter.

Tilldela approller till applikationer

När du har lagt till approller i ditt program kan du tilldela en approll till en klientapp med hjälp av administrationscentret för Microsoft Entra eller programmatiskt med hjälp av Microsoft Graph. Att tilldela en appens roll till en applikation bör inte förväxlas med att tilldela roller till användare.

När du tilldelar approller till ett program skapar du programbehörigheter. Programbehörigheter används vanligtvis av daemon-appar eller serverdelstjänster som behöver autentisera och göra auktoriserade API-anrop som sig själva, utan interaktion från en användare.

För att tilldela roller till en applikation med hjälp av administrationscentret för Microsoft Entra:

  1. Logga in på administrationscentret för Microsoft Entra som minst molnprogramadministratör.
  2. Bläddra till Identitet>Program>App-registreringar och välj sedan Alla program.
  3. Välj Alla program för att visa en lista över alla dina program. Om du inte kan hitta ditt program i listan använder du filtren över listan Alla program för att begränsa mängden program som visas, eller bläddrar nedåt i listan för att hitta ditt program.
  4. Välj det program som du vill tilldela en applikationsroll till.
  5. Välj API-behörigheter>Lägg till en behörighet.
  6. Välj fliken Mina API:er och välj sedan den app som du har definierat approller för.
  7. Under Behörighet väljer du de roller som du vill tilldela.
  8. Välj knappen Lägg till behörigheter för att slutföra tillägget av rollerna.

De nyligen tillagda rollerna bör visas i appregistreringens API-behörighetsfönster.

Eftersom detta är programbehörigheter och inte delegerade behörigheter måste en administratör ge sitt medgivande till att programmet använder approller som det har tilldelats.

  1. I panelen API-behörigheter för appregistrering, välj "Bevilja administratörsgodkännande för <tenant name>".
  2. Välj Ja när du uppmanas att bevilja medgivande för de begärda behörigheterna.

Kolumnen Status bör återspegla att medgivande har beviljats för <klientorganisationens namn>.

Användningsscenariot för approller

Om du implementerar affärslogik för approllen som loggar in användare i ditt programscenario, definierar du först approllerna i Appregistreringar. Sedan tilldelar en administratör dem till användare och grupper i fönstret Företagsprogram . Beroende på scenariot ingår dessa tilldelade approller i olika tokener som utfärdas för ditt program. För en app som loggar in användare ingår till exempel rollanspråken i ID-tokenen. När ditt program anropar ett API inkluderas rollanspråken i åtkomsttoken.

Om du implementerar affärslogik för approller i ett scenario med appanrops-API har du två appregistreringar. En appregistrering är för appen och en andra appregistrering är för API:et. I det här fallet definierar du approllerna och tilldelar dem till användaren eller gruppen i appregistreringen för API:et. När användaren autentiserar med appen och begär en åtkomsttoken för att anropa API:et inkluderas ett rollanspråk i token. Nästa steg är att lägga till kod i webb-API:et för att söka efter de rollerna när API:et anropas.

Information om hur du lägger till auktorisering i ditt webb-API finns i Skyddat webb-API: Verifiera omfång och approller.

App-roller jämfört med grupper

Även om du kan använda approller eller grupper för auktorisering kan viktiga skillnader mellan dem påverka vilket du bestämmer dig för att använda i ditt scenario.

Applikationsroller Grupper
De är specifika för ett program och definieras i appregistreringen. De flyttar tillsammans med programmet. De är inte specifika för en app, utan för en Microsoft Entra-klientorganisation.
Applikationsroller tas bort när dess appregistrering tas bort. Grupper förblir intakta även om appen tas bort.
Tillhandahålls i roles anspråket. Tillhandahålls i groups anspråk.

Utvecklare kan använda approller för att styra om en användare kan logga in på en app eller om en app kan hämta en åtkomsttoken för ett webb-API. Utvecklare och administratörer kan utöka den här säkerhetskontrollen till grupper genom att tilldela säkerhetsgrupper till roller i appar.

Utvecklare föredrar att använda approller när de vill beskriva och styra auktoriseringsparametrarna i själva appen. Till exempel kommer en app som använder grupper för auktorisering att sluta fungera i nästa klientorganisation eftersom både grupp-ID och namn kan vara olika. En app som använder app-roller förblir säker. I själva verket tilldelar SaaS-appar ofta grupper till approller av samma skäl, eftersom det gör att SaaS-appen kan etableras i flera klientorganisationer.

Tilldela användare och grupper till Microsoft Entra-roller

När du lägger till approller i ditt program kan du tilldela användare och grupper till Microsoft Entra-roller. Tilldelning av användare och grupper till roller kan göras via portalens användargränssnitt eller programmatiskt med hjälp av Microsoft Graph. När användarna som har tilldelats olika roller loggar in i applikationen, innehåller deras tokens de tilldelade rollerna i anspråket roles.

Så här tilldelar du användare och grupper till roller med hjälp av administrationscentret för Microsoft Entra:

  1. Logga in på administrationscentret för Microsoft Entra som minst molnprogramadministratör.
  2. Om du har åtkomst till flera klienter, använd ikonen Inställningar i den översta menyn för att växla till den klient som innehåller appregistreringen från menyn Kataloger + prenumerationer.
  3. Bläddra till Identity>Applications>Enterprise applications.
  4. Välj Alla program för att visa en lista över alla dina program. Om du inte kan hitta ditt program i listan använder du filtren över listan Alla program för att begränsa mängden program som visas, eller bläddrar nedåt i listan för att hitta ditt program.
  5. Välj programmet där du vill tilldela roller till användare eller säkerhetsgrupper.
  6. Under Hantera väljer du Användare och grupper.
  7. Välj Lägg till användare för att öppna fönstret Lägg till tilldelning.
  8. Välj väljaren Användare och grupper i fönstret Lägg till tilldelning. En lista över användare och säkerhetsgrupper visas. Du kan söka efter en viss användare eller grupp, eller välja flera användare och grupper som visas i listan. Välj knappen Välj för att fortsätta.
  9. Välj Välj en roll i fönstret Lägg till tilldelning. Alla roller som du har definierat för programmet visas.
  10. Välj en roll och tryck på knappen Välj.
  11. Välj knappen Tilldela för att slutföra tilldelningen av användare och grupper till appen.

Bekräfta att de användare och grupper som du har lagt till visas i listan Användare och grupper .

Nästa steg

Läs mer om roller i appar med följande resurser.