Quickstart: Aanmelden met Microsoft toevoegen aan een Java-webapp
In deze quickstart downloadt u een codevoorbeeld en voert u dit uit. Het codevoorbeeld laat zien hoe gebruikers kunnen worden aangemeld en de Microsoft Graph kunnen aanroepen met een Java-webtoepassing. Gebruikers uit elke willekeurige Azure AD-organisatie (Azure Active Directory) kunnen zich aanmelden bij de toepassing.
Zie het diagram met de werking van het voorbeeld voor een overzicht.
Vereisten
Als u dit voorbeeld wilt uitvoeren, hebt u het volgende nodig:
- Java Development Kit (JDK) 8 of nieuwer.
- Maven.
De quickstart-app registreren en downloaden
Er zijn twee manieren waarop u de quickstart-toepassing kunt starten: express (optie 1) en handmatig (optie 2).
Optie 1: Registreer de toepassing en laat deze automatisch configureren. Download vervolgens het codevoorbeeld
- Ga naar de quickstart-ervaring Azure-portal - App-registraties.
- Voer een naam in voor de toepassing en selecteer dan Registreren.
- Volg de instructies in de quickstart van het portal om de automatisch geconfigureerde toepassingscode te downloaden.
Optie 2: registreer de toepassing en configureer handmatig de toepassing en het codevoorbeeld
Stap 1: Uw toepassing registreren
Volg deze stappen om de toepassing te registreren en de registratiegegevens van de app handmatig toe te voegen:
- Meld u aan bij de Azure-portal.
- Als u toegang hebt tot meerdere tenants, gebruikt u het filter Directories + subscriptions in het bovenste menu om over te schakelen naar de tenant waarin u
de toepassing wilt registreren. - Zoek en selecteer de optie Azure Active Directory.
- Selecteer App-registraties onder Beheren.
- Selecteer Nieuwe registratie.
- Voer een Naam in voor de toepassing, bijvoorbeeld java-webapp. Gebruikers van uw app kunnen deze naam zien. U kunt deze later wijzigen.
- Selecteer Registreren.
- Noteer op de pagina Overzicht de toepassings-id (client) en de map-id (tenant) . U hebt deze waarden later nodig.
- Selecteer Verificatie onder Beheren.
- Selecteer Een platform toevoegen > Web.
- Voer in de sectie Omleidings-URI's
https://localhost:8443/msal4jsample/secure/aadin. - Selecteer Configureren.
- Voer in de sectie Web, onder Omleidings-URI's,
https://localhost:8443/msal4jsample/graph/mein als een tweede omleidings-URI. - Selecteer onder Beheren de optie Certificaten en geheimen. Selecteer in de sectie Clientgeheimen de optie Nieuw clientgeheim.
- Voer een beschrijving voor de sleutel in (bijvoorbeeld app-geheim), laat de standaardvervaldatum staan, en selecteer Toevoegen.
- Noteer de waarde van het clientgeheim. U hebt deze later nodig.
Stap 1: uw toepassing configureren in Azure Portal
Het codevoorbeeld in deze quickstart gebruiken:
- Voeg de antwoord-URL's
https://localhost:8443/msal4jsample/secure/aadenhttps://localhost:8443/msal4jsample/graph/metoe. - Maak een clientgeheim.
Uw toepassing is al geconfigureerd met deze kenmerken.
Stap 2: Het codevoorbeeld downloaden
Download het project en pak het ZIP-bestand uit in een map in de buurt van de hoofdmap van uw station. Bijvoorbeeld C:\Azure-Samples.
Als u HTTPS voor localhost wilt gebruiken, geeft u de server.ssl.key-eigenschappen op. Gebruik het keytool-hulpprogramma om een zelfondertekend certificaat te maken (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 KeyStore-bestand in de map resources.
Notitie
Enter_the_Supported_Account_Info_Here
Stap 3: Het codevoorbeeld configureren
Pak het zip-bestand uit naar lokale map.
Optioneel. Als u een Integrated Development Environment gebruikt, opent u het voorbeeld in die omgeving.
Open het bestand application.properties. U vindt dit in de map src/main/resources/ . Vervang de waarden in de velden
aad.clientId,aad.authorityenaad.secretKeydoor respectievelijk de toepassings-id, de tenant-id en de waarden van het clientgeheim. Zo moet het er nu 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_hereis de toepassings-id voor de toepassing die u hebt geregistreerd.Enter_the_Client_Secret_Hereis het clientgeheim dat u in Certificaten en geheimen hebt gemaakt voor de toepassing die u hebt geregistreerd.Enter_the_Tenant_Info_Hereis de waarde voor Map-id (tenant) van de toepassing die u hebt geregistreerd.
Als u HTTPS voor localhost wilt gebruiken, geeft u de
server.ssl.key-eigenschappen op. Gebruik het keytool-hulpprogramma om een zelfondertekend certificaat te maken (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=testCertPlaats het gegenereerde KeyStore-bestand in de map resources.
Stap 3: Het codevoorbeeld uitvoeren
Stap 4: Het codevoorbeeld uitvoeren
Voer een van de volgende stappen uit om het project uit te voeren:
- Voer het rechtstreeks vanuit uw IDE uit met behulp van de ingesloten Spring Boot-server.
- Verpak het in een WAR-bestand met behulp van Maven en implementeer het 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. In dit voorbeeld is de standaard-URL voor de startpagina: https://localhost:8443.
Selecteer op de voorpagina de knop Aanmelden om gebruikers om te leiden naar Azure Active Directory en ze om referenties te vragen.
Nadat de gebruikers zijn geverifieerd, worden ze omgeleid naar
https://localhost:8443/msal4jsample/secure/aad. Ze zijn nu aangemeld en op de pagina wordt informatie over het gebruikersaccount weergegeven. De voorbeeld-UI heeft deze knoppen:- Afmelden: Hiermee wordt de huidige gebruiker afgemeld bij de toepassing en omgeleid naar de startpagina.
- Gebruikersgegevens weergeven: Hiermee wordt een token voor Microsoft Graph opgehaald en wordt Microsoft Graph aangeroepen met een verzoek dat de token bevat, dat informatie retourneert over de aangemelde gebruiker.
Het project uitvoeren vanuit Tomcat
Als u het webvoorbeeld wilt implementeren in Tomcat, moet u een aantal 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 er is een HTTPS-verbinding via poort 8443 nodig. U kunt deze instelling als volgt configureren:
Ga naar tomcat/conf/server.xml.
Zoek de tag
<connector>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 bestand pom.xml zich bevindt) en voer
mvn packageuit om het project te bouwen.- Met deze opdracht wordt een msal-web-sample-0.1.0.war-bestand in de map /targets gegenereerd.
- Wijzig de naam van dit bestand in msal4jsample.war.
- Implementeer dit WAR-bestand met behulp van Tomcat of een andere J2EE-containeroplossing.
- Voor de implementatie van bestand msal4jsample.war kopieert u het bestand naar de map /webapps/ in uw Tomcat-installatie en start u de Tomcat-server.
Nadat het bestand is geïmplementeerd, gaat u in een browser naar https://localhost:8443/msal4jsample.
Belangrijk
Deze quickstarttoepassing gebruikt een clientgeheim om zichzelf te identificeren als een vertrouwelijke client. Omdat het clientgeheim als platte tekst aan uw projectbestanden wordt toegevoegd, wordt u om veiligheidsredenen aangeraden een certificaat te gebruiken in plaats van een clientgeheim voordat u de toepassing in een productieomgeving gebruikt. Zie Certificaatreferenties voor toepassingsverificatie voor 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 voor het aanmelden van gebruikers en de aanvraagtokens die worden gebruikt voor toegang tot een API die is beveiligd via het Microsoft-identiteitsplatform.
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) van de toepassing.
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 toe aan MSAL voor Java door de volgende code toe te voegen aan het begin van het bestand waarin u MSAL4J gaat gebruiken:
import com.microsoft.aad.msal4j.*;
Help en ondersteuning
Als u hulp nodig hebt, een probleem wilt melden of meer informatie wilt over uw ondersteuningsopties, raadpleegt u Hulp en ondersteuning voor ontwikkelaars.
Volgende stappen
Voor een uitgebreidere bespreking van het bouwen van web-apps waarmee gebruikers zich aanmelden op het Microsoft Identity-platform, raadpleegt u onze reeks scenario's: