Quickstart: Gebruikers aanmelden en de Microsoft Graph API aanroepen vanuit een Java-web-app
In deze quickstart downloadt en voert u een codevoorbeeld uit dat laat zien hoe een Java-webtoepassing gebruikers kan aanmelden en de Microsoft Graph API kan aanroepen. Gebruikers van elke Microsoft Entra-organisatie kunnen zich aanmelden bij de toepassing.
Zie Hoe het voorbeeld werkt voor een afbeelding.
Voorwaarden
Als u dit voorbeeld wilt uitvoeren, hebt u het volgende nodig:
- Java Development Kit (JDK) 8 of hoger.
- Maven-.
Uw quickstart-app registreren en downloaden
Er zijn twee manieren om uw snelstarttoepassing te starten: express (optie 1) en handmatig (optie 2).
Optie 1: Uw app registreren en automatisch configureren en vervolgens het codevoorbeeld downloaden
- Ga naar het Microsoft Entra-beheercentrum - App-registraties quickstart-ervaring als minstens een Cloud Application Administrator-.
- Voer een naam in voor uw toepassing en selecteer vervolgens Registreren.
- Volg de instructies in de quickstart-ervaring van de portal om de automatisch geconfigureerde toepassingscode te downloaden.
Optie 2: Uw toepassing en codevoorbeeld registreren en handmatig configureren
Stap 1: Uw toepassing registreren
Voer de volgende stappen uit om uw toepassing te registreren en de registratiegegevens van de app handmatig toe te voegen:
- Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een Cloudtoepassingsbeheerder.
- Als u toegang hebt tot meerdere tenants, gebruikt u het pictogram Instellingen
in het bovenste menu om over te schakelen naar de tenant waarin u de toepassing wilt registreren in het menu Mappen en abonnementen.
- Blader naar Identity>Applications>App-registraties en selecteer Nieuwe registratie.
- Voer een naam in voor uw toepassing, bijvoorbeeld java-webapp. Gebruikers van uw app zien deze naam mogelijk. U kunt deze later wijzigen.
- Selecteer registreren.
- Noteer op de pagina Overzicht de toepassings-id en de Directory-id (tenant). U hebt deze waarden later nodig.
- Selecteer onder Beheerde optie Verificatie.
- Selecteer Een platform toevoegen>Web.
- Voer in de sectie Redirect-URI's de waarde
https://localhost:8443/msal4jsample/secure/aad
in. - Selecteer configureren.
- Voer in de sectie Web, onder omleidings-URI's,
https://localhost:8443/msal4jsample/graph/me
in als een tweede omleidings-URI. - Selecteer onder Beherende opties Certificaten en & geheimen. Selecteer in de sectie CliëntgeheimenNieuw cliëntgeheim.
- Voer een sleutelbeschrijving in (bijvoorbeeld app-geheim), laat de standaardverlooptijd staan en selecteer toevoegen.
- Noteer de waarde van het clientgeheim. U hebt het later nodig.
Stap 2: Het codevoorbeeld downloaden
Stap 3: Het codevoorbeeld configureren
Pak het zip-bestand uit naar een lokale map.
Facultatief. Als u een geïntegreerde ontwikkelomgeving gebruikt, opent u het voorbeeld in die omgeving.
Open het bestand application.properties. U vindt deze in de map src/main/resources/. Vervang de waarden in de velden
aad.clientId
,aad.authority
enaad.secretKey
respectievelijk door de waarden van de toepassings-id, tenant-id en clientgeheim. Dit moet er als volgt uitzien:aad.clientId=Enter_the_Application_Id_here aad.authority=https://login.microsoftonline.com/Enter_the_Tenant_Info_Here/ aad.secretKey=Enter_the_Client_Secret_Here aad.redirectUriSignin=https://localhost:8443/msal4jsample/secure/aad aad.redirectUriGraph=https://localhost:8443/msal4jsample/graph/me aad.msGraphEndpointHost="https://graph.microsoft.com/"
In de vorige code:
-
Enter_the_Application_Id_here
is de toepassings-id voor de toepassing die u hebt geregistreerd. -
Enter_the_Client_Secret_Here
is het clientgeheim u hebt gemaakt in Certificaten & geheimen voor de toepassing die u hebt geregistreerd. -
Enter_the_Tenant_Info_Here
is de Directory (tenant) ID-waarde van de toepassing die u hebt geregistreerd.
- Als u HTTPS wilt gebruiken met localhost, geeft u de
server.ssl.key
eigenschappen op. Als u een zelfondertekend certificaat wilt genereren, gebruikt u het hulpprogramma keytool (opgenomen in JRE).
Hier volgt een voorbeeld:
keytool -genkeypair -alias testCert -keyalg RSA -storetype PKCS12 -keystore keystore.p12 -storepass password
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=password
server.ssl.key-alias=testCert
- Plaats het gegenereerde sleutelarchiefbestand in de resources map.
Stap 4: Het codevoorbeeld uitvoeren
Voer een van de volgende stappen uit om het project uit te voeren:
- Voer deze rechtstreeks vanuit uw IDE uit met behulp van de ingesloten Spring Boot-server.
- Verpakt het in een WAR-bestand met behulp van Maven-en implementeer het vervolgens in een J2EE-containeroplossing, zoals Apache Tomcat-.
Het project uitvoeren vanuit een IDE
Als u de webtoepassing vanuit een IDE wilt uitvoeren, selecteert u Uitvoeren en gaat u naar de startpagina van het project. Voor dit voorbeeld is de standaard-URL van de startpagina https://localhost:8443.
Selecteer op de voorpagina de knop Aanmelden om gebruikers om te leiden naar Microsoft Entra ID en om referenties te vragen.
Nadat gebruikers zijn geverifieerd, worden ze omgeleid naar
https://localhost:8443/msal4jsample/secure/aad
. Ze zijn nu aangemeld en de pagina bevat informatie over het gebruikersaccount. De voorbeeldgebruikersinterface heeft deze knoppen:- Afmelden: logt de huidige gebruiker uit bij de toepassing en leidt deze gebruiker om naar de startpagina.
- Gebruikersgegevens weergeven: verwerft een token voor Microsoft Graph en roept Microsoft Graph aan met een aanvraag die het token bevat, waarmee basisinformatie over de aangemelde gebruiker wordt geretourneerd.
Het project uitvoeren vanuit Tomcat
Als u het webvoorbeeld wilt implementeren in Tomcat, moet u enkele wijzigingen aanbrengen in de broncode.
Open ms-identity-java-webapp/src/main/java/com.microsoft.azure.msalwebsample/MsalWebSampleApplication.
Verwijder alle broncode en vervang deze door deze code:
package com.microsoft.azure.msalwebsample; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class MsalWebSampleApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MsalWebSampleApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MsalWebSampleApplication.class); } }
De standaard-HTTP-poort van Tomcat is 8080, maar u hebt een HTTPS-verbinding via poort 8443 nodig. Ga als volgt te werk om deze instelling te configureren:
Ga naar tomcat/conf/server.xml.
Zoek de
<connector>
tag en vervang de bestaande connector door deze connector:<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="C:/Path/To/Keystore/File/keystore.p12" keystorePass="KeystorePassword" clientAuth="false" sslProtocol="TLS"/>
Open een opdrachtpromptvenster. Ga naar de hoofdmap van dit voorbeeld (waar het
pom.xml
bestand zich bevindt) en voermvn package
uit om het project te bouwen.- Met deze opdracht wordt een
msal-web-sample-0.1.0.war
bestand in uw/targets
map gegenereerd. - Wijzig de naam van dit bestand in
msal4jsample.war
. - Implementeer het WAR-bestand met behulp van Tomcat of een andere J2EE-containeroplossing.
- Als u het
msal4jsample.war
-bestand wilt implementeren, kopieert u het naar de/webapps/
map in uw Tomcat-installatie en start u de Tomcat-server.
- Als u het
- Met deze opdracht wordt een
Nadat het bestand is geïmplementeerd, gaat u naar
https://localhost:8443/msal4jsample
met behulp van een browser.
Belangrijk
In deze quickstart-toepassing wordt een clientgeheim gebruikt om zichzelf te identificeren als een vertrouwelijke client. Omdat het clientgeheim als tekst zonder opmaak aan uw projectbestanden wordt toegevoegd, raden we u aan om veiligheidsredenen een certificaat te gebruiken in plaats van een clientgeheim voordat u de toepassing in een productieomgeving gebruikt. Zie Certificaatreferenties voor toepassingsverificatievoor meer informatie over het gebruik van een certificaat.
Meer informatie
Hoe het voorbeeld werkt
MSAL ophalen
MSAL voor Java (MSAL4J) is de Java-bibliotheek die wordt gebruikt om gebruikers aan te melden en tokens aan te vragen die worden gebruikt voor toegang tot een API die wordt beveiligd door het Microsoft Identity Platform.
Voeg MSAL4J toe aan uw toepassing met behulp van Maven of Gradle om uw afhankelijkheden te beheren door de volgende wijzigingen aan te brengen in het bestand pom.xml (Maven) of build.gradle (Gradle).
In pom.xml:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>msal4j</artifactId>
<version>1.0.0</version>
</dependency>
In build.gradle:
compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'
MSAL initialiseren
Voeg een verwijzing naar MSAL voor Java toe door de volgende code toe te voegen aan het begin van het bestand waarin u MSAL4J gebruikt:
import com.microsoft.aad.msal4j.*;
Help en ondersteuning
Als u hulp nodig hebt, een probleem wilt melden of meer wilt weten over uw ondersteuningsopties, raadpleegt u Help en ondersteuning voor ontwikkelaars.
Volgende stappen
Zie de reeks scenario's met meerdere onderdelen voor een uitgebreidere bespreking van het bouwen van web-apps die gebruikers aanmelden op het Microsoft Identity Platform: