Udostępnij za pośrednictwem


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 jest uzyskiwana anonimowo. Poniższy zrzut ekranu przedstawia stronę logowania firmy Microsoft Entra:

Zrzut ekranu przedstawiający okno dialogowe logowania aplikacji.

Warunki wstępne

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

  • Obsługiwany zestaw do tworzenia oprogramowania w języku Java (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 w wersji 3.0 lub nowszej.
  • Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto .

Ważny

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ź do https://start.spring.io/.

  2. Określ, że chcesz wygenerować projekt Maven z Java, wprowadź nazwy Group Group i Artifact nazwy aplikacji.

  3. Dodaj zależności dla Spring Web, Microsoft Entra IDi OAuth2 Client.

  4. Na dole strony wybierz przycisk Wygeneruj.

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

Tworzenie wystąpienia Microsoft Entra

Tworzenie wystąpienia usługi Active Directory

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

  1. Zaloguj się do https://portal.azure.com.

  2. Wybierz pozycję Wszystkie usługi, a następnie Identity, a następnie microsoft Entra ID.

  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.

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

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

Dodaj rejestrację aplikacji dla swojej 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 Zarejestruj.

  3. Gdy zostanie wyświetlona strona rejestracji aplikacji, skopiuj identyfikator aplikacji (identyfikator klienta) i identyfikator katalogu (najemcy). Użyjesz tych wartości do skonfigurowania pliku application.properties w dalszej części tego samouczka.

  4. Wybierz pozycję Certyfikaty & tajne w panelu nawigacyjnym. 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 wypełniona automatycznie.

  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 sekretem klienta.

  7. Na stronie głównej rejestracji aplikacji wybierz pozycję Authenticationi wybierz pozycję Dodaj platformę. Następnie wybierz pozycję Aplikacje internetowe.

  8. W przypadku nowego identyfikatora URI przekierowaniawprowadź http://localhost:8080/login/oauth2/code/, a następnie wybierz Konfiguruj.

  9. 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 hybrydowewybierz tokeny ID (używane w przypadku przepływów niejawnych i hybrydowych), a następnie wybierz pozycję Zapisz.

Dodaj konto użytkownika do katalogu i dodaj to konto do roli aplikacji

  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żytkownika wprowadź Nazwa użytkownika i nazwa . Następnie wybierz pozycję Utwórz.

    zrzut ekranu przedstawiający okno dialogowe

    Notatka

    Podczas wprowadzania nazwy użytkownika należy określić adres URL katalogu z wcześniejszej części tego samouczka. Na 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 Czy chcesz włączyć tę rolę aplikacji?, a następnie wybierz Zastosuj.

    Zrzut ekranu aplikacji

  4. Na stronie Przegląd katalogu Microsoft Entra wybierz pozycję Aplikacje korporacyjne.

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

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

  7. W obszarze Użytkownicywybierz pozycję None Selected. 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ę.

  8. Wróć do panelu Użytkownicy, wybierz użytkownika testowego i wybierz pozycję Resetuj hasłoi skopiuj hasło. Hasło będzie używane podczas logowania się do aplikacji w dalszej części tego samouczka.

Konfigurowanie i kompilowanie aplikacji

  1. Wyodrębnij pliki z archiwum projektu, które utworzyłeś i pobrałeś 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=<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łącz funkcje udostępniane przez spring-cloud-azure-starter-active-directory
    spring.cloud.azure.active-directory.profile.tenant-id Zawiera identyfikator Directory z usługi Active Directory.
    spring.cloud.azure.active-directory.credential.client-id Zawiera identyfikator aplikacji z rejestracji aplikacji, która została ukończona wcześniej.
    spring.cloud.azure.active-directory.credential.client-secret Zawiera wartość z klucza rejestracji aplikacji, którego dokonano wcześniej.
  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 kontrolera i otwórz go w edytorze tekstów.

  7. 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";
         }
    }
    

Kompilowanie i testowanie aplikacji

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

  2. Skompiluj aplikację Spring Boot za pomocą narzędzia Maven i uruchom ją. Na przykład:

    mvn clean package
    mvn spring-boot:run
    
  3. Po utworzeniu 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 logowania aplikacji.

    Notatka

    Jeśli jest to pierwsze logowanie dla nowego konta użytkownika, może zostać wyświetlony monit o zmianę hasła.

    Zrzut ekranu przedstawiający okno dialogowe

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

    Zrzut ekranu przedstawiający komunikat administratora aplikacji.

Streszczenie

W tym samouczku utworzono nową aplikację webową Java za pomocą szablonu startowego Microsoft Entra, skonfigurowano nowego klienta Microsoft Entra, zarejestrowano nową aplikację w kliencie, a następnie skonfigurowano aplikację do korzystania z adnotacji i klas Spring w celu jej ochrony.

Zobacz też

Następne kroki

Aby dowiedzieć się więcej na temat platformy Spring i platformy Azure, przejdź do Centrum dokumentacji platformy Azure.