Share via


Quickstart: Gebruikers aanmelden en de Microsoft Graph API aanroepen vanuit een Java-web-app

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 van elke Microsoft Entra-organisatie kunnen zich aanmelden bij de toepassing.

Zie Hoe het voorbeeld werkt voor een illustratie.

Vereisten

Als u dit voorbeeld wilt uitvoeren, hebt u het volgende nodig:

De snelstart-app registreren en downloaden

Tip

Stappen in dit artikel kunnen enigszins variëren op basis van de portal waaruit u begint.

Er zijn twee manieren waarop u de quickstart-toepassing kunt starten: express (optie 1) en handmatig (optie 2).

Optie 1: Uw app registreren en automatisch configureren en vervolgens het codevoorbeeld downloaden

  1. Ga naar het Microsoft Entra-beheercentrum - App-registraties quickstart-ervaring als ten minste een cloudtoepassing Beheer istrator.
  2. Voer een naam in voor de toepassing en selecteer dan Registreren.
  3. 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:

  1. Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een cloudtoepassing Beheer istrator.
  2. 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.
  3. Blader naar Identiteitstoepassingen>> App-registraties en selecteer Nieuwe registratie.
  4. Voer een Naam in voor de toepassing, bijvoorbeeld java-webapp. Gebruikers van uw app kunnen deze naam zien. U kunt deze later wijzigen.
  5. Selecteer Registreren.
  6. Noteer op de pagina Overzicht de toepassings-id (client) en de map-id (tenant). U hebt deze waarden later nodig.
  7. Selecteer Verificatie onder Beheren.
  8. Selecteer Een platform toevoegen>Web.
  9. Voer in de sectie Omleidings-URI'shttps://localhost:8443/msal4jsample/secure/aad in.
  10. Selecteer Configureren.
  11. Voer in de sectie Web, onder Omleidings-URI's, https://localhost:8443/msal4jsample/graph/me in als een tweede omleidings-URI.
  12. Selecteer onder Beheren de optie Certificaten en geheimen. Selecteer in de sectie Clientgeheimen de optie Nieuw clientgeheim.
  13. Voer een beschrijving voor de sleutel in (bijvoorbeeld app-geheim), laat de standaardvervaldatum staan, en selecteer Toevoegen.
  14. Noteer de waarde van het clientgeheim. U hebt deze later nodig.

Stap 2: Het codevoorbeeld downloaden

Het codevoorbeeld downloaden

Stap 3: Het codevoorbeeld configureren

  1. Pak het zip-bestand uit naar lokale map.

  2. Optioneel. Als u een Integrated Development Environment gebruikt, opent u het voorbeeld in die omgeving.

  3. Open het bestand application.properties. U vindt dit in de map src/main/resources/. Vervang de waarden in de velden aad.clientId, aad.authority en aad.secretKey door 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_here is de toepassings-id voor de toepassing die u hebt geregistreerd.
  • Enter_the_Client_Secret_Here is het clientgeheim dat u in Certificaten en geheimen hebt gemaakt voor de toepassing die u hebt geregistreerd.
  • Enter_the_Tenant_Info_Here is de waarde voor Map-id (tenant) van de toepassing die u hebt geregistreerd.
  1. 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
  1. Plaats het gegenereerde KeyStore-bestand in de map resources.

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. Voor dit voorbeeld is de standaard URL voor de startpagina https://localhost:8443.

  1. Selecteer op de voorpagina de knop Aanmelden om gebruikers om te leiden naar De Microsoft Entra-id en om referenties te vragen.

  2. 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: de huidige gebruiker afmelden bij de toepassing en die gebruiker omleidt naar de startpagina.
    • Gebruikersgegevens weergeven: Hiermee verwerft u een token voor Microsoft Graph en roept u 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 met Tomcat, moet u een aantal wijzigingen aanbrengen in de broncode.

  1. 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);
        }
       }
      
  2. 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"/>
      
  3. Open een opdrachtpromptvenster. Ga naar de hoofdmap van dit voorbeeld (waar het pom.xml bestand zich bevindt) en voer deze uit mvn package 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 dit WAR-bestand met behulp van Tomcat of een andere J2EE-containeroplossing.
      • Als u het bestand wilt implementeren, kopieert u het msal4jsample.war naar de /webapps/ map in uw Tomcat-installatie en start u de Tomcat-server.
  4. 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

Diagram that shows how the sample app generated by this quickstart works.

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: