Snabbstart: Lägga till inloggning med Microsoft till en Java-webbapp

I den här snabbstarten laddar du ned och kör ett kodexempel som visar hur en Java-webbapp kan logga in användare och anropa Microsoft Graph API. Användare från valfri Azure Active Directory (Azure AD)-organisation kan logga in på programmet.

En översikt finns i diagrammet över hur exemplet fungerar.

Förutsättningar

Om du vill köra det här exemplet behöver du:

Registrera och ladda ned snabbstartsappen

Det finns två sätt att starta snabbstartsprogrammet: express (alternativ 1) och manuellt (alternativ 2).

Alternativ 1: Registrera och konfigurera din app automatiskt och ladda sedan ned kodexe exemplet

  1. Gå till Azure Portal – Appregistreringar snabbstart.
  2. Ange ett namn för programmet och välj sedan Registrera.
  3. Följ anvisningarna i portalens snabbstartsupplevelse för att ladda ned den automatiskt konfigurerade programkoden.

Alternativ 2: Registrera och konfigurera programmet och kodexemplet

Steg 1: Registrera ditt program

Registrera ditt program och lägg till appens registreringsinformation manuellt genom att följa dessa steg:

  1. Logga in på Azure-portalen.
  2. Om du har åtkomst till flera klienter använder du filtret Kataloger + prenumerationer på den översta menyn för att växla till den klientorganisation där du vill registrera programmet.
  3. Sök efter och välj Azure Active Directory.
  4. Välj Appregistreringar under Hantera.
  5. Välj Ny registrering.
  6. Ange ett Namn för ditt program, till exempel java-webapp. Användare av din app kan se det här namnet. Du kan ändra det senare.
  7. Välj Register (Registrera).
  8. Observera Program-ID (klient) och Katalog-ID (klient) på sidan Översikt. Du behöver dessa värden senare.
  9. Under Hantera väljer du Autentisering.
  10. Välj Lägg till en plattformswebb. >
  11. I avsnittet Omdirigerings-URI:er anger du https://localhost:8443/msal4jsample/secure/aad .
  12. Välj Konfigurera.
  13. I avsnittet Webb, under Omdirigerings-URI:er, anger du https://localhost:8443/msal4jsample/graph/me som en andra omdirigerings-URI.
  14. Välj Certifikat och hemligheter under Hantera. I avsnittet Klienthemligheter väljer du Ny klienthemlighet.
  15. Ange en nyckelbeskrivning (till exempel apphemlighet), lämna standardförfallotiden och välj Lägg till.
  16. Anteckna värdet för klienthemligheten. Du behöver det senare.

Steg 1: Konfigurera din app i Azure-portalen

Så här använder du kodexe exemplet i den här snabbstarten:

  1. Lägg till svars-URL:er https://localhost:8443/msal4jsample/secure/aad och https://localhost:8443/msal4jsample/graph/me .
  2. Skapa en klienthemlighet.

Redan konfigurerad Programmet konfigureras med de här attributen.

Steg 2: Ladda ned kodexe exemplet

Ladda ned projektet och extrahera .zip till en mapp nära roten på enheten. Till exempel C:\Azure-Samples.

Om du vill använda HTTPS med localhost anger du server.ssl.key egenskaperna. Om du vill generera ett själv signerat certifikat använder du verktyget keytool (ingår i JRE).

Här är ett exempel:

 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

Placera den genererade keystore-filen i resursmappen.

Anteckning

Enter_the_Supported_Account_Info_Here

Steg 3: Konfigurera kodexe exemplet

  1. Extrahera zip-filen till en lokal mapp.

  2. Valfri. Om du använder en integrerad utvecklingsmiljö öppnar du exemplet i den miljön.

  3. Öppna filen application.properties. Du hittar den i mappen src/main/resources/. Ersätt värdena i fälten aad.clientId , och med värdena aad.authority aad.secretKey program-ID, klient-ID respektive klienthemlighet. Så här bör det se ut:

    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/"
    

    I föregående kod:

    • Enter_the_Application_Id_here är program-ID:t för det program som du registrerade.
    • Enter_the_Client_Secret_Here är den klienthemlighet som du skapade i Certifikat & hemligheter för det program som du registrerade.
    • Enter_the_Tenant_Info_Here är katalog-ID-värdet (klient) för det program som du registrerade.
  4. Om du vill använda HTTPS med localhost anger du server.ssl.key egenskaperna. Om du vill generera ett själv signerat certifikat använder du verktyget keytool (ingår i JRE).

    Här är ett exempel:

     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
    
  5. Placera den genererade keystore-filen i resursmappen.

Steg 3: Kör kodexe exemplet

Steg 4: Kör kodexe exemplet

Gör något av följande för att köra projektet:

  • Kör den direkt från din IDE med hjälp av den inbäddade Spring Boot servern.
  • Paketera den till en WAR-fil med hjälp av Mavenoch distribuera den sedan till en J2EE-containerlösning som Apache Tomcat.
Köra projektet från en IDE

Om du vill köra webbprogrammet från en IDE väljer du Kör och går sedan till startsidan för projektet. I det här exemplet är standard-URL:en för startsidan https://localhost:8443 .

  1. På startsidan väljer du knappen Logga in för att omdirigera användare till Azure Active Directory och uppmanar dem att ange autentiseringsuppgifter.

  2. När användarna har autentiserats omdirigeras de till https://localhost:8443/msal4jsample/secure/aad . De är nu inloggade och sidan visar information om användarkontot. Exempelgränssnittet har följande knappar:

    • Logga ut: Loggar ut den aktuella användaren från programmet och omdirigerar användaren till startsidan.
    • Visa användarinformation: Hämtar en token för Microsoft Graph och anropar Microsoft Graph med en begäran som innehåller token, som returnerar grundläggande information om den inloggade användaren.
Köra projektet från Tomcat

Om du vill distribuera webbexempel till Tomcat gör du några ändringar i källkoden.

  1. Öppna ms-identity-java-webapp/src/main/java/com.microsoft.azure.msalwebsample/MsalWebSampleApplication.

    • Ta bort all källkod och ersätt den med den här koden:

       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. Tomcats http-standardport är 8080, men du behöver en HTTPS-anslutning via port 8443. Så här konfigurerar du den här inställningen:

    • Gå till tomcat/conf/server.xml.

    • Sök efter <connector> taggen och ersätt den befintliga anslutningsappen med den här anslutningsappen:

      <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. Öppna ett kommandotolksfönster. Gå till rotmappen i det här exemplet (där pom.xml finns) och kör mvn package för att skapa projektet.

    • Det här kommandot genererar en msal-web-sample-0.1.0.war-fil i katalogen /targets.
    • Byt namn på filen till msal4jsample.war.
    • Distribuera WAR-filen med tomcat eller någon annan J2EE-containerlösning.
      • Om du vill distribuera filen msal4jsample.war kopierar du den till katalogen /webapps/ i Tomcat-installationen och startar sedan Tomcat-servern.
  4. När filen har distribuerats går du till https://localhost:8443/msal4jsample med hjälp av en webbläsare.

Viktigt

Det här snabbstartsprogrammet använder en klienthemlighet för att identifiera sig som en konfidentiell klient. Eftersom klienthemligheten läggs till som oformaterad text i projektfilerna rekommenderar vi av säkerhetsskäl att du använder ett certifikat i stället för en klienthemlighet innan du använder programmet i en produktionsmiljö. Mer information om hur du använder ett certifikat finns i Certifikatautentiseringsuppgifter för programautentisering.

Mer information

Så här fungerar exemplet

Diagram som visar hur exempelappen som genereras av den här snabbstarten fungerar.

Hämta MSAL

MSAL för Java (MSAL4J) är det Java-bibliotek som används för att logga in användare och begära token som används för åtkomst till ett API som skyddas av Microsofts identitetsplattform.

Lägg till MSAL4J i ditt program med hjälp av Maven eller Gradle för att hantera dina beroenden genom att göra följande ändringar i programmets pom.xml-fil (Maven) eller build.gradle-fil (Gradle).

I pom.xml:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>msal4j</artifactId>
    <version>1.0.0</version>
</dependency>

I build.gradle:

compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'

Initiera MSAL

Lägg till en referens till MSAL för Java genom att lägga till följande kod i början av filen där du kommer att använda MSAL4J:

import com.microsoft.aad.msal4j.*;

Hjälp och support

Om du behöver hjälp, vill rapportera ett problem eller vill veta mer om dina support alternativ, se Hjälp och support för utvecklare.

Nästa steg

En mer detaljerad beskrivning av hur du skapar webbappar som loggar in användare på Microsofts identitetsplattform finns i scenarioserien med flera delar: