Dodawanie logowania przy użyciu konta usługi Azure Active Directory do aplikacji internetowej Spring

W tym artykule pokazano, jak utworzyć aplikację internetową Platformy Spring, która obsługuje logowanie przy użyciu konta usługi Azure Active Directory (Azure AD). Po zakończeniu wszystkich kroków opisanych w tym artykule aplikacja internetowa przekierowuje do strony logowania Azure AD, gdy dostęp do niej będzie uzyskiwany anonimowo. Poniższy zrzut ekranu przedstawia stronę logowania Azure AD:

Zrzut ekranu przedstawiający okno dialogowe

Wymagania wstępne

Aby wykonać kroki opisane w tym artykule, wymagane są następujące wymagania wstępne:

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

  1. Przejdź na stronę https://start.spring.io/.

  2. Określ, że chcesz wygenerować projekt Maven przy użyciu języka Java, wprowadź dla aplikacji nazwy w polach Group (Grupa) i Artifact (Artefakt).

  3. Dodaj zależności dla platformy Spring Web, usługi Azure Active Directory i klienta OAuth2.

  4. W dolnej części strony wybierz przycisk GENERUj .

    Zrzut ekranu przedstawiający narzędzie Spring Initializr z opcjami podstawowymi.

  5. Po wyświetleniu monitu pobierz projekt do ścieżki na komputerze lokalnym.

Tworzenie wystąpienia usługi Azure Active Directory

Tworzenie wystąpienia usługi Active Directory

Jeśli jesteś administratorem istniejącego wystąpienia, możesz pominąć ten proces.

  1. Zaloguj się w witrynie https://portal.azure.com.

  2. Wybierz pozycję Wszystkie usługi, a następnie pozycję Tożsamość, a następnie pozycję Azure Active Directory.

  3. 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.

    Zrzut ekranu przedstawiający sekcję Konfiguracja ekranu

  4. Po zakończeniu wybierz wyświetlony link, aby uzyskać dostęp do nowego katalogu.

    Zrzut ekranu przedstawiający komunikat o powodzeniu

  5. Skopiuj identyfikator dzierżawy. Użyjesz wartości identyfikatora, aby skonfigurować plik application.properties w dalszej części tego samouczka.

    Zrzut ekranu przedstawiający ekran dzierżawy usługi Azure Active Directory z wyróżnioną pozycją

Dodawanie rejestracji aplikacji dla aplikacji Spring Boot

  1. W menu portalu wybierz pozycję Rejestracje aplikacji, a następnie wybierz pozycję Zarejestruj aplikację.

  2. Określ aplikację, a następnie wybierz pozycję Zarejestruj.

  3. Po wyświetleniu strony 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.

    Zrzut ekranu aplikacji z wyróżnionym identyfikatorem aplikacji (klientem) i identyfikatorem katalogu (dzierżawy).

  4. Wybierz pozycję Wpisy tajne certyfikatów & w okienku nawigacji po lewej stronie. Następnie wybierz pozycję Nowy klucz tajny klienta.

    Zrzut ekranu aplikacji

  5. Dodaj opis i wybierz czas trwania na liście Wygasa . Wybierz pozycję Dodaj. Wartość klucza zostanie automatycznie wypełniona.

  6. Skopiuj i zapisz wartość klucza tajnego klienta, aby skonfigurować plik application.properties w dalszej części tego samouczka. (Nie będzie można później pobrać tej wartości).

    Zrzut ekranu aplikacji z wyróżnionym nowym wpisem tajnym klienta.

  7. Na stronie głównej rejestracji aplikacji wybierz pozycję Uwierzytelnianie, a następnie wybierz pozycję Dodaj platformę. Następnie wybierz pozycję Aplikacje internetowe.

    Zrzut ekranu przedstawiający ekran uwierzytelniania aplikacji z wyróżnioną sekcją

  8. Wprowadź http://localhost:8080/login/oauth2/code/ jako nowy identyfikator URI przekierowania, a następnie wybierz pozycję Konfiguruj.

    Zrzut ekranu przedstawiający ekran uwierzytelniania aplikacji z wyróżnioną sekcją

  9. Jeśli plik pom.xml został zmodyfikowany tak, aby używał wersji początkowej Azure AD starszej niż 3.0.0: w obszarze Niejawne udzielanie i przepływy hybrydowe wybierz pozycję Tokeny identyfikatorów (używane do przepływów niejawnych i hybrydowych), a następnie wybierz pozycję Zapisz.

    Zrzut ekranu przedstawiający ekran uwierzytelniania aplikacji z wybranymi tokenami identyfikatorów.

Dodawanie konta użytkownika do katalogu i dodawanie tego konta do aplikacjiRole

  1. Na stronie Przegląd usługi Active Directory wybierz pozycję Użytkownicy, a następnie wybierz pozycję Nowy użytkownik.

  2. Po wyświetleniu panelu Użytkownik wprowadź nazwę użytkownika i nazwę. Następnie wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający okno dialogowe

    Uwaga

    Podczas wprowadzania nazwy użytkownika należy określić adres URL katalogu z wcześniejszej wersji tego samouczka. Przykład:

    test-user@azuresampledirectory.onmicrosoft.com

  3. 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.

    Zrzut ekranu aplikacji

  4. Na stronie Przegląd katalogu Azure AD wybierz pozycję Aplikacje dla przedsiębiorstw.

    Zrzut ekranu przedstawiający ekran

  5. Wybierz pozycję Wszystkie aplikacje, a następnie wybierz aplikację, do której dodano rolę aplikacji w poprzednim kroku.

    Zrzut ekranu przedstawiający ekran

  6. Wybierz pozycję Użytkownicy i grupy, a następnie wybierz pozycję Dodaj użytkownika/grupę.

  7. W obszarze Użytkownicy wybierz pozycję Brak zaznaczony. 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ę.

    Zrzut ekranu przedstawiający ekran

  8. Wstecz 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.

    Zrzut ekranu przedstawiający użytkownika z wyróżnionym polem

Konfigurowanie i kompilowanie aplikacji

  1. Wyodrębnij pliki z archiwum projektu utworzonego i pobranego wcześniej w tym samouczku do katalogu.

  2. Przejdź do folderu src/main/resources w projekcie, a następnie otwórz plik application.properties w edytorze tekstów.

  3. 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=22222222-2222-2222-2222-222222222222
    # Specifies your App Registration's Application ID:
    spring.cloud.azure.active-directory.credential.client-id=11111111-1111-1111-1111-1111111111111111
    # Specifies your App Registration's secret key:
    spring.cloud.azure.active-directory.credential.client-secret=AbCdEfGhIjKlMnOpQrStUvWxYz==
    

    Gdzie:

    Parametr Opis
    spring.cloud.azure.active-directory.enabled Włączanie funkcji udostępnianych przez aplikację 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.
  4. Zapisz i zamknij plik application.properties.

  5. Utwórz folder o nazwie controller w folderze źródłowym Java dla aplikacji. Na przykład: src/main/java/com/wingtiptoys/security/controller.

  6. Utwórz nowy plik Java o nazwie HelloController.java w folderze controller i otwórz go w edytorze tekstów.

  7. Wprowadź poniższy 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";
         }
    }
    

Kompilowanie i testowanie aplikacji

  1. Otwórz wiersz polecenia i zmień katalog na folder, w którym znajduje się plik pom.xml.

  2. Skompiluj aplikację Spring Boot przy użyciu narzędzia Maven i uruchom ją. Przykład:

    mvn clean package
    mvn spring-boot:run
    

    Zrzut ekranu przedstawiający dane wyjściowe kompilacji narzędzia Maven.

  3. Po skompiluj i uruchomieniu aplikacji przez narzędzie Maven otwórz http://localhost:8080/Admin w przeglądarce internetowej. Powinien zostać wyświetlony monit o podanie nazwy użytkownika i hasła.

    Zrzut ekranu przedstawiający okno dialogowe

    Uwaga

    Może pojawić się monit o zmianę hasła, jeśli jest to pierwsze logowanie na nowym koncie użytkownika.

    Zrzut ekranu przedstawiający okno dialogowe

  4. Po pomyślnym zalogowaniu powinien zostać wyświetlony przykładowy tekst "Administracja komunikat" z kontrolera.

    Zrzut ekranu przedstawiający komunikat administratora aplikacji.

Podsumowanie

W tym samouczku utworzono nową aplikację internetową Java przy użyciu startera usługi Azure Active Directory, skonfigurowano nową dzierżawę Azure AD, zarejestrowano nową aplikację w dzierżawie, a następnie skonfigurowano aplikację do używania adnotacji i klas spring w celu ochrony aplikacji internetowej.

Zobacz też

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.