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:
Požadavky
K dokončení kroků v tomto článku jsou potřeba následující požadavky:
- Podporovaná sada Java Development Kit (JDK). Další informace o sadách JDK, které jsou k dispozici při vývoji v Azure, najdete v tématu Podpora Javy v Azure a azure Stacku.
- Apache Maven verze 3.0 nebo vyšší.
- Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet.
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
Přejděte na https://start.spring.io/.
Určete, že chcete vygenerovat projekt Maven v Javě, zadejte názvy skupiny (Group) a artefaktu (Artifact).
Přidejte závislosti pro Spring Web, Microsoft Entra ID a OAuth2 Client.
V dolní části stránky vyberte tlačítko GENEROVAT .
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.
Přihlaste se na adrese https://portal.azure.com.
Vyberte Všechny služby, pak Identity a pak Microsoft Entra ID.
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.
Po dokončení vyberte zobrazený odkaz pro přístup k novému adresáři.
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
V nabídce portálu vyberte Registrace aplikací a pak vyberte Zaregistrovat aplikaci.
Zadejte aplikaci a pak vyberte Zaregistrovat.
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.
V levém navigačním podokně vyberte Certifikáty a tajné kódy . Pak vyberte Nový tajný klíč klienta.
Přidejte popis a v seznamu Konec platnosti vyberte dobu trvání. Vyberte Přidat. Hodnota klíče se vyplní automaticky.
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.)
Na hlavní stránce registrace aplikace vyberte Ověřování a vyberte Přidat platformu. Pak vyberte webové aplikace.
Zadejte http://localhost:8080/login/oauth2/code/ jako nový identifikátor URI přesměrování a pak vyberte Konfigurovat.
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
Na stránce Přehled služby Active Directory vyberte Uživatelé a pak vyberte Nový uživatel.
Jakmile se zobrazí panel Uživatel, zadejte Jméno a Uživatelské jméno. Pak vyberte Vytvořit.
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
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.
Na stránce Přehled vašeho adresáře Microsoft Entra vyberte Podnikové aplikace.
Vyberte Všechny aplikace a pak vyberte aplikaci, do které jste přidali roli aplikace v předchozím kroku.
Vyberte Uživatelé a skupiny a pak vyberte Přidat uživatele nebo skupinu.
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.
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
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.
V projektu přejděte do složky src/main/resources a otevřete soubor application.properties v textovém editoru.
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=<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
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. Uložte a zavřete soubor application.properties.
Ve zdrojové složce Java vaší aplikace vytvořte složku controller. Příklad: src/main/java/com/wingtiptoys/security/controller.
Ve složce controller vytvořte nový soubor Java HelloController.java a otevřete ho v textovém editoru.
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
Otevřete příkazový řádek a přejděte do složky, ve které se nachází soubor pom.xml vaší aplikace.
Sestavte aplikaci Spring Boot pomocí Mavenu a spusťte ji. Příklad:
mvn clean package mvn spring-boot:run
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.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.
Po úspěšném přihlášení by se měl zobrazit ukázkový text "Zpráva správce" z kontroleru.
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é
- Informace o nových možnostech uživatelského rozhraní najdete v průvodci školením k registraci nových aplikací na webu Azure Portal.
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.