Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt een Java JBoss EAP-app gedemonstreerd waarmee gebruikers zich aanmelden en een toegangstoken verkrijgen om Microsoft Graph aan te roepen. Het maakt gebruik van de Microsoft Authentication Library (MSAL) voor Java.
In het volgende diagram ziet u de topologie van de app:
Diagram dat de topologie van de app toont.
De client-app gebruikt MSAL voor Java (MSAL4J) om een gebruiker aan te melden en een toegangstoken voor Microsoft Graph van Microsoft Entra ID op te halen. Het toegangstoken bewijst dat de gebruiker gemachtigd is om toegang te krijgen tot het Microsoft Graph API-eindpunt, zoals gedefinieerd in het bereik.
Vereisten
- Java 8 of hoger
- Maven 3
- Een Microsoft Entra ID-tenant. Zie Een Microsoft Entra ID-tenant verkrijgen voor meer informatie.
- Een gebruikersaccount in uw eigen Microsoft Entra ID-tenant als u alleen met accounts in uw organisatiedirectory wilt werken, dat wil zeggen in de modus voor één tenant. Als u nog geen gebruikersaccount in uw tenant hebt gemaakt, moet u dit doen voordat u doorgaat. Zie Gebruikers maken, uitnodigen en verwijderen voor meer informatie.
- Een gebruikersaccount in de Microsoft Entra ID-tenant van een willekeurige organisatie als u wilt werken met accounts in een willekeurige organisatiedirectory, dat wil zeggen in multitenantmodus. Dit voorbeeld moet worden gewijzigd om te kunnen werken met een persoonlijk Microsoft-account. Als u nog geen gebruikersaccount in uw tenant hebt gemaakt, moet u dit doen voordat u doorgaat. Zie Gebruikers maken, uitnodigen en verwijderen voor meer informatie.
- Een persoonlijk Microsoft-account, bijvoorbeeld Xbox, Hotmail, Live, enzovoort, als u wilt werken met persoonlijke Microsoft-accounts.
- JBoss EAP
- Visual Studio Code
- Azure Tools voor Visual Studio Code
Aanbevelingen
- Enige vertrouwdheid met de Java / Jakarta Servlets.
- Enige bekendheid met Linux/OSX-terminal.
- jwt.ms om uw tokens te inspecteren.
- Fiddler om uw netwerkactiviteit te controleren en problemen op te lossen.
- Volg de Microsoft Entra-blog om up-to-date te blijven met de nieuwste ontwikkelingen.
Het voorbeeld instellen
In de volgende secties ziet u hoe u de voorbeeldtoepassing instelt.
De voorbeeldopslagplaats klonen of downloaden
Als u het voorbeeld wilt klonen, opent u een Bash-venster en gebruikt u de volgende opdracht:
git clone https://github.com/Azure-Samples/ms-identity-msal-java-samples.git
cd 3-java-servlet-web-app/2-Authorization-I/call-graph
U kunt ook naar de ms-identity-msal-java-samples-repository gaan, deze vervolgens als een .zip-bestand downloaden en op uw harde schijf uitpakken.
Belangrijk
Om beperkingen voor bestandspadlengten in Windows te voorkomen, kloont of extraheert u de opslagplaats in een map in de buurt van de hoofdmap van uw harde schijf.
De voorbeeldtoepassing registreren bij uw Microsoft Entra ID-tenant
Er is één project in dit voorbeeld. In de volgende secties ziet u hoe u de app registreert met behulp van Azure Portal.
Kies de Microsoft Entra ID-tenant waar u uw toepassingen wilt maken
Gebruik de volgende stappen om uw tenant te kiezen:
Meld u aan bij de Azure Portal.
Als uw account zich in meer dan één Microsoft Entra ID-tenant bevindt, selecteert u uw profiel in de hoek van de Azure-portal en selecteert u vervolgens Switch directory om uw sessie over te schakelen naar de gewenste Microsoft Entra ID-tenant.
App registreren (java-servlet-webapp-call-graph)
Registreer eerst een nieuwe app in de Azure-portal door de instructies te volgen in Quickstart: Een toepassing registreren met het Microsoft-identiteitsplatform.
Gebruik vervolgens de volgende stappen om de registratie te voltooien:
Ga naar de pagina App-registraties in het Microsoft identity platform voor ontwikkelaars.
Selecteer Nieuwe registratie.
Voer op de pagina Een toepassing registreren die wordt weergegeven de volgende registratiegegevens voor de toepassing in:
Voer in de sectie Name een duidelijke toepassingsnaam in die aan gebruikers van de app wordt weergegeven, bijvoorbeeld .
Selecteer onder Ondersteunde accounttypen een van de volgende opties:
- Selecteer Alleen accounts in deze organisatiemap als u een toepassing maakt die alleen wordt gebruikt door gebruikers in uw tenant - dat wil zeggen een single-tenant-toepassing.
- Selecteer Accounts in any organizational directory als u wilt dat gebruikers in een willekeurige Microsoft Entra ID-tenant uw toepassing kunnen gebruiken; dat wil zeggen een multitenant-toepassing.
- Selecteer Accounts in een organisatiedirectory en persoonlijke Microsoft-accounts voor de breedst mogelijke klantenkring, dat wil zeggen: een multitenanttoepassing die ook persoonlijke Microsoft-accounts ondersteunt.
Selecteer Persoonlijke Microsoft-accounts voor alleen gebruik door gebruikers van persoonlijke Microsoft-accounts, bijvoorbeeld Hotmail-, Live-, Skype- en Xbox-accounts.
Selecteer in het gedeelte Redirect URI Web in de keuzelijst en voer de volgende omleidings-URI in: .
Selecteer Registreren om de toepassing te maken.
Ga op de registratiepagina van de app naar de waarde van Toepassings-id (client) en kopieer deze om later te gebruiken. U gebruikt deze waarde in het configuratiebestand of de bestanden van uw app.
Selecteer Opslaan om uw wijzigingen op te slaan.
Selecteer certificaten en geheimen op de registratiepagina van de app in het navigatiedeelvenster om de pagina te openen waar u geheimen kunt genereren en certificaten kunt uploaden.
Selecteer in de sectie Clientgeheimen de optie Nieuw clientgeheim.
Typ een beschrijving, bijvoorbeeld app-geheim.
Selecteer een vervaldatum voor het geheim of geef een aangepaste levensduur op. Clientgeheimen zijn beperkt tot een maximale levensduur van 24 maanden en Microsoft adviseert een vervaldatum van minder dan 12 maanden. Voor productie-apps gebruikt u bij voorkeur een certificaat of federatieve identiteitsreferentie in plaats van een clientgeheim.
Selecteer Toevoegen. De gegenereerde waarde wordt weergegeven.
Kopieer en sla de gegenereerde waarde op voor gebruik in latere stappen. U hebt deze waarde nodig voor de configuratiebestanden van uw code. Deze waarde wordt niet opnieuw weergegeven en u kunt deze niet op een andere manier ophalen. Zorg er dus voor dat u deze opslaat in Azure Portal voordat u naar een ander scherm of deelvenster navigeert.
Selecteer op de registratiepagina van de app API-machtigingen in het navigatiedeelvenster om de pagina te openen waarop u toegang kunt toevoegen tot de API's die uw app nodig heeft.
Selecteer Machtigingen toevoegen.
Zorg ervoor dat het tabblad Microsoft-API's is geselecteerd.
Selecteer in de sectie Veelgebruikte Microsoft-API's de optie Microsoft Graph.
Selecteer in de sectie Gedelegeerde machtigingen User.Read in de lijst. Gebruik het zoekvak indien nodig.
Selecteer Machtigingen toevoegen.
De app (java-servlet-webapp-call-graph) configureren om uw app-registratie te gebruiken
Gebruik de volgende stappen om de app te configureren:
Notitie
In de volgende stappen is hetzelfde als of .
Open het project in uw IDE.
Open het bestand ./src/main/resources/authentication.properties.
Zoek de tekenreeks . Vervang de bestaande waarde door een van de volgende waarden:
- Uw Microsoft Entra ID-tenant-id als u uw app hebt geregistreerd met de optie Alleen accounts in deze organisatiedirectory.
- Het woord als u uw app hebt geregistreerd met de optie Accounts in een willekeurige organisatiedirectory.
- Het woord als u uw app hebt geregistreerd met de optie Accounts in een organisatiemap en persoonlijke Microsoft-accounts.
- Het woord als u uw app hebt geregistreerd met de optie Persoonlijke Microsoft-accounts.
Zoek de tekenreeks en vervang de bestaande waarde door de toepassings-id of van de toepassing die is gekopieerd uit Azure Portal.
Zoek de tekenreeks en vervang de bestaande waarde door de waarde die u hebt opgeslagen tijdens het maken van de app in de Azure-portal.
Compileer het voorbeeld
Als u het voorbeeld wilt bouwen met behulp van Maven, gaat u naar de map met het pom.xml-bestand voor het voorbeeld en voert u de volgende opdracht uit:
mvn clean package
Met deze opdracht wordt een WAR-bestand gegenereerd dat u op verschillende toepassingsservers kunt uitvoeren.
De voorbeeldtoepassing uitvoeren
- Implementeren in Azure App Service
- Lokaal uitvoeren
In de volgende secties ziet u hoe u het voorbeeld implementeert in Azure-app Service.
Vereisten
Maven-invoegtoepassing voor Azure App Service-apps
Als Maven niet uw favoriete ontwikkelhulpprogramma is, raadpleegt u de volgende vergelijkbare zelfstudies die gebruikmaken van andere hulpprogramma's:
- IntelliJ IDEA
- Eclipse
- Visual Studio Code
De Maven-invoegtoepassing configureren
Het implementatieproces voor Azure-app Service maakt automatisch gebruik van uw Azure-referenties uit de Azure CLI. Als de Azure CLI niet lokaal is geïnstalleerd, verifieert de Maven-invoegtoepassing zich met OAuth of apparaataanmelding. Zie authenticatie met Maven-plug-ins voor meer informatie.
Gebruik de volgende stappen om de invoegtoepassing te configureren:
Voer de Maven-opdracht uit die wordt weergegeven naast het configureren van de implementatie. Met deze opdracht kunt u het App Service-besturingssysteem, de Java-versie en de Tomcat-versie instellen.
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:configDruk voor Nieuwe runconfiguratie maken op Y en vervolgens op Enter.
Voor Waarde voor besturingssysteem definiëren drukt u op 2 voor Linux en daarna op Enter.
Voor Waarde voor javaVersion definiëren, druk op 2 voor Java 11 en druk vervolgens op Enter.
Druk voor Waarde definiëren voor webContainer op 1 voor JBosseap7 en druk vervolgens op Enter.
Voor Waarde definiëren voor pricingTier drukt u op Enter om de standaard P1v3-laag te selecteren.
Voor Bevestigen drukt u op Y en drukt u vervolgens op Enter.
In het volgende voorbeeld ziet u de uitvoer van het implementatieproces:
Please confirm webapp properties
AppName : msal4j-servlet-auth-1707220080695
ResourceGroup : msal4j-servlet-auth-1707220080695-rg
Region : centralus
PricingTier : P1v3
OS : Linux
Java Version: Java 11
Web server stack: JBosseap 7
Deploy to slot : false
Confirm (Y/N) [Y]:
[INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.196 s
[INFO] Finished at: 2024-02-06T11:48:16Z
[INFO] ------------------------------------------------------------------------
Nadat u uw keuzes hebt bevestigd, voegt de invoegtoepassing de configuratie van de invoegtoepassing en de vereiste instellingen toe aan het pom.xml-bestand van uw project om uw app te configureren voor uitvoering in Azure-app Service.
Het relevante gedeelte van het pom.xml-bestand moet er ongeveer uitzien als in het volgende voorbeeld:
<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>
U kunt de configuraties voor App Service rechtstreeks in uw pom.xml wijzigen. Enkele algemene configuraties worden vermeld in de volgende tabel:
| Eigenschap | Vereist | Beschrijving | Versie |
|---|---|---|---|
schemaVersion |
false | De versie van het configuratieschema. Ondersteunde waarden zijn en . | 1.5.2 |
subscriptionId |
false | De id van het abonnement. | 0.1.0+ |
resourceGroup |
true | De Azure-resourcegroep voor uw app. | 0.1.0+ |
appName |
true | De naam van uw app. | 0.1.0+ |
region |
false | De regio waarin u uw app wilt hosten. De standaardwaarde is . Voor geldige regio's, zie Ondersteunde regio's. | 0.1.0+ |
pricingTier |
false | De prijscategorie voor uw app. De standaardwaarde is P1v2 voor een productiewerklast. De aanbevolen minimumwaarde voor Java-ontwikkeling en -tests is . Zie App Service-prijzen voor meer informatie. | 0.1.0+ |
runtime |
false | De configuratie van de runtime-omgeving. Voor meer informatie, zie Configuratiegegevens. | 0.1.0+ |
deployment |
false | De configuratie voor uitrol. Voor meer informatie, zie Configuratiegegevens. | 0.1.0+ |
Zie de referentiedocumentatie van de invoegtoepassing voor de volledige lijst met configuraties. Alle Azure Maven-invoegtoepassingen delen een algemene set configuraties. Zie Common Configurations voor deze configuraties. Zie Azure app: Configuration Details voor configuraties die specifiek zijn voor Azure App Service.
Zorg ervoor dat u de waarden van en bewaart voor later gebruik.
De app voorbereiden voor implementatie
Wanneer u uw toepassing implementeert in App Service, verandert uw omleidings-URL in de omleidings-URL van uw geïmplementeerde app-exemplaar. Gebruik de volgende stappen om deze instellingen in het eigenschappenbestand te wijzigen:
Navigeer naar het bestand authentication.properties van uw app en wijzig de waarde van in de domeinnaam van uw gedeployede app, zoals in het volgende voorbeeld. Als u bijvoorbeeld in de vorige stap als app-naam hebt gekozen, moet u nu gebruiken voor de -waarde. Zorg ervoor dat u ook het protocol hebt gewijzigd van naar .
# 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.netNadat u dit bestand hebt opgeslagen, gebruikt u de volgende opdracht om uw app opnieuw te bouwen:
mvn clean package
Belangrijk
In hetzelfde authentication.properties-bestand staat een instelling voor uw . Het is geen goede gewoonte om deze waarde in App Service te implementeren. Het is ook geen goed idee om deze waarde in uw code te laten staan en deze mogelijk naar uw Git-opslagplaats te pushen. Als u deze geheime waarde uit uw code wilt verwijderen, vindt u meer gedetailleerde richtlijnen in de sectie Implementeren in App Service - Geheim verwijderen. In deze richtlijnen worden extra stappen toegevoegd om de geheime waarde naar Key Vault door te sturen en Key Vault-verwijzingen te gebruiken.
De registratie van uw Microsoft Entra ID-app bijwerken
Omdat de omleidings-URI wordt gewijzigd in uw geïmplementeerde app in Azure-app Service, moet u ook de omleidings-URI wijzigen in de registratie van uw Microsoft Entra ID-app. Gebruik de volgende stappen om deze wijziging aan te brengen:
Ga naar de pagina App-registraties in het Microsoft identity platform voor ontwikkelaars.
Gebruik het zoekvak om naar uw app-registratie te zoeken - bijvoorbeeld .
Open uw app-registratie door de naam te selecteren.
Selecteer in het menu de optie Verificatie.
Selecteer in de sectie WebOmleidings-URI's URI toevoegen.
Voer de URI van uw app in en voeg toe, bijvoorbeeld .
Selecteer Opslaan.
De app implementeren
U bent nu klaar om uw app te implementeren in Azure-app Service. Gebruik de volgende opdracht om ervoor te zorgen dat u bent aangemeld bij uw Azure-omgeving om de implementatie uit te voeren:
az login
Nu alle configuraties klaar zijn in uw pom.xml-bestand , kunt u nu de volgende opdracht gebruiken om uw Java-app in Azure te implementeren:
mvn package azure-webapp:deploy
Nadat de implementatie is voltooid, is uw applicatie beschikbaar op . Open de URL in uw lokale webbrowser, waar u de startpagina van de -applicatie zou moeten zien.
Het voorbeeld verkennen
Gebruik de volgende stappen om het voorbeeld te verkennen:
- Merk op dat de aanmeldings- of afmeldstatus in het midden van het scherm wordt weergegeven.
- Selecteer de contextgevoelige knop in de hoek. Op deze knop staat Sign In wanneer u de app voor het eerst opent.
- Volg op de volgende pagina de instructies en meld u aan met een account in de Microsoft Entra ID-tenant.
- Let op de machtigingen die op het toestemmingsscherm worden gevraagd.
- Merk op dat de contextgevoelige knop nu Afmelden zegt en uw gebruikersnaam weergeeft.
- Selecteer Details van id-token om enkele van de gedecodeerde claims van het id-token weer te geven.
- Selecteer Call Graph om een aanroep te doen naar het /me-eindpunt van Microsoft Graph en een selectie van de opgehaalde gebruikersgegevens te bekijken.
- Gebruik de knop in de hoek om u af te melden.
Over de code
In dit voorbeeld wordt MSAL voor Java (MSAL4J) gebruikt om een gebruiker aan te melden en een token te verkrijgen voor Microsoft Graph API. Het gebruikt Microsoft Graph SDK for Java om gegevens uit Graph op te halen. U moet deze bibliotheken toevoegen aan uw projecten met behulp van Maven.
Als u het gedrag van dit voorbeeld wilt repliceren, kunt u het pom.xml-bestand en de inhoud van de helpers en authservlets-mappen kopiëren in de map src/main/java/com/microsoft/azuresamples/msal4j . U hebt ook het bestand authentication.properties nodig. Deze klassen en bestanden bevatten algemene code die u kunt gebruiken in een breed scala aan toepassingen. U kunt ook de rest van het voorbeeld kopiëren, maar de andere klassen en bestanden zijn specifiek ontworpen om aan het doel van dit voorbeeld te voldoen.
Inhoud
In de volgende tabel ziet u de inhoud van de voorbeeldprojectmap:
| Bestand/map | Beschrijving |
|---|---|
| src/main/java/com/microsoft/azuresamples/msal4j/callgraphwebapp/ | Deze map bevat de klassen die de bedrijfslogica van de back-end van de app definiëren. |
| src/main/java/com/microsoft/azuresamples/msal4j/authservlets/ | Deze map bevat de klassen die worden gebruikt voor aanmeldings- en afmeldingseindpunten. |
| *Servlet.java | Alle beschikbare eindpunten worden gedefinieerd in Java-klassen met namen die eindigen op Servlet. |
| src/main/java/com/microsoft/azuresamples/msal4j/helpers/ | Helperklassen voor verificatie. |
| AuthenticationFilter.java | Leidt niet-geverifieerde verzoeken naar beveiligde eindpunten om naar een 401-pagina. |
| src/main/resources/authentication.properties | Configuratie van Microsoft Entra-id en -programma. |
| src/main/webapp/ | Deze map bevat de gebruikersinterface - JSP-sjablonen |
| CHANGELOG.md | Lijst met wijzigingen in het voorbeeld. |
| CONTRIBUTING.md | Richtlijnen voor bijdragen aan het voorbeeld. |
| LICENTIE | De licentie voor het voorbeeld. |
ConfidentialClientApplication
Er wordt een exemplaar van gemaakt in het bestand AuthHelper.java, zoals in het volgende voorbeeld wordt weergegeven. Dit object helpt bij het maken van de autorisatie-URL van Microsoft Entra ID en helpt ook bij het uitwisselen van het verificatietoken voor een toegangstoken.
// getConfidentialClientInstance method
IClientSecret secret = ClientCredentialFactory.createFromSecret(SECRET);
confClientInstance = ConfidentialClientApplication
.builder(CLIENT_ID, secret)
.authority(AUTHORITY)
.build();
De volgende parameters worden gebruikt voor instantiëring:
- De client-id van de app.
- Het clientgeheim, dat vereist is voor Vertrouwelijke clienttoepassingen.
- De Microsoft Entra-id-autoriteit, die uw Microsoft Entra-tenant-id bevat.
In dit voorbeeld worden deze waarden gelezen uit het bestand authentication.properties met behulp van een eigenschappenlezer in het bestand Config.java .
Stapsgewijze handleiding
De volgende stappen bieden een overzicht van de functionaliteit van de app:
De eerste stap van het aanmeldproces is het verzenden van een aanvraag naar het -eindpunt voor uw Microsoft Entra ID-tenant. Het MSAL4J-exemplaar wordt gebruikt om een URL voor een autorisatieaanvraag op te bouwen. De app leidt de browser om naar deze URL, waar de gebruiker zich aanmeldt.
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);In de volgende lijst worden de functies van deze code beschreven:
- : Parameters die moeten worden ingesteld om een op te bouwen.
- : Waar Microsoft Entra ID de browser naartoe omleidt, samen met de autorisatiecode, nadat gebruikersreferenties zijn verzameld. Deze moet overeenkomen met de omleidings-URI in de app-registratie van Microsoft Entra ID in de Azure portal
- : Scopes zijn machtigingen die door de applicatie worden aangevraagd.
- Normaal gesproken volstaan de drie scopes voor het ontvangen van een ID-tokenreactie.
- De volledige lijst met door de app aangevraagde machtigingen is te vinden in het bestand authentication.properties. U kunt meer scopes toevoegen, zoals .
De gebruiker krijgt een aanmeldingsprompt van Microsoft Entra ID. Als de aanmeldingspoging is geslaagd, wordt de browser van de gebruiker omgeleid naar het omleidingseindpunt van de app. Een geldig verzoek aan dit eindpunt bevat een autorisatiecode.
Het -exemplaar wisselt deze autorisatiecode vervolgens uit voor een ID-token en toegangstoken van 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();In de volgende lijst worden de functies van deze code beschreven:
- : Parameters die moeten worden ingesteld om de autorisatiecode voor een ID-token en/of toegangstoken uit te wisselen.
- : De autorisatiecode die is ontvangen bij het omleidingseindpunt.
- : De redirect-URI die in de vorige stap is gebruikt, moet opnieuw worden meegegeven.
- : De scopes die in de vorige stap zijn gebruikt, moeten opnieuw worden doorgegeven.
Als slaagt, worden de tokenclaims geëxtraheerd. Als de nonce-controle slaagt, worden de resultaten in geplaatst — een exemplaar van — en in de sessie opgeslagen. De toepassing kan vervolgens de uit de sessie instantiëren via een exemplaar van wanneer zij er toegang toe nodig heeft, zoals in de volgende code wordt weergegeven:
// 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());
De routes beveiligen
Zie AuthenticationFilter.java voor informatie over hoe de voorbeeld-app de toegang tot routes filtert. In het bestand authentication.properties bevat de -eigenschap de door komma's gescheiden routes waartoe alleen geverifieerde gebruikers toegang hebben, zoals in het volgende voorbeeld wordt weergegeven:
# for example, /token_details requires any user to be signed in and does not require special roles or groups claim(s)
app.protect.authenticated=/token_details, /call_graph
Oproepgrafiek
Wanneer de gebruiker naar navigeert, maakt de toepassing een exemplaar van uit de Java Graph SDK, waarbij het toegangstoken van de aangemelde gebruiker wordt meegegeven. De Graph-client plaatst het toegangstoken in de -headers van zijn verzoeken. De app vraagt vervolgens de Graph-client om het -eindpunt aan te roepen om details op te halen voor de gebruiker die momenteel is aangemeld.
Als u al een geldig toegangstoken voor Graph Service met het -bereik hebt, hebt u alleen de volgende code nodig om toegang te krijgen tot het -eindpunt:
//CallGraphServlet.java
User user = GraphHelper.getGraphClient(contextAdapter).me().buildRequest().get();
Scopes
Scopes geven Microsoft Entra ID aan welk toegangsniveau de applicatie aanvraagt.
Op basis van de aangevraagde machtigingen toont Microsoft Entra ID de gebruiker een toestemmingsvenster wanneer deze zich aanmeldt. Als de gebruiker instemt met een of meer scopes en een token verkrijgt, worden de scopes waarvoor toestemming is gegeven gecodeerd in de resulterende .
Zie authentication.properties voor de machtigingen die door de toepassing zijn aangevraagd. Standaard stelt de toepassing de scopes-waarde in op . Dit specifieke Microsoft Graph API-bereik is bedoeld voor toegang tot de informatie van de huidige aangemelde gebruiker. Het Graph-eindpunt voor toegang tot deze informatie is . Alle geldige aanvragen aan dit eindpunt moeten een bevatten dat het bereik bevat in de -header.
Meer informatie
- Microsoft Authentication Library (MSAL) voor Java
- Microsoft identity platform (Microsoft Entra ID voor ontwikkelaars)
- Snelstart: een toepassing registreren bij het Microsoft identity platform
- Inzicht in toestemmingservaringen voor toepassingen in Microsoft Entra ID
- Begrijp de toestemming van gebruikers en beheerders
- MSAL-codevoorbeelden