Sdílet prostřednictvím


Přidání přihlášení pomocí účtu Microsoft Entra do webové aplikace Spring

V tomto článku se dozvíte, jak vyvíjet webovou aplikaci Spring, která podporuje přihlášení účtem Microsoft Entra. Po dokončení všech kroků v tomto článku se webová aplikace při anonymním přístupu přesměruje na přihlašovací stránku Microsoft Entra. Následující snímek obrazovky ukazuje přihlašovací stránku Microsoft Entra:

snímek obrazovky s dialogovým oknem 'Přihlášení'

Požadavky

K dokončení kroků v tomto článku jsou potřeba následující požadavky:

Důležitý

K dokončení kroků v tomto článku se vyžaduje Spring Boot verze 2.5 nebo vyšší.

Vytvoření aplikace pomocí Aplikace Spring Initializr

  1. Přejděte na https://start.spring.io/.

  2. Zadejte, že chcete vygenerovat projekt Maven pomocíJavy , zadejte názvy skupiny a názvy artefaktů vaší aplikace.

  3. Přidejte závislosti pro Spring Web, Microsoft Entra IDa OAuth2 Client.

  4. V dolní části stránky vyberte tlačítko GENEROVAT.

  5. Po zobrazení výzvy stáhněte projekt do složky na vašem místním počítači.

Vytvoření instance Microsoft Entra

Vytvoření instance služby Active Directory

Pokud jste správcem existující instance, můžete tento proces přeskočit.

  1. Přihlaste se do https://portal.azure.com.

  2. Vyberte Všechny služby, pak Identitya následně Microsoft Entra ID.

  3. Zadejte název organizace a počáteční název domény . Zkopírujte úplnou adresu URL adresáře. Adresu URL použijete k přidání uživatelských účtů později v tomto kurzu. (Příklad: azuresampledirectory.onmicrosoft.com.)

    Zkopírujte úplnou adresu URL adresáře. Adresu URL použijete k přidání uživatelských účtů později v tomto kurzu. (Například: azuresampledirectory.onmicrosoft.com.).

    Až budete hotovi, vyberte Vytvořit. Vytvoření nového prostředku bude trvat několik minut.

  4. Po dokončení vyberte zobrazený odkaz pro přístup k novému adresáři.

  5. Zkopírujte ID nájemce . Hodnotu ID použijete ke konfiguraci souboru application.properties později v tomto kurzu.

Přidejte registraci pro svou aplikaci Spring Boot

  1. V nabídce portálu vyberte Registrace aplikacía pak vyberte Zaregistrovat aplikaci.

  2. Specifikujte svou aplikaci a vyberte Zaregistrujte se.

  3. Jakmile se zobrazí stránka registrace aplikace, zkopírujte ID klienta a ID tenanta (adresáře) . Tyto hodnoty použijete ke konfiguraci souboru application.properties dále v tomto kurzu.

  4. V navigačním podokně vyberte Certifikáty & utajené informace. Pak vyberte Nový tajný klíč klienta.

    Snímek obrazovky aplikace „Certifikáty & tajemství“ se zvýrazněnou možností „Nový tajný klíč klienta“

  5. Přidejte popis a vyberte dobu trvání v seznamu Vyprší. Vyberte Přidat. Hodnota klíče se vyplní automaticky.

  6. Zkopírujte a uložte hodnotu tajného klíče klienta a nakonfigurujte soubor application.properties dále v tomto kurzu. (Tuto hodnotu nebudete moct později načíst.)

    Snímek obrazovky aplikace se zvýrazněným novým tajným kódem klienta

  7. Na hlavní stránce registrace aplikace vyberte Ověřovánía vyberte Přidat platformu. Pak vyberte webové aplikace.

  8. Zadejte http://localhost:8080/login/oauth2/code/ jako nový identifikátor URI přesměrovánía pak vyberte Konfigurovat.

  9. Pokud jste změnili soubor pom.xml tak, aby používal úvodní verzi Microsoft Entra starší než 3.0.0: v části Implicitní udělení a hybridní tokyvyberte ID tokeny (používané pro implicitní a hybridní toky), pak vyberte Uložit.

Přidání uživatelského účtu do adresáře a přidání daného účtu do appRole

  1. Na stránce přehledu služby Active Directory vyberte Uživateléa pak vyberte Nový uživatel.

  2. Po zobrazení panelu Uživatel zadejte uživatelské jméno a jméno. Pak vyberte Vytvořit.

    snímek obrazovky s dialogovým oknem Nový uživatel

    Poznámka

    Když zadáte uživatelské jméno, musíte zadat adresu URL adresáře z dřívější části tohoto kurzu. Například:

    test-user@azuresampledirectory.onmicrosoft.com

  3. Na hlavní stránce registrace aplikace vyberte role aplikacea pak vyberte Vytvořit roli aplikace. Zadejte hodnoty polí formuláře, vyberte Chcete tuto roli aplikace povolit?a pak vyberte Použít.

    Snímek obrazovky 'Aplikační role' s podoknem 'Vytvořit roli aplikace'

  4. Na stránce Přehled adresáře Microsoft Entra vyberte Aplikace pro firmy.

  5. Vyberte Všechny aplikacea pak vyberte aplikaci, do které jste přidali roli aplikace v předchozím kroku.

  6. Vyberte Uživatelé a skupinya pak vyberte Přidat uživatele nebo skupinu.

  7. V části Uživatelévyberte Žádné vybrané. Vyberte uživatele, který jste vytvořili dříve, vyberte Vybertea pak vyberte Přiřadit. Pokud jste dříve vytvořili více než jednu roli aplikace, vyberte roli.

  8. Vraťte se na panel Uživatelé, vyberte testovacího uživatele a zvolte Resetovat heslo, poté zkopírujte heslo. Heslo použijete při přihlášení k aplikaci později v tomto kurzu.

Konfigurace a kompilace aplikace

  1. Extrahujte soubory z archivu projektu, který jste vytvořili a stáhli dříve v tomto kurzu, do adresáře.

  2. Přejděte do složky src/main/resources v projektu a pak otevřete soubor application.properties v textovém editoru.

  3. Pomocí hodnot, které jste vytvořili dříve, zadejte nastavení registrace aplikace. Například:

    # 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>
    

    Kde:

    Parametr Popis
    spring.cloud.azure.active-directory.enabled Povolte funkce poskytované spring-cloud-azure-starter-active-directory
    spring.cloud.azure.active-directory.profile.tenant-id Obsahuje ID adresáře služby Active Directory z předchozích verzí.
    spring.cloud.azure.active-directory.credential.client-id Obsahuje ID aplikace z registrace aplikace, kterou jste dokončili dříve.
    spring.cloud.azure.active-directory.credential.client-secret Obsahuje hodnotu z registračního klíče aplikace, který jste dokončili dříve.
  4. Uložte a zavřete soubor application.properties.

  5. Vytvořte složku s názvem kontroleru ve zdrojové složce Java pro vaši aplikaci. Příklad: src/main/java/com/wingtiptoys/security/controller.

  6. Ve složce kontroleru vytvořte nový soubor Java s názvem HelloController.java a otevřete ho v textovém editoru.

  7. Zadejte následující kód a pak soubor uložte a zavřete:

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

Sestavení a otestování aplikace

  1. Otevřete příkazový řádek a změňte adresář do složky, ve které se nachází soubor pom.xml vaší aplikace.

  2. Sestavte aplikaci Spring Boot pomocí Mavenu a spusťte ji. Například:

    mvn clean package
    mvn spring-boot:run
    
  3. Po sestavení a spuštění aplikace Maven otevřete http://localhost:8080/Admin ve webovém prohlížeči. Měli byste být vyzváni k zadání uživatelského jména a hesla.

    snímek obrazovky dialogového okna 'Přihlášení'

    Poznámka

    Pokud se jedná o první přihlášení k novému uživatelskému účtu, může se zobrazit výzva ke změně hesla.

    Snímek obrazovky aplikace s dialogovým oknem Aktualizovat heslo

  4. Po úspěšném přihlášení by se měl zobrazit ukázkový text "Zpráva správce" z kontroleru.

    snímek obrazovky se zprávou správce aplikace

Shrnutí

V tomto kurzu jste vytvořili novou webovou aplikaci v Javě pomocí úvodní sady Microsoft Entra, nakonfigurovali jste nového tenanta Microsoft Entra, zaregistrovali jste novou aplikaci v tenantovi a pak jste svou aplikaci nakonfigurovali tak, aby používala poznámky a třídy Spring k ochraně webové aplikace.

Viz také

Další kroky

Další informace o Springu a Azure najdete v centru dokumentace Spring on Azure.