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:
- Zestaw Java Development Kit (JDK) 8 lub nowszy.
- Maven.
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
- Przejdź do centrum administracyjnego firmy Microsoft Entra — Rejestracje aplikacji środowisko szybkiego startu jako co najmniej aplikacja w chmurze Administracja istrator.
- Wprowadź nazwę aplikacji, a następnie wybierz pozycję Zarejestruj.
- 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:
- Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako co najmniej Administracja istrator aplikacji w chmurze.
- 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.
- Przejdź do pozycji Identity>Applications> Rejestracje aplikacji i wybierz pozycję Nowa rejestracja.
- Wprowadź nazwę aplikacji, na przykład java-webapp. Użytkownicy twojej aplikacji mogą zobaczyć tę nazwę. Możesz ją później zmienić.
- Wybierz pozycję Zarejestruj.
- Na stronie Przegląd zanotuj identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawy). Te wartości będą potrzebne później.
- W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie.
- Wybierz pozycję Dodaj sieć Web platformy>.
- W sekcji Identyfikatory URI przekierowania wprowadź .
https://localhost:8443/msal4jsample/secure/aad
- Wybierz Konfiguruj.
- W sekcji Sieć Web w obszarze Identyfikatory URI przekierowania wprowadź
https://localhost:8443/msal4jsample/graph/me
jako drugi identyfikator URI przekierowania. - W obszarze Zarządzanie wybierz pozycję Certyfikaty i wpisy tajne. W sekcji Klucze tajne klienta wybierz pozycję Nowy klucz tajny klienta.
- Wprowadź opis klucza (na przykład wpis tajny aplikacji), pozostaw domyślne wygaśnięcie i wybierz pozycję Dodaj.
- Zanotuj wartość wpisu tajnego klienta. Będziesz jej potrzebować później.
Krok 2. Pobieranie przykładu kodu
Krok 3. Konfigurowanie przykładowego kodu
Wyodrębnij plik zip do folderu lokalnego.
Opcjonalny. Jeśli używasz zintegrowanego środowiska programistycznego, otwórz przykład w tym środowisku.
Otwórz plik application.properties. Można go znaleźć w folderze src/main/resources/ . Zastąp wartości w polach
aad.clientId
,aad.authority
iaad.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_Here
to klucz tajny klienta utworzony w obszarze Certyfikaty i wpisy tajne dla zarejestrowanej aplikacji.Enter_the_Tenant_Info_Here
to wartość identyfikatora katalogu (dzierżawy) zarejestrowanej aplikacji.
- 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
- 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.
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ń.
Po uwierzytelnieniu użytkowników nastąpi przekierowanie do
https://localhost:8443/msal4jsample/secure/aad
usł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.
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); } }
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"/>
Otwórz wiersz polecenia. Przejdź do folderu głównego tego przykładu (gdzie
pom.xml
znajduje się plik) i uruchom poleceniemvn 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.
- Aby wdrożyć
- To polecenie spowoduje wygenerowanie
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
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: