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í pomocí účtu 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 aplikace s dialogovým oknem Přihlásit se

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. 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, Microsoft Entra ID a OAuth2 Client.

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

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

Vytvoření instance Microsoft Entra

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 Identity a pak 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. (Pří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 tenanta. Hodnotu ID použijete ke konfiguraci souboru application.properties později v tomto kurzu.

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 registrace aplikace, zkopírujte ID vaší aplikace (klienta) a ID adresáře (tenanta). Tyto hodnoty použijete ke konfiguraci souboru application.properties později v tomto kurzu.

  4. V levém navigačním podokně vyberte Certifikáty a tajné kódy . Pak vyberte Nový tajný klíč klienta.

    Snímek obrazovky aplikace Certifikáty a tajné kódy se zvýrazněnou možností Nový tajný klíč klienta

  5. Přidejte popis a v seznamu Konec 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 pro konfiguraci souboru application.properties v pozdější části tohoto 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 upravili soubor pom.xml tak, aby používal úvodní verzi Microsoft Entra 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.

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

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

  2. Jakmile se zobrazí panel Uživatel, zadejte Jméno a Uživatelské 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. 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 polí formuláře, vyberte Chcete tuto roli aplikace povolit? a pak vyberte Použít.

    Snímek obrazovky aplikace Role aplikace se zobrazeným podoknem Vytvořit roli aplikace

  4. Na stránce Přehled vašeho adresáře Microsoft Entra vyberte Podnikové aplikace.

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

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

  7. V části Uživatelé vyberte Možnost Žádná vybrána. 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.

  8. Vraťte se na panel Uživatelé , vyberte svého testovacího uživatele a vyberte Resetovat heslo a 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 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 otevřete soubor application.properties v textovém editoru.

  3. Pomocí hodnot, které jste vytvořili dříve, zadejte nastavení registrace aplikace. Pří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. Pří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
    
  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 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 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

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