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 próbka na ilustracji.
Warunki wstępne
Aby uruchomić ten przykład, potrzebne są następujące elementy:
- zestaw Java Development Kit (JDK) 8 lub nowsza.
- Maven.
Rejestrowanie i pobieranie aplikacji Szybki start
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 Microsoft Entra — rejestracje aplikacji, aby zapoznać się z opcją szybkiego startu jako co najmniej administrator aplikacji w chmurze .
- Wprowadź nazwę aplikacji, a następnie wybierz pozycję Zarejestruj.
- Postępuj zgodnie z instrukcją szybkiego startu portalu, aby pobrać automatycznie skonfigurowany kod aplikacji.
Opcja 2. Rejestrowanie i ręczne konfigurowanie aplikacji i przykładu 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 Microsoft Entra jako co najmniej Administrator aplikacji chmurowych.
- Jeśli masz dostęp do wielu dzierżaw, użyj ikony ustawienia
w górnym menu, aby przełączyć się do dzierżawy, w której chcesz zarejestrować aplikację z menu Katalogi i subskrypcje.
- Przejdź do Identity>Applications>App registrations i wybierz New registration.
- Wprowadź nazwę dla swojej aplikacji, na przykład java-webapp. Użytkownicy twojej aplikacji mogą zobaczyć tę nazwę. Możesz go zmienić później.
- Wybierz pozycję Zarejestruj.
- Na stronie Przegląd zanotuj identyfikator aplikacji (klienta) oraz identyfikator katalogu (dzierżawy). Te wartości będą potrzebne później.
- W obszarze Zarządzajwybierz pozycję Uwierzytelnianie.
- Wybierz pozycję Dodaj platformę>Web.
- W Sekcji Identyfikatory URI przekierowania wprowadź
https://localhost:8443/msal4jsample/secure/aad
. - Wybierz pozycję i skonfiguruj.
- W sekcji Web w obszarze Identyfikatory URI przekierowaniawprowadź
https://localhost:8443/msal4jsample/graph/me
jako drugi identyfikator URI przekierowania. - W obszarze Zarządzaj, wybierz pozycję Certyfikaty & tajne. W sekcji Klucz tajny klienta wybierz pozycję Nowy klucz tajny klienta.
- Wprowadź opis klucza (na przykład klucz tajny aplikacji), pozostaw domyślny czas wygaśnięcia, a następnie wybierz pozycję Dodaj.
- Zanotuj wartość klucza tajnego klienta. Będzie potrzebny później.
Krok 2. Pobieranie przykładu kodu
Krok 3. Konfigurowanie przykładowego kodu
Wyodrębnij plik zip do folderu lokalnego.
Fakultatywny. 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
jest identyfikatorem aplikacji, którą zarejestrowałeś. -
Enter_the_Client_Secret_Here
to jest klucz tajny klienta, który utworzyłeś w certyfikaty & tajne wpisy dla zarejestrowanej aplikacji. -
Enter_the_Tenant_Info_Here
to identyfikator Directory (dzierżawca) wartość zarejestrowanej aplikacji.
- Aby użyć protokołu HTTPS z hostem lokalnym, podaj właściwości
server.ssl.key
. 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 zasobów .
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 Maven, a następnie wdróż go w rozwiązaniu kontenera J2EE, na przykład 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 jest https://localhost:8443.
Na stronie głównej wybierz przycisk Login, 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
. Są teraz zalogowani, a strona będzie zawierać informacje o koncie użytkownika. Przykładowy interfejs użytkownika ma następujące przyciski:- wyloguj się: wylogowuje aktualnego użytkownika z aplikacji i przekierowuje go na stronę główną.
- 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 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 tomcat/conf/server.xml.
Wyszukaj tag
<connector>
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 okno wiersza polecenia. Przejdź do folderu głównego tego przykładu (gdzie znajduje się plik
pom.xml
) i uruchommvn package
, aby skompilować projekt.- To polecenie spowoduje wygenerowanie pliku
msal-web-sample-0.1.0.war
w katalogu/targets
. - 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ć plik
msal4jsample.war
, skopiuj go do katalogu/webapps/
w instalacji serwera Tomcat, a następnie uruchom serwer Tomcat.
- Aby wdrożyć plik
- To polecenie spowoduje wygenerowanie pliku
Po wdrożeniu pliku przejdź do
https://localhost:8443/msal4jsample
przy użyciu przeglądarki.
Ważny
Ta aplikacja szybkiego startu używa tajnego klucza klienta do identyfikowania się jako klient poufny. 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
Pobierz 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 platformę tożsamości firmy 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 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 na platformie tożsamości firmy Microsoft, zobacz serię scenariuszy wieloczęściowych: