Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln visar en Java Tomcat-app som använder OpenID Connect för att logga in användare och Microsoft Entra ID-programroller (app roles) för behörighetskontroll.
Det här programmet implementerar rollbaserad åtkomstkontroll (RBAC) med hjälp av Microsoft Entra ID:s programroller och rollanspråksfunktion. En annan metod är att använda Microsoft Entra-ID-grupper och gruppanspråk. Microsoft Entra-ID-grupper och programroller utesluter inte varandra. Du kan använda dem båda för att ge detaljerad åtkomstkontroll.
Du kan också använda RBAC med programroller och rollanspråk för att på ett säkert sätt framtvinga auktoriseringsprinciper.
Om du vill se en video som behandlar det här scenariot och det här exemplet kan du läsa Implementera auktorisering i dina program med hjälp av approller, säkerhetsgrupper, omfång och katalogroller.
Mer information om hur protokollen fungerar i det här scenariot och i andra scenarier finns i Autentisering jämfört med auktorisering.
Det här programmet använder MSAL för Java (MSAL4J) för att låta en användare logga in och hämta en ID-token från Microsoft Entra ID.
Det här exemplet använder först MSAL för Java (MSAL4J) för att logga in användaren. På startsidan visas ett alternativ som gör att användaren kan visa anspråken i sina ID-token. Det här programmet gör det också möjligt för användarna att visa en privilegierad administratörssida eller en vanlig användarsida, beroende på vilken approll de har tilldelats. Tanken är att ge ett exempel på hur åtkomst till vissa funktioner eller sidor i ett program begränsas till delmängder av användare beroende på vilken roll de tillhör.
Den här typen av auktorisering implementeras med hjälp av RBAC. Med RBAC ger en administratör behörighet till roller, inte till enskilda 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 visst innehåll och vissa funktioner.
Det här exempelprogrammet definierar följande två programroller:
- : Har behörighet att komma åt sidorna Endast för administratörer och Vanliga användare.
- : Behörig att öppna sidan Vanliga användare.
Dessa applikationsroller definieras i Azure-portalen i applikationens registreringsmanifest. När en användare loggar in i programmet genererar Microsoft Entra-ID ett rollanspråk för varje roll som beviljas användaren individuellt i form av rollmedlemskap.
Du kan tilldela användare och grupper till roller via Azure Portal.
Kommentar
Rollanspråk finns inte för gästanvändare i en klientorganisation om används som auktoritet för att logga in användare. Du måste logga in en användare mot en tenantspecifik slutpunkt som .
Förutsättningar
- JDK version 8 eller senare
- Maven 3
- En Microsoft Entra-ID-klientorganisation. Mer information finns i Så här skaffar du en Microsoft Entra ID-klientorganisation.
- Ett användarkonto i din egen klientorganisation i Microsoft Entra ID om du bara vill arbeta med konton i din organisationskatalog – det vill säga läge med enskild klientorganisation. Om du inte har skapat ett användarkonto i klientorganisationen än, bör du göra det innan du fortsätter. Mer information finns i Så här skapar, bjuder in och tar du bort användare.
- Tomcat 9
- Visual Studio Code
- Azure Tools för Visual Studio Code
Rekommendationer
- Viss kännedom om Java / Jakarta Servlets.
- Viss kunskap om Linux/OSX-terminalen.
- jwt.ms för att granska dina token.
- Fiddler för att övervaka nätverksaktivitet och felsöka.
- Följ Microsoft Entra-bloggen för att hålla dig up-to-date med den senaste utvecklingen.
Konfigurera exemplet
I följande avsnitt visas hur du konfigurerar exempelprogrammet.
Klona eller ladda ned exempellagringsplatsen
Om du vill klona exemplet öppnar du ett Bash-fönster och använder följande kommando:
git clone https://github.com/Azure-Samples/ms-identity-msal-java-samples.git
cd 3-java-servlet-web-app/3-Authorization-II/roles
Du kan också gå till lagringsplatsen ms-identity-msal-java-samples och sedan ladda ned den som en .zip-fil och extrahera den till hårddisken.
Viktigt!
För att undvika begränsningar för filsökvägslängd i Windows klonar eller extraherar du lagringsplatsen till en katalog nära hårddiskens rot.
Registrera exempelprogrammet med din Microsoft Entra ID-klientorganisation
Det finns ett projekt i det här exemplet. Följande avsnitt visar hur du registrerar appen med hjälp av Azure Portal.
Välj den Microsoft Entra-ID-klientorganisation där du vill skapa dina program
Så här väljer du din klientorganisation:
Logga in i Azure-portalen.
Om ditt konto finns i mer än en Microsoft Entra ID-klientorganisation väljer du din profil i hörnet av Azure-portalen och väljer sedan Switch directory för att byta session till önskad Microsoft Entra ID-klientorganisation.
Registrera appen (java-servlet-webapp-roles)
Registrera först en ny app i Azure portal genom att följa anvisningarna i Snabbstart: Registrera ett program med Microsofts identitetsplattform.
Använd sedan följande steg för att slutföra registreringen:
Gå till sidan för Microsofts identitetsplattform för utvecklare App registrations.
Välj Ny registrering.
På sidan Registrera ett program som visas anger du följande appregistreringsinformation:
I avsnittet Namn anger du ett beskrivande appnamn som visas för appens användare, till exempel .
Under Kontotyper som stöds väljer du något av följande alternativ:
- Välj Endast konton i den här organisationskatalogen om du skapar en applikation som endast ska användas av användare i din klientorganisation – det vill säga en applikation med en enda klientorganisation.
I avsnittet Omdirigerings-URI väljer du Web i kombinationsrutan och anger följande omdirigerings-URI: .
Välj Registrera för att skapa programmet.
På appens registreringssida letar du reda på och kopierar värdet för Program-ID (klient) som du ska använda senare. Du använder det här värdet i appens konfigurationsfil eller filer.
Välj Spara för att spara dina ändringar.
På appens registreringssida väljer du Certifikat och hemligheter i navigeringsfönstret för att öppna sidan där du kan generera hemligheter och ladda upp certifikat.
Under avsnittet Klienthemlighet välj Ny klienthemlighet.
Skriv en beskrivning – till exempel apphemlighet.
Välj en förfallotid för hemligheten eller ange en anpassad livslängd. Klienthemligheter är begränsade till en maximal livslängd på 24 månader och Microsoft rekommenderar ett utgångsdatum på mindre än 12 månader. För produktionsappar föredrar du ett certifikat eller federerade identitetsautentiseringsuppgifter framför en klienthemlighet.
Välj Lägg till. Det genererade värdet visas.
Kopiera och spara det genererade värdet för användning i senare steg. Du behöver det här värdet för kodens konfigurationsfiler. Det här värdet visas inte igen och du kan inte hämta det på något annat sätt. Se därför till att spara den från Azure Portal innan du går till någon annan skärm eller ett annat fönster.
Definiera programrollerna
Använd följande steg för att definiera approllerna:
Fortfarande i samma appregistrering väljer du App roles på navigeringspanelen.
Välj Skapa approll och ange sedan följande värden:
- Som Visningsnamn anger du ett lämpligt namn , till exempel PrivilegedAdmin.
- För Tillåtna medlemstyper väljer du Användare.
- För Värde anger du PrivilegedAdmin.
- För Beskrivning anger du PrivilegedAdmins som kan visa administratörssidan.
Välj Skapa approll och ange sedan följande värden:
- Som Visningsnamn anger du ett lämpligt namn , till exempel RegularUser.
- För Tillåtna medlemstyper väljer du Användare.
- För Värde, ange RegularUser.
- I Beskrivning anger du Vanliga användare som kan visa användarsidan.
Tryck på Apply (Verkställ) för att spara ändringarna.
Tilldela användare till programrollerna
Om du vill lägga till användare i approllen som definierades tidigare, följ riktlinjerna här: Tilldela användare och grupper till roller.
Konfigurera appen (java-servlet-webapp-roles) för att använda din appregistrering
Använd följande steg för att konfigurera appen:
Kommentar
I följande steg är samma som eller .
Öppna projektet i din IDE.
Öppna filen authentication.properties.
Hitta strängen . Ersätt det befintliga värdet med ditt Klient-ID för Microsoft Entra.
Leta upp strängen och ersätt det befintliga värdet med program-ID:t eller för programmet som kopierats från Azure-portalen.
Leta upp strängen och ersätt det befintliga värdet med det värde som du sparade när du skapade appen i Azure-portalen.
Leta upp -egenskapen och kontrollera att värdet är inställt på , eller ersätt namnen med namnen på dina specifika roller.
Skapa exemplet
Om du vill skapa exemplet med Maven går du till katalogen som innehåller pom.xml-filen för exemplet och kör sedan följande kommando:
mvn clean package
Det här kommandot genererar en .war-fil som du kan köra på olika programservrar.
Kör exemplet
- Distribuera till Azure App Service
- Kör lokalt
Följande avsnitt visar hur du distribuerar exemplet till Azure App Service.
Förutsättningar
Maven-plugin för Azure App Service-appar
Om Maven inte är det utvecklingsverktyg du föredrar kan du läsa följande liknande självstudier som använder andra verktyg:
- IntelliJ IDEA
- Eclipse
- Visual Studio Code
Konfigurera Maven-plugin-programmet
När du distribuerar till Azure App Service använder distributionen automatiskt dina Azure-autentiseringsuppgifter från Azure CLI. Om Azure CLI inte installeras lokalt autentiseras Maven-plugin-programmet med OAuth eller enhetsinloggning. Mer information finns i autentisering med Maven-pluginer.
Använd följande steg för att konfigurera plugin-programmet:
Kör följande kommando för att konfigurera distributionen. Det här kommandot hjälper dig att konfigurera Azure App Service-operativsystemet, Java-versionen och Tomcat-versionen.
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:configFör Skapa ny körningskonfiguration, tryck på Y och tryck sedan på Retur.
För Definiera värde för operativsystem trycker du på 1 för Windows eller 2 för Linux och trycker sedan på Retur.
För Ange värde för javaVersion, tryck på 2 för Java 11 och sedan på Enter.
För Definiera värde för webContainer trycker du på 4 för Tomcat 9.0 och trycker sedan på Retur.
För Definiera värde för pricingTier, tryck på Retur för att välja standardnivån P1v2.
För att bekräfta, tryck på Y och sedan på Enter.
I följande exempel visas utdata från distributionsprocessen:
Please confirm webapp properties
AppName : msal4j-servlet-auth-1707209552268
ResourceGroup : msal4j-servlet-auth-1707209552268-rg
Region : centralus
PricingTier : P1v2
OS : Linux
Java Version: Java 11
Web server stack: Tomcat 9.0
Deploy to slot : false
Confirm (Y/N) [Y]: [INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37.112 s
[INFO] Finished at: 2024-02-06T08:53:02Z
[INFO] ------------------------------------------------------------------------
När du har bekräftat dina val lägger plugin-programmet till det nödvändiga plugin-elementet och inställningarna i projektets pom.xml-fil för att konfigurera appen så att den körs i Azure App Service.
Den relevanta delen av pom.xml-filen bör se ut ungefär som i följande exempel:
<build>
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>>azure-webapp-maven-plugin</artifactId>
<version>x.xx.x</version>
<configuration>
<schemaVersion>v2</schemaVersion>
<resourceGroup>your-resourcegroup-name</resourceGroup>
<appName>your-app-name</appName>
...
</configuration>
</plugin>
</plugins>
</build>
Du kan ändra konfigurationerna för App Service direkt i pom.xml. Några vanliga konfigurationer visas i följande tabell:
| Egenskap | Obligatoriskt | Beskrivning |
|---|---|---|
subscriptionId |
falskt | Prenumerations-ID. |
resourceGroup |
true | Azure-resursgruppen för din app. |
appName |
true | Namnet på din app. |
region |
falskt | Den region där appen ska vara värd. Standardvärdet är . För giltiga regioner, se Regioner som stöds. |
pricingTier |
falskt | Prisnivån för din app. Standardvärdet är för en produktionsarbetslast. Det rekommenderade minimivärdet för Java-utveckling och -testning är . Mer information finns i Prissättning för App Service. |
runtime |
falskt | Konfiguration av körningsmiljön. Mer information finns i Konfigurationsdetaljer. |
deployment |
falskt | Konfigurationen för driftsättning. Mer information finns i Konfigurationsdetaljer. |
En fullständig lista över konfigurationer finns i referensdokumentationen för plugin-programmet. Alla Azure Maven-plugin-program delar en gemensam uppsättning konfigurationer. Mer information om de här konfigurationerna finns i Vanliga konfigurationer. För konfigurationer som är specifika för Azure App Service, se Azure-app: Konfigurationsdetaljer.
Se till att spara värdena och för senare användning.
Förbereda appen för distribution
När du distribuerar programmet till App Service ändras omdirigerings-URL:en till omdirigerings-URL:en för din distribuerade appinstans. Använd följande steg för att ändra de här inställningarna i egenskapsfilen:
Navigera till appens authentication.properties-fil och ändra värdet för till den driftsatta appens domännamn, som i följande exempel. Om du till exempel valde som appens namn i föregående steg, måste du nu använda som värde för . Se till att du också har ändrat protokollet från till .
# app.homePage is by default set to dev server address and app context path on the server # for apps deployed to azure, use https://your-sub-domain.azurewebsites.net app.homePage=https://<your-app-name>.azurewebsites.netNär du har sparat den här filen använder du följande kommando för att återskapa din app:
mvn clean package
Viktigt!
I samma authentication.properties-fil har du en inställning för din . Det är inte bra att distribuera det här värdet till App Service. Det är inte heller en bra idé att lämna det här värdet i koden och eventuellt push-överföra det till git-lagringsplatsen. Om du vill ta bort det här hemliga värdet från koden, hittar du mer detaljerad vägledning i avsnittet Distribuera till App Service – Ta bort hemlighet. Den här vägledningen lägger till extra steg för att skicka det hemliga värdet till Key Vault och för att använda Key Vault-referenser.
Uppdatera din Microsoft Entra ID-appregistrering
Eftersom omdirigerings-URI:n ändras till din distribuerade app till Azure App Service måste du också ändra omdirigerings-URI:n i din Microsoft Entra ID-appregistrering. Gör den här ändringen med hjälp av följande steg:
Gå till sidan för Microsofts identitetsplattform för utvecklare App registrations.
Använd sökrutan för att hitta din appregistrering - till exempel .
Öppna appregistreringen genom att välja dess namn.
Markera Autentisering på kommandomenyn.
I avsnittet WebbOmdirigerings-URI:er väljer du Lägg till URI.
Fyll i URI:n för din app genom att lägga till – till exempel .
Välj Spara.
Distribuera appen
Nu är du redo att distribuera din app till Azure App Service. Använd följande kommando för att se till att du är inloggad i Azure-miljön för att köra distributionen:
az login
Med all konfiguration klar i din pom.xml-fil kan du nu använda följande kommando för att distribuera din Java-app till Azure:
mvn package azure-webapp:deploy
När distributionen har slutförts är din applikation tillgänglig på . Öppna URL:en i den lokala webbläsaren, där du bör se startsidan för -programmet.
Utforska exemplet
Använd följande steg för att utforska exemplet:
- Observera den inloggade eller utloggade statusen som visas i mitten av skärmen.
- Välj den sammanhangskänsliga knappen i hörnet. Den här knappen läser Logga in när du först kör appen.
- På nästa sida följer du anvisningarna och loggar in med ett konto i Microsoft Entra ID-klientorganisationen.
- På skärmen för medgivande kan du se vilka behörigheter som begärs.
- Observera att den sammanhangskänsliga knappen nu säger Logga ut och visar ditt användarnamn.
- Välj Information om ID-token om du vill se några av ID-tokenens avkodade anspråk.
- Välj Admins Only för att visa sidan . Endast användare med approllen kan visa den här sidan. Annars visas ett meddelande om auktoriseringsfel.
- Välj Vanliga användare för att visa sidan . Endast användare med approllen eller kan visa den här sidan. Annars visas ett meddelande om auktoriseringsfel.
- Använd knappen i hörnet för att logga ut.
Om koden
Det här exemplet använder MSAL för Java (MSAL4J) för att logga in en användare och hämta en ID-token som kan innehålla rollanspråket. Beroende på vilka rollanspråk som finns kan den inloggade användaren komma åt ingen, en eller båda av de skyddade sidorna, och .
Om du vill replikera det här exemplets beteende kan du kopiera pom.xml-filen och innehållet i hjälpmapparna och authservlets-mapparna i mappen src/main/java/com/microsoft/azuresamples/msal4j. Du behöver också filen authentication.properties. Dessa klasser och filer innehåller allmän kod som du kan använda i en mängd olika program. Du kan också kopiera resten av exemplet, men de andra klasserna och filerna skapas specifikt för att hantera det här exemplets mål.
Innehåll
I följande tabell visas innehållet i exempelprojektmappen:
| Fil/mapp | Beskrivning |
|---|---|
| src/main/java/com/microsoft/azuresamples/msal4j/roles/ | Den här katalogen innehåller de klasser som definierar appens affärslogik för serverdelen. |
| src/main/java/com/microsoft/azuresamples/msal4j/authservlets/ | Den här katalogen innehåller de klasser som används för inloggning och utloggningsslutpunkter. |
| *Servlet.java | Alla tillgängliga slutpunkter definieras i Java-klasser med namn som slutar Servlet. |
| src/main/java/com/microsoft/azuresamples/msal4j/helpers/ | Hjälpklasser för autentisering. |
| AuthenticationFilter.java | Omdirigerar oautentiserade begäranden till skyddade slutpunkter till en 401-sida. |
| src/main/resources/authentication.properties | Microsoft Entra-ID och programkonfiguration. |
| src/main/webapp/ | Den här katalogen innehåller användargränssnittet – JSP-mallar |
| CHANGELOG.md | Lista över ändringar i exemplet. |
| CONTRIBUTING.md | Riktlinjer för att bidra till exemplet. |
| LICENS | Licens för exemplet. |
Bearbeta ett rollanspråk i ID-tokenet
Rollanspråket för token innehåller namnen på de roller som den inloggade användaren har tilldelats, enligt följande exempel:
{
...
"roles": [
"Role1",
"Role2",]
...
}
ConfidentialClientApplication
En -instans skapas i filen AuthHelper.java, som visas i följande exempel. Det här objektet hjälper dig att skapa Microsoft Entra-auktoriserings-URL:en och hjälper även till att byta ut autentiseringstoken mot en åtkomsttoken.
// getConfidentialClientInstance method
IClientSecret secret = ClientCredentialFactory.createFromSecret(SECRET);
confClientInstance = ConfidentialClientApplication
.builder(CLIENT_ID, secret)
.authority(AUTHORITY)
.build();
Följande parametrar används för instansiering:
- Appens klient-ID.
- Klienthemligheten, som är ett krav för konfidentiella klientprogram.
- Microsoft Entra ID-utfärdare, som innehåller ditt Klient-ID för Microsoft Entra.
I det här exemplet läss dessa värden från filen authentication.properties med hjälp av en egenskapsläsare i filen Config.java .
Stegvis genomgång
Följande steg innehåller en genomgång av appens funktioner:
Det första steget i inloggningsprocessen är att skicka en begäran till slutpunkten för din Microsoft Entra ID-klientorganisation. MSAL4J-instansen används för att konstruera en URL för en auktoriseringsbegäran. Appen omdirigerar webbläsaren till den här URL:en, där användaren loggar in.
final ConfidentialClientApplication client = getConfidentialClientInstance(); AuthorizationRequestUrlParameters parameters = AuthorizationRequestUrlParameters.builder(Config.REDIRECT_URI, Collections.singleton(Config.SCOPES)) .responseMode(ResponseMode.QUERY).prompt(Prompt.SELECT_ACCOUNT).state(state).nonce(nonce).build(); final String authorizeUrl = client.getAuthorizationRequestUrl(parameters).toString(); contextAdapter.redirectUser(authorizeUrl);I följande lista beskrivs funktionerna i den här koden:
- : Parametrar som måste ställas in för att bygga en AuthorizationRequestUrl.
- : Dit Microsoft Entra ID omdirigerar webbläsaren – tillsammans med auktoriseringskoden – efter att användaren har angett sina autentiseringsuppgifter. Den här måste matcha den omdirigerings-URI som anges i appregistreringen för Microsoft Entra ID i Azure portal.
- : Scopes är behörigheter som begärs av applikationen.
- Normalt räcker de tre omfattningarna för att få ett ID-token som svar.
- En fullständig lista över omfång som begärs av appen finns i filen authentication.properties . Du kan lägga till fler scope, till exempel .
Användaren får en inloggningsprompt av Microsoft Entra-ID. Om inloggningsförsöket lyckas omdirigeras användarens webbläsare till appens omdirigeringsslutpunkt. En giltig begäran till den här slutpunkten innehåller en auktoriseringskod.
-instansen byter sedan ut den här auktoriseringskoden mot en ID-token och åtkomsttoken från Microsoft Entra ID.
// First, validate the state, then parse any error codes in response, then extract the authCode. Then: // build the auth code params: final AuthorizationCodeParameters authParams = AuthorizationCodeParameters .builder(authCode, new URI(Config.REDIRECT_URI)).scopes(Collections.singleton(Config.SCOPES)).build(); // Get a client instance and leverage it to acquire the token: final ConfidentialClientApplication client = AuthHelper.getConfidentialClientInstance(); final IAuthenticationResult result = client.acquireToken(authParams).get();I följande lista beskrivs funktionerna i den här koden:
- : Parametrar som måste anges för att kunna byta ut auktoriseringskoden mot ett ID-token och/eller en åtkomsttoken.
- : Auktoriseringskoden som togs emot vid omdirigeringsslutpunkten.
- : omdirigerings-URI:n som användes i föregående steg måste anges igen.
- : De scope som användes i föregående steg måste skickas med igen.
Om lyckas extraheras anspråken i tokenen. Om nonce-kontrollen klaras placeras resultatet i – en instans av – och sparas i sessionen. Applikationen kan sedan instansiera från sessionen med hjälp av en instans av när den behöver komma åt det, såsom visas i följande kod:
// parse IdToken claims from the IAuthenticationResult: // (the next step - validateNonce - requires parsed claims) context.setIdTokenClaims(result.idToken()); // if nonce is invalid, stop immediately! this could be a token replay! // if validation fails, throws exception and cancels auth: validateNonce(context); // set user to authenticated: context.setAuthResult(result, client.tokenCache().serialize());
Skydda vägarna
Information om hur exempelappen filtrerar åtkomst till vägar finns i AuthenticationFilter.java. I filen authentication.properties innehåller egenskapen de kommaavgränsade sökvägar som endast autentiserade användare kan komma åt, vilket visas i följande exempel:
# for example, /token_details requires any user to be signed in and does not require special roles claim(s)
app.protect.authenticated=/token_details
Alla rutter som anges i de kommaavgränsade regeluppsättningarna under är också otillgängliga för icke-autentiserade användare, som visas i följande exempel. Dessa vägar innehåller dock också en utrymmesavgränsad lista över approllmedlemskap: endast användare som har minst en av motsvarande roller kan komma åt dessa vägar efter autentiseringen.
# local short names for app roles - for example, sets admin to mean PrivilegedAdmin (useful for long rule sets defined in the next key, app.protect.roles)
app.roles=admin PrivilegedAdmin, user RegularUser
# A route and its corresponding <space-separated> role(s) that can access it; the start of the next route & its role(s) is delimited by a <comma-and-space-separator>
# this says: /admins_only can be accessed by PrivilegedAdmin, /regular_user can be accessed by PrivilegedAdmin role and the RegularUser role
app.protect.roles=/admin_only admin, /regular_user admin user
Omfång
Behörighetsomfång anger för Microsoft Entra ID vilken åtkomstnivå som programmet begär.
Baserat på de begärda omfången presenterar Microsoft Entra-ID en medgivandedialog för användaren vid inloggning. Om användaren samtycker till en eller flera omfattningar och erhåller en token kodas de omfattningar som användaren har samtyckt till in i den resulterande .
För de omfattningar som begärs av applikationen, se authentication.properties. Dessa tre omfång begärs av MSAL och anges av Microsoft Entra-ID som standard.
Mer information
- Microsofts autentiseringsbibliotek (MSAL) för Java
- Microsofts identitetsplattform
- Snabbstart: Registrera en applikation med Microsofts identitetsplattform
- Förstå samtyckesupplevelser för Microsoft Entra ID-applikationer
- Förstå användar- och administratörsmedgivande
- MSAL-kodexempel
- Så här gör du: Lägg till approller i din applikation och ta emot dem i tokenen
- Hantera användartilldelning för en app i Microsoft Entra ID