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 přihlašovací stránkou Microsoft Entra webové aplikace Spring

Požadavky

K dokončení kroků v tomto článku potřebujete 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 s Java. Zadejte názvy skupin a artefaktů pro vaši aplikaci.

  3. Přidání závislostí pro klienta Spring Web a OAuth2

  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.

Přidejte závislost Microsoft Entra

  1. Extrahujte stažené soubory projektu do adresáře v místním počítači.

  2. Otevřete soubor pom.xml v textovém editoru.

  3. Přidejte do oddílu Azure Vyúčtování materiálů (BOM) <dependencyManagement> Spring Cloud.

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.azure.spring</groupId>
          <artifactId>spring-cloud-azure-dependencies</artifactId>
          <version>7.4.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    
  4. Do části přidejte závislost <dependencies> spring cloud Azure Starter Microsoft Entra.

    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-starter-active-directory</artifactId>
    </dependency>
    
  5. Uložte a zavřete soubor pom.xml.

Vytvoření instance Microsoft Entra

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 aplikace (klienta) a ID tenanta. Tyto hodnoty použijte 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 nemůžete 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. U nového identifikátoru URI přesměrování zadejte http://localhost:8080/login/oauth2/code/a poté vyberte Nastavit.

  9. Pokud jste upravili soubor pom.xml tak, aby používal počáteční 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 a přiřazení role aplikace Microsoft Entra

  1. Na stránce Přehled tenanta Microsoft Entra ID 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 pro vytvoření uživatelského účtu

    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 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 '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 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 Žá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.

  8. Vraťte se na panel Uživatelé , vyberte testovacího uživatele a vyberte Resetovat heslo. 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 Microsoft Entra ID tenant 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 Povolí funkce poskytované nástrojem spring-cloud-azure-starter-active-directory.
    spring.cloud.azure.active-directory.profile.tenant-id Obsahuje ID tenanta vaší Microsoft Entra ID, jak bylo zmíněno dříve.
    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. Zobrazí se výzva k zadání uživatelského jména a hesla.

    snímek obrazovky s dialogovým oknem '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í se zobrazí 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 Java pomocí úvodní Microsoft Entra, nakonfigurovali jste nového tenanta Microsoft Entra, zaregistrovali jste novou aplikaci v tenantovi a pak jste 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.