Dodawanie logowania przy użyciu konta Microsoft Entra do aplikacji internetowej Spring
W tym artykule pokazano, jak utworzyć aplikację internetową Platformy Spring, która obsługuje logowanie przy użyciu konta Microsoft Entra. Po zakończeniu wszystkich kroków opisanych w tym artykule aplikacja internetowa przekierowuje do strony logowania microsoft Entra, gdy będzie ona uzyskiwana anonimowo. Poniższy zrzut ekranu przedstawia stronę logowania firmy Microsoft Entra:
Wymagania wstępne
Aby wykonać kroki opisane w tym artykule, wymagane są następujące wymagania wstępne:
- Obsługiwany zestaw Java Development Kit (JDK). Aby uzyskać więcej informacji na temat zestawów JDK dostępnych do użycia podczas tworzenia aplikacji na platformie Azure, zobacz Obsługa języka Java na platformie Azure i w usłudze Azure Stack.
- Apache Maven, wersja 3.0 lub nowsza.
- Subskrypcja Azure. Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto.
Ważne
Do wykonania kroków opisanych w tym artykule jest wymagany program Spring Boot w wersji 2.5 lub nowszej.
Tworzenie aplikacji przy użyciu narzędzia Spring Initializr
Przejdź do https://start.spring.io/.
Określ, że chcesz wygenerować projekt Maven przy użyciu języka Java, wprowadź dla aplikacji nazwy w polach Group (Grupa) i Artifact (Artefakt).
Dodaj zależności dla aplikacji Spring Web, Microsoft Entra ID i OAuth2 Client.
W dolnej części strony wybierz przycisk GENERUj.
Po wyświetleniu monitu pobierz projekt do ścieżki na komputerze lokalnym.
Tworzenie wystąpienia usługi Microsoft Entra
Tworzenie wystąpienia usługi Active Directory
Jeśli jesteś administratorem istniejącego wystąpienia, możesz pominąć ten proces.
Zaloguj się w witrynie https://portal.azure.com.
Wybierz pozycję Wszystkie usługi, a następnie Pozycję Tożsamość, a następnie Pozycję Microsoft Entra ID.
Wprowadź Nazwę organizacji i Początkową nazwę domeny. Skopiuj pełny adres URL katalogu. Użyjesz adresu URL, aby dodać konta użytkowników w dalszej części tego samouczka. (Na przykład:
azuresampledirectory.onmicrosoft.com
).Skopiuj pełny adres URL katalogu. Użyjesz adresu URL, aby dodać konta użytkowników w dalszej części tego samouczka. (Na przykład:
azuresampledirectory.onmicrosoft.com
.).Po zakończeniu wybierz pozycję Utwórz. Utworzenie nowego zasobu potrwa kilka minut.
Po zakończeniu wybierz wyświetlony link, aby uzyskać dostęp do nowego katalogu.
Skopiuj identyfikator dzierżawy. Użyjesz wartości identyfikatora, aby skonfigurować plik application.properties w dalszej części tego samouczka.
Dodawanie rejestracji aplikacji dla aplikacji Spring Boot
W menu portalu wybierz pozycję Rejestracje aplikacji, a następnie wybierz pozycję Zarejestruj aplikację.
Określ aplikację, a następnie wybierz pozycję Zarejestruj.
Gdy zostanie wyświetlona strona rejestracji aplikacji, skopiuj identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawy). Użyjesz tych wartości do skonfigurowania pliku application.properties w dalszej części tego samouczka.
Wybierz pozycję Certyfikaty i wpisy tajne w okienku nawigacji po lewej stronie. Następnie wybierz pozycję Nowy klucz tajny klienta.
Dodaj opis i wybierz czas trwania z listy Wygasa. Wybierz Dodaj. Wartość klucza zostanie automatycznie wypełniona.
Skopiuj i zapisz wartość wpisu tajnego klienta, aby skonfigurować plik application.properties w dalszej części tego samouczka. (Nie będzie można później pobrać tej wartości).
Na stronie głównej rejestracji aplikacji wybierz pozycję Uwierzytelnianie i wybierz pozycję Dodaj platformę. Następnie wybierz pozycję Aplikacje internetowe.
Wprowadź http://localhost:8080/login/oauth2/code/ jako nowy identyfikator URI przekierowania, a następnie wybierz pozycję Konfiguruj.
Jeśli plik pom.xml został zmodyfikowany do używania wersji startowej microsoft Entra wcześniejszej niż 3.0.0: w obszarze Niejawne udzielanie i przepływy hybrydowe wybierz pozycję Tokeny identyfikatorów (używane dla przepływów niejawnych i hybrydowych), a następnie wybierz pozycję Zapisz.
Dodawanie konta użytkownika do katalogu i dodawanie tego konta do elementu appRole
Na stronie Przegląd usługi Active Directory wybierz pozycję Użytkownicy, a następnie wybierz pozycję Nowy użytkownik.
Gdy zostanie wyświetlony panel Użytkownik, wprowadź nazwę użytkownika i nazwę. Następnie wybierz Utwórz.
Uwaga
Podczas wprowadzania nazwy użytkownika należy określić adres URL katalogu z wcześniejszej wersji tego samouczka. Na przykład:
test-user@azuresampledirectory.onmicrosoft.com
Na stronie głównej rejestracji aplikacji wybierz pozycję Role aplikacji, a następnie wybierz pozycję Utwórz rolę aplikacji. Podaj wartości pól formularza, wybierz pozycję Czy chcesz włączyć tę rolę aplikacji?, a następnie wybierz pozycję Zastosuj.
Na stronie Przegląd katalogu Microsoft Entra wybierz pozycję Aplikacje dla przedsiębiorstw.
Wybierz pozycję Wszystkie aplikacje, a następnie wybierz aplikację, do której dodano rolę aplikacji w poprzednim kroku.
Wybierz pozycję Użytkownicy i grupy, a następnie wybierz pozycję Dodaj użytkownika/grupę.
W obszarze Użytkownicy wybierz pozycję Brak zaznaczone. Wybierz utworzonego wcześniej użytkownika, wybierz pozycję Wybierz, a następnie wybierz pozycję Przypisz. Jeśli wcześniej utworzono więcej niż jedną rolę aplikacji, wybierz rolę.
Wróć do panelu Użytkownicy , wybierz użytkownika testowego, a następnie wybierz pozycję Resetuj hasło i skopiuj hasło. Hasło będzie używane podczas logowania się do aplikacji w dalszej części tego samouczka.
Konfigurowanie i kompilowanie aplikacji
Wyodrębnij pliki z archiwum projektu utworzonego i pobranego wcześniej w tym samouczku do katalogu.
Przejdź do folderu src/main/resources w projekcie, a następnie otwórz plik application.properties w edytorze tekstów.
Określ ustawienia rejestracji aplikacji przy użyciu utworzonych wcześniej wartości. Na przykład:
# Enable related features. spring.cloud.azure.active-directory.enabled=true # Specifies your Active Directory ID: spring.cloud.azure.active-directory.profile.tenant-id=<tenant-ID> # Specifies your App Registration's Application ID: spring.cloud.azure.active-directory.credential.client-id=<client-ID> # Specifies your App Registration's secret key: spring.cloud.azure.active-directory.credential.client-secret=<client-secret>
Gdzie:
Parametr Opis spring.cloud.azure.active-directory.enabled
Włączanie funkcji udostępnianych przez spring-cloud-azure-starter-active-directory spring.cloud.azure.active-directory.profile.tenant-id
Zawiera Identyfikator katalogu Active Directory, określony wcześniej. spring.cloud.azure.active-directory.credential.client-id
Zawiera Identyfikator aplikacji pochodzący z rejestracji aplikacji, która została wcześniej ukończona. spring.cloud.azure.active-directory.credential.client-secret
Zawiera Wartość pochodzącą z klucza rejestracji aplikacji, która została wcześniej ukończona. Zapisz i zamknij plik application.properties.
Utwórz folder o nazwie controller w folderze źródłowym Java dla aplikacji. Na przykład: src/main/java/com/wingtiptoys/security/controller.
Utwórz nowy plik Java o nazwie HelloController.java w folderze controller i otwórz go w edytorze tekstów.
Wprowadź następujący kod, a następnie zapisz i zamknij plik:
package com.wingtiptoys.security; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.security.access.prepost.PreAuthorize; @RestController public class HelloController { @GetMapping("Admin") @ResponseBody @PreAuthorize("hasAuthority('APPROLE_Admin')") public String Admin() { return "Admin message"; } }
Tworzenie i testowanie aplikacji
Otwórz wiersz polecenia i zmień katalog na folder, w którym znajduje się plik pom.xml.
Skompiluj aplikację Spring Boot przy użyciu narzędzia Maven i uruchom ją. Na przykład:
mvn clean package mvn spring-boot:run
Po skompiluj i uruchomieniu aplikacji przez narzędzie Maven otwórz aplikację
http://localhost:8080/Admin
w przeglądarce internetowej. Powinien zostać wyświetlony monit o podanie nazwy użytkownika i hasła.Uwaga
Może pojawić się monit o zmianę hasła, jeśli jest to pierwsze logowanie na nowym koncie użytkownika.
Po pomyślnym zalogowaniu powinien zostać wyświetlony przykładowy tekst "Komunikat administratora" z kontrolera.
Podsumowanie
W tym samouczku utworzono nową aplikację internetową Java przy użyciu szablonu startowego Microsoft Entra, skonfigurowano nową dzierżawę firmy Microsoft Entra, zarejestrowano nową aplikację w dzierżawie, a następnie skonfigurowano aplikację tak, aby korzystała z adnotacji i klas Spring w celu ochrony aplikacji internetowej.
Zobacz też
- Aby uzyskać informacje o nowych opcjach interfejsu użytkownika, zobacz Nowy przewodnik szkoleniowy dotyczący rejestracji aplikacji w witrynie Azure Portal
Następne kroki
Aby dowiedzieć się więcej na temat oprogramowania Spring i platformy Azure, przejdź do centrum dokumentacji dotyczącej oprogramowania Spring na platformie Azure.