Přidání přihlášení pomocí účtu Azure Active Directory do webové aplikace Spring

V tomto článku se dozvíte, jak vyvíjet webovou aplikaci Spring, která podporuje přihlašování pomocí účtu Azure Active Directory (Azure AD). Po dokončení všech kroků v tomto článku se webová aplikace přesměruje na přihlašovací stránku Azure AD, když k ní přistupuje anonymně. Následující snímek obrazovky ukazuje přihlašovací stránku Azure AD:

Snímek obrazovky s dialogovým oknem Přihlásit se k aplikaci

Požadavky

K dokončení kroků v tomto článku jsou vyžadovány 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 adresu https://start.spring.io/.

  2. Určete, že chcete vygenerovat projekt Maven v Javě, zadejte názvy skupiny (Group) a artefaktu (Artifact).

  3. Přidejte závislosti pro Spring Web, Azure Active Directory a klienta OAuth2.

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

    Snímek obrazovky spring initializru se základními možnostmi

  5. Po zobrazení výzvy stáhněte projekt na místní počítač.

Vytvoření instance Azure Active Directory

Vytvoření instance Active Directory

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

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

  2. Vyberte Všechny služby, pak Identita a pak Azure Active Directory.

  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. (Příklad: azuresampledirectory.onmicrosoft.com.).

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

    Snímek obrazovky Vytvoření tenanta v části Konfigurace služby Azure Active Directory

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

    Snímek obrazovky se zprávou o úspěšném vytvoření tenanta

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

    Snímek obrazovky tenanta Azure Active Directory se zvýrazněnou možností ID tenanta

Přidání registrace aplikace pro aplikaci Spring Boot

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

  2. Zadejte aplikaci a pak vyberte Zaregistrovat.

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

    Snímek obrazovky aplikace se zvýrazněnou možností ID aplikace (klienta) a ID adresáře (tenanta)

  4. V levém navigačním podokně vyberte Tajné kódy certifikátů&. Pak vyberte Nový tajný klíč klienta.

    Snímek obrazovky s tajnými kódy certifikátů & aplikace se zvýrazněnou možností Nový tajný klíč klienta

  5. Přidejte Popis a v seznamu Vypršení platnosti vyberte dobu trvání. 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.

    Snímek obrazovky ověřování aplikace se zobrazeným oddílem Konfigurace platforem a zvýrazněnou webovou platformou

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

    Snímek obrazovky ověřování aplikace s oddílem Konfigurovat web a zvýrazněnou možností Identifikátory URI pro přesměrování

  9. Pokud jste upravili souborpom.xml tak, aby používal počáteční verzi Azure AD starší než 3.0.0: V části Implicitní udělení a hybridní toky vyberte Tokeny ID (používané pro implicitní a hybridní toky) a pak vyberte Uložit.

    Snímek obrazovky ověřování aplikace s vybranou možností Tokeny ID

Přidejte do adresáře uživatelský účet a přidejte ho do role aplikace.

  1. Na stránce Přehled 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. Potom vyberte Vytvořit.

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

    Poznámka

    Při zadávání uživatelského jména musíte zadat adresu URL adresáře z dřívější části tohoto kurzu. Příklad:

    test-user@azuresampledirectory.onmicrosoft.com

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

    Snímek obrazovky s aplikačními rolemi a podoknem Vytvořit roli aplikace

  4. Na stránce Přehled adresáře Azure AD vyberte Podnikové aplikace.

    Snímek obrazovky s podnikovými aplikacemi v Azure Active Directory

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

    Snímek obrazovky Podnikových aplikací se seznamem Všech aplikací

  6. Vyberte Uživatelé a skupiny a 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 Vybrat a pak vyberte Přiřadit. Pokud jste dříve vytvořili více než jednu roli aplikace, vyberte roli.

    Snímek obrazovky aplikace Přidat zadání se zobrazeným podoknem Uživatelé

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

    Snímek obrazovky uživatele se zvýrazněným polem Dočasné heslo

Konfigurace a kompilace aplikace

  1. Extrahujte soubory z archivu projektu, který jste vytvořili a stáhli v dřívější části tohoto kurzu, do nějakého adresáře.

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

  3. Zadejte nastavení pro registraci aplikace pomocí hodnot, které jste vytvořili dříve. 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=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==
    

    Kde:

    Parametr Popis
    spring.cloud.azure.active-directory.enabled Povolení funkcí poskytovaných spring-cloud-azure-starter-active-directory
    spring.cloud.azure.active-directory.profile.tenant-id Obsahuje ID adresáře vaší služby Active Directory z dřívější části.
    spring.cloud.azure.active-directory.credential.client-id Obsahuje ID aplikace z registrace vaší aplikace, kterou jste provedli dříve.
    spring.cloud.azure.active-directory.credential.client-secret Obsahuje hodnotu registračního klíče vaší aplikace, který jste vytvořili dříve.
  4. Uložte a zavřete soubor application.properties.

  5. Ve zdrojové složce Java vaší aplikace vytvořte složku controller. Například: src/main/java/com/wingtiptoys/security/controller.

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

  7. Do souboru zadejte následující kód a pak ho 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 přejděte do složky, ve které se nachází soubor pom.xml vaší aplikace.

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

    mvn clean package
    mvn spring-boot:run
    

    Snímek obrazovky s výstupem sestavení Maven

  3. Jakmile maven sestaví a spustí vaši aplikaci, otevřete http://localhost:8080/Admin ji ve webovém prohlížeči. Měla by se zobrazit výzva k zadání uživatelského jména a hesla.

    Snímek obrazovky aplikace s dialogovým oknem Přihlásit se

    Poznámka

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

    Snímek obrazovky aplikace s dialogovým oknem Pro aktualizaci hesla

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

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

Souhrn

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

Viz také

Další kroky

Pokud se chcete dozvědět více o architektuře Spring a Azure, přejděte do centra dokumentace Spring v Azure.