Szybki start: logowanie użytkowników i wywoływanie interfejsu API programu Microsoft Graph z poziomu aplikacji internetowej Java

W tym przewodniku Szybki start pobierzesz i uruchomisz przykładowy kod, który pokazuje, jak aplikacja internetowa Java może logować użytkowników i wywoływać interfejs API programu Microsoft Graph. Użytkownicy z dowolnej organizacji firmy Microsoft Entra mogą logować się do aplikacji.

Zobacz Jak działa przykład, aby zapoznać się z ilustracją.

Wymagania wstępne

Aby uruchomić ten przykład, potrzebne są następujące elementy:

Rejestrowanie i pobieranie aplikacji Szybki start

Napiwek

Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.

Istnieją dwa sposoby uruchamiania aplikacji Szybki start: express (opcja 1) i ręczna (opcja 2).

Opcja 1. Zarejestruj i automatycznie skonfiguruj aplikację, a następnie pobierz przykładowy kod

  1. Przejdź do centrum administracyjnego firmy Microsoft Entra — Rejestracje aplikacji środowisko szybkiego startu jako co najmniej aplikacja w chmurze Administracja istrator.
  2. Wprowadź nazwę aplikacji, a następnie wybierz pozycję Zarejestruj.
  3. Postępuj zgodnie z instrukcjami w przewodniku Szybki start portalu, aby pobrać automatycznie skonfigurowany kod aplikacji.

Opcja 2. Zarejestrowanie i ręczne skonfigurowanie aplikacji oraz przykładowego kodu

Krok 1. Rejestrowanie aplikacji

Aby zarejestrować aplikację i ręcznie dodać do niej informacje dotyczące rejestracji aplikacji, wykonaj następujące kroki:

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako co najmniej Administracja istrator aplikacji w chmurze.
  2. Jeśli masz dostęp do wielu dzierżaw, użyj ikonyUstawienia w górnym menu, aby przełączyć się do dzierżawy, w której chcesz zarejestrować aplikację z menu Katalogi i subskrypcje.
  3. Przejdź do pozycji Identity>Applications> Rejestracje aplikacji i wybierz pozycję Nowa rejestracja.
  4. Wprowadź nazwę aplikacji, na przykład java-webapp. Użytkownicy twojej aplikacji mogą zobaczyć tę nazwę. Możesz ją później zmienić.
  5. Wybierz pozycję Zarejestruj.
  6. Na stronie Przegląd zanotuj identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawy). Te wartości będą potrzebne później.
  7. W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie.
  8. Wybierz pozycję Dodaj sieć Web platformy>.
  9. W sekcji Identyfikatory URI przekierowania wprowadź .https://localhost:8443/msal4jsample/secure/aad
  10. Wybierz Konfiguruj.
  11. W sekcji Sieć Web w obszarze Identyfikatory URI przekierowania wprowadź https://localhost:8443/msal4jsample/graph/me jako drugi identyfikator URI przekierowania.
  12. W obszarze Zarządzanie wybierz pozycję Certyfikaty i wpisy tajne. W sekcji Klucze tajne klienta wybierz pozycję Nowy klucz tajny klienta.
  13. Wprowadź opis klucza (na przykład wpis tajny aplikacji), pozostaw domyślne wygaśnięcie i wybierz pozycję Dodaj.
  14. Zanotuj wartość wpisu tajnego klienta. Będziesz jej potrzebować później.

Krok 2. Pobieranie przykładu kodu

Pobieranie przykładu kodu

Krok 3. Konfigurowanie przykładowego kodu

  1. Wyodrębnij plik zip do folderu lokalnego.

  2. Opcjonalny. Jeśli używasz zintegrowanego środowiska programistycznego, otwórz przykład w tym środowisku.

  3. Otwórz plik application.properties. Można go znaleźć w folderze src/main/resources/ . Zastąp wartości w polach aad.clientId, aad.authorityi aad.secretKey odpowiednio wartościami identyfikatora aplikacji, identyfikatora dzierżawy i klucza tajnego klienta. Oto, jak to powinno wyglądać:

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

W poprzednim kodzie:

  • Enter_the_Application_Id_here to identyfikator aplikacji zarejestrowanej aplikacji.
  • Enter_the_Client_Secret_Hereto klucz tajny klienta utworzony w obszarze Certyfikaty i wpisy tajne dla zarejestrowanej aplikacji.
  • Enter_the_Tenant_Info_Hereto wartość identyfikatora katalogu (dzierżawy) zarejestrowanej aplikacji.
  1. Aby użyć protokołu HTTPS z hostem lokalnym, podaj server.ssl.key właściwości. Aby wygenerować certyfikat z podpisem własnym, użyj narzędzia keytool (dołączonego do środowiska JRE).

Oto przykład:

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. Umieść wygenerowany plik magazynu kluczy w folderze resources .

Krok 4. Uruchamianie przykładu kodu

Aby uruchomić projekt, wykonaj jedną z następujących czynności:

  • Uruchom go bezpośrednio ze środowiska IDE przy użyciu osadzonego serwera Spring Boot.
  • Spakuj go do pliku WAR przy użyciu narzędzia Maven, a następnie wdróż go w rozwiązaniu kontenera J2EE, takiego jak Apache Tomcat.
Uruchamianie projektu ze środowiska IDE

Aby uruchomić aplikację internetową ze środowiska IDE, wybierz pozycję Uruchom, a następnie przejdź do strony głównej projektu. W tym przykładzie standardowy adres URL strony głównej to https://localhost:8443.

  1. Na stronie głównej wybierz przycisk Zaloguj , aby przekierować użytkowników do identyfikatora Entra firmy Microsoft i wyświetlić monit o podanie poświadczeń.

  2. Po uwierzytelnieniu użytkowników nastąpi przekierowanie do https://localhost:8443/msal4jsample/secure/aadusługi . Są teraz zalogowani, a strona będzie zawierać informacje o koncie użytkownika. Przykładowy interfejs użytkownika ma następujące przyciski:

    • Wyloguj: podpisuje bieżącego użytkownika z aplikacji i przekierowuje tego użytkownika do strony głównej.
    • Pokaż informacje o użytkowniku: uzyskuje token dla programu Microsoft Graph i wywołuje program Microsoft Graph z żądaniem zawierającym token, który zwraca podstawowe informacje o zalogowanym użytkowniku.
Uruchamianie projektu z serwera Tomcat

Jeśli chcesz wdrożyć przykład internetowy w usłudze Tomcat, wprowadź kilka zmian w kodzie źródłowym.

  1. Otwórz plik ms-identity-java-webapp/src/main/java/com.microsoft.azure.msalwebsample/MsalWebSampleApplication.

    • Usuń cały kod źródłowy i zastąp go następującym kodem:

       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. Domyślny port HTTP serwera Tomcat to 8080, ale wymagane jest połączenie HTTPS za pośrednictwem portu 8443. Aby skonfigurować to ustawienie:

    • Przejdź do folderu tomcat/conf/server.xml.

    • <connector> Wyszukaj tag i zastąp istniejący łącznik następującym łącznikiem:

      <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. Otwórz wiersz polecenia. Przejdź do folderu głównego tego przykładu (gdzie pom.xml znajduje się plik) i uruchom polecenie mvn package , aby skompilować projekt.

    • To polecenie spowoduje wygenerowanie msal-web-sample-0.1.0.war pliku w /targets katalogu.
    • Zmień nazwę tego pliku na msal4jsample.war.
    • Wdróż plik WAR przy użyciu serwera Tomcat lub dowolnego innego rozwiązania kontenera J2EE.
      • Aby wdrożyć msal4jsample.war plik, skopiuj go do /webapps/ katalogu w instalacji serwera Tomcat, a następnie uruchom serwer Tomcat.
  4. Po wdrożeniu pliku przejdź do https://localhost:8443/msal4jsample strony przy użyciu przeglądarki.

Ważne

Ta aplikacja Szybkiego startu używa klucza tajnego klienta do identyfikowania się jako poufnego klienta. Ponieważ klucz tajny klienta jest dodawany jako zwykły tekst do plików projektu, ze względów bezpieczeństwa zalecamy użycie certyfikatu zamiast wpisu tajnego klienta przed użyciem aplikacji w środowisku produkcyjnym. Aby uzyskać więcej informacji na temat używania certyfikatu, zobacz Poświadczenia certyfikatu na potrzeby uwierzytelniania aplikacji.

Więcej informacji

Jak działa przykład

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

Uzyskiwanie biblioteki MSAL

Biblioteka MSAL dla języka Java (MSAL4J) to biblioteka języka Java używana do logowania użytkowników i żądania tokenów używanych do uzyskiwania dostępu do interfejsu API chronionego przez Platforma tożsamości Microsoft.

Dodaj bibliotekę MSAL4J do aplikacji przy użyciu narzędzia Maven lub narzędzia Gradle, aby zarządzać zależnościami, wprowadzając następujące zmiany w pliku pom.xml aplikacji (Maven) lub build.gradle (Gradle).

W pom.xml:

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

W pliku build.gradle:

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

Inicjowanie biblioteki MSAL

Dodaj odwołanie do biblioteki MSAL dla języka Java, dodając następujący kod na początku pliku, w którym będziesz używać biblioteki MSAL4J:

import com.microsoft.aad.msal4j.*;

Pomoc i obsługa techniczna 

Jeśli potrzebujesz pomocy, chcesz zgłosić problem lub poznać opcje pomocy technicznej, zobacz Pomoc i obsługa techniczna dla deweloperów.

Następne kroki

Aby zapoznać się z bardziej szczegółowym omówieniem tworzenia aplikacji internetowych logujących użytkowników w Platforma tożsamości Microsoft, zobacz wieloczęściową serię scenariuszy: