Java Spring Boot-alkalmazások védelme az Azure Active Directory B2C használatával

Ez a cikk egy Java Spring Boot-webalkalmazást mutat be, amely bejelentkezik az Azure Active Directory B2C-bérlő felhasználóiba a Java Azure AD B2C Spring Boot Starter ügyfélkódtárával. Az OpenID Csatlakozás protokollt használja.

Az alábbi ábrán az alkalmazás topológiája látható:

Az alkalmazás topológiáját bemutató diagram.

Az ügyfélalkalmazás az Azure AD B2C Spring Boot Starter Java-ügyfélkódtárával jelentkezik be egy felhasználóba, és beszerez egy azonosító jogkivonatot az Azure AD B2C-ből. Az azonosító jogkivonat igazolja, hogy a felhasználó hitelesítése az Azure AD B2C-vel történik, és lehetővé teszi a felhasználó számára a védett útvonalak elérését.

Előfeltételek

Ajánlások

  • A Spring Framework néhány ismerete
  • A Linux/OSX terminál vagy a Windows PowerShell ismerete
  • jwt.ms a jogkivonatok vizsgálatához.
  • A Fiddler a hálózati tevékenység figyeléséhez és a hibaelhárításhoz.
  • Kövesse a Microsoft Entra ID blogot , hogy naprakész maradjon a legújabb fejlesztésekkel kapcsolatban.

A minta beállítása

Az alábbi szakaszok bemutatják, hogyan állíthatja be a mintaalkalmazást.

A mintaadattár klónozása vagy letöltése

A minta klónozásához nyisson meg egy Bash-ablakot, és használja a következő parancsot:

git clone https://github.com/Azure-Samples/ms-identity-java-spring-tutorial.git
cd ms-identity-java-spring-tutorial
cd 1-Authentication/sign-in-b2c

Másik lehetőségként keresse meg az ms-identity-java-spring-tutorial adattárat, majd töltse le .zip fájlként, és bontsa ki a merevlemezre.

Fontos

A Windows fájlelérési útvonalának korlátozásainak elkerülése érdekében klónozza vagy bontsa ki az adattárat a merevlemez gyökerének közelében található könyvtárba.

Ez a minta egy előre regisztrált alkalmazással rendelkezik bemutató célokra. Ha saját Azure AD B2C-bérlőt és -alkalmazást szeretne használni, regisztrálja és konfigurálja az alkalmazást az Azure Portalon. További információ: Az alkalmazás regisztrálása szakasz. Ellenkező esetben folytassa a mintafuttatás szakasz lépéseivel.

Válassza ki azt az Azure AD B2C-bérlőt, ahol az alkalmazásokat létre szeretné hozni

A bérlő kiválasztásához kövesse az alábbi lépéseket:

  1. Jelentkezzen be az Azure Portalra.

  2. Ha a fiókja több Azure AD B2C-bérlőben is megtalálható, válassza ki a profilját az Azure Portal sarkában, majd válassza a Címtár váltása lehetőséget a munkamenet kívánt Azure AD B2C-bérlőre való módosításához.

Felhasználói folyamatok és egyéni szabályzatok létrehozása

Ha olyan gyakori felhasználói folyamatokat szeretne létrehozni, mint a regisztráció, a bejelentkezés, a profil szerkesztése és a jelszó alaphelyzetbe állítása, tekintse meg a következő oktatóanyagot: Felhasználói folyamatok létrehozása az Azure Active Directory B2C-ben.

Érdemes lehet egyéni szabályzatokat is létrehozni az Azure Active Directory B2C-ben. Ez a feladat azonban túlmutat az oktatóanyag hatókörén. További információkért tekintse meg az Azure AD B2C egyéni szabályzatainak áttekintését.

Külső identitásszolgáltatók hozzáadása

Lásd az oktatóanyagot: Identitásszolgáltatók hozzáadása az alkalmazásokhoz az Azure Active Directory B2C-ben.

Az alkalmazás regisztrálása (java-spring-webapp-auth-b2c)

Az alkalmazás regisztrálásához kövesse az alábbi lépéseket:

  1. Lépjen az Azure Portalra , és válassza az Azure AD B2C-t.

  2. Válassza az Alkalmazásregisztrációk lehetőséget a navigációs panelen, majd válassza az Új regisztráció lehetőséget.

  3. A megjelenő Alkalmazás regisztrálása lapon adja meg a következő alkalmazásregisztrációs adatokat:

    • A Név szakaszban adjon meg egy értelmes alkalmazásnevet, amely megjeleníthető az alkalmazás felhasználói számára – példáuljava-spring-webapp-auth-b2c.
    • A Támogatott fióktípusok területen válassza a Fiókok lehetőséget bármely identitásszolgáltatóban vagy szervezeti címtárban (a felhasználók felhasználói folyamatokkal való hitelesítéséhez).
    • Az Átirányítási URI (nem kötelező) szakaszban válassza a Web lehetőséget a kombinált listában, és adja meg a következő átirányítási URI-t: http://localhost:8080/login/oauth2/code/.
  4. Válassza a Regisztráció elemet az alkalmazás létrehozásához.

  5. Az alkalmazás regisztrációs oldalán keresse meg és másolja ki az alkalmazás (ügyfél) azonosítójának értékét, amelyet később használni szeretne. Ezt az értéket az alkalmazás konfigurációs fájljában vagy fájljaiban használja.

  6. Válassza a Mentés lehetőséget a módosítások mentéséhez.

  7. Az alkalmazás regisztrációs oldalán válassza a navigációs panel Tanúsítványok &titkos kulcsok paneljét a titkos kódok létrehozásához és a tanúsítványok feltöltéséhez.

  8. Az Ügyfél titkos kulcsok szakaszban válassza az Új ügyfélkód lehetőséget.

  9. Írja be a leírást – például az alkalmazás titkos kódját.

  10. Válassza ki a rendelkezésre álló időtartamok egyikét a biztonsági szempontok szerint – például 2 év alatt.

  11. Válassza a Hozzáadás lehetőséget. Megjelenik a létrehozott érték.

  12. Másolja és mentse a létrehozott értéket a későbbi lépésekben való használatra. Szüksége van erre az értékre a kód konfigurációs fájljaihoz. Ez az érték nem jelenik meg újra, és más módon nem kérhető le. Ezért mindenképpen mentse az Azure Portalról, mielőtt bármilyen más képernyőre vagy panelre navigálna.

Az alkalmazás (java-spring-webapp-auth-b2c) konfigurálása az alkalmazásregisztráció használatához

Az alkalmazás konfigurálásához kövesse az alábbi lépéseket:

Feljegyzés

A következő lépésekben ugyanaz, ClientID mint Application ID vagy AppId.

  1. Nyissa meg a projektet az IDE-ben.

  2. Nyissa meg az src/main/resources/application.yml fájlt.

  3. Keresse meg a client-id tulajdonságot, és cserélje le a meglévő értéket az alkalmazásazonosítóra vagy clientId az alkalmazásra az java-spring-webapp-auth-b2c Azure Portalon.

  4. Keresse meg a client-secret tulajdonságot, és cserélje le a meglévő értéket az alkalmazás létrehozása során az java-spring-webapp-auth-b2c Azure Portalról mentett értékre.

  5. Keresse meg a base-uri tulajdonságot, és cserélje le az érték fabrikamb2c két példányát annak az Azure AD B2C-bérlőnek a nevére, amelyben az java-spring-webapp-auth-b2c alkalmazást az Azure Portalon hozta létre.

  6. Keresse meg a sign-up-or-sign-in tulajdonságot, és cserélje le annak a regisztrációs/bejelentkezési felhasználói folyamat szabályzatnak a nevére, amelyet abban az Azure AD B2C-bérlőben hozott létre, amelyben az alkalmazást az java-spring-webapp-auth-b2c Azure Portalon hozta létre.

  7. Keresse meg a profile-edit tulajdonságot, és cserélje le az Azure AD B2C-bérlőben létrehozott jelszó-visszaállítási felhasználói folyamat szabályzat nevére, amelyben az alkalmazást az java-spring-webapp-auth-b2c Azure Portalon hozta létre.

  8. Keresse meg a password-reset tulajdonságot, és cserélje le az Azure AD B2C-bérlőben létrehozott szerkesztési profil felhasználói folyamat szabályzatának nevére, amelyben az alkalmazást az java-spring-webapp-auth-b2c Azure Portalon hozta létre.

  9. Nyissa meg a src/main/resources/templates/navbar.html fájlt.

  10. Keresse meg az és a b2c_1_susib2c_1_edit_profile folyamatokra mutató hivatkozásokat, és cserélje le őket az Ön és profile-edit a sign-up-sign-in felhasználói folyamatokra.

Minta futtatása

Az alábbi szakaszok bemutatják, hogyan helyezheti üzembe a mintát az Azure Spring Appsben.

Előfeltételek

A Spring projekt előkészítése

A projekt előkészítéséhez kövesse az alábbi lépéseket:

  1. A projekt létrehozásához használja a következő Maven-parancsot :

    mvn clean package
    
  2. Futtassa helyileg a mintaprojektet az alábbi paranccsal:

    mvn spring-boot:run
    

A Maven beépülő moduljának konfigurálása

Futtassa az alábbi parancsot a projekt gyökerében az alkalmazás Azure Spring Appshez készült Maven beépülő modullal való konfigurálásához:

mvn com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config

Az alábbi lista a parancsok interakcióit ismerteti:

  • OAuth2-bejelentkezés: Engedélyeznie kell a bejelentkezést az Azure-ba az OAuth2 protokoll alapján.
  • Előfizetés kiválasztása: Válassza ki azt az előfizetési listaszámot, ahol létre szeretné hozni az Azure Spring Apps-példányt, amely alapértelmezés szerint a lista első előfizetése. Ha az alapértelmezett számot szeretné használni, nyomja le az Enter billentyűt.
  • Adja meg az Azure Spring Apps nevét: Adja meg a létrehozni kívánt Spring Apps-példány nevét. Ha az alapértelmezett nevet szeretné használni, nyomja le az Enter billentyűt.
  • Adja meg az erőforráscsoport nevét: Adja meg annak az erőforráscsoportnak a nevét, amelyben létre szeretné hozni a spring apps-példányt. Ha az alapértelmezett nevet szeretné használni, nyomja le az Enter billentyűt.
  • Termékváltozat: Válassza ki a spring apps-példányhoz használni kívánt termékváltozatot. Ha az alapértelmezett számot szeretné használni, nyomja le az Enter billentyűt.
  • Adja meg az alkalmazás nevét (bemutató): Adjon meg egy alkalmazásnevet. Ha az alapértelmezett projektösszetevő-azonosítót szeretné használni, nyomja le az Enter billentyűt.
  • Futtatókörnyezetek: Válassza ki a spring apps-példányhoz használni kívánt futtatókörnyezetet. Ebben az esetben az alapértelmezett számot kell használnia, ezért nyomja le az Enter billentyűt.
  • Nyilvános hozzáférés közzététele ehhez az alkalmazáshoz (boot-for-azure): Nyomja le az y billentyűt.
  • Ellenőrizze, hogy menti-e a fenti konfigurációkat: Nyomja le az y billentyűt. Ha az n billentyűt lenyomja, a konfiguráció nem lesz mentve a .pom fájlba.

Az alábbi példa az üzembehelyezési folyamat kimenetét mutatja be:

Summary of properties:
Subscription id   : 12345678-1234-1234-1234-123456789101
Resource group name : rg-ms-identity-spring-boot-webapp
Azure Spring Apps name : cluster-ms-identity-spring-boot-webapp
Runtime Java version : Java 11
Region            : eastus
Sku               : Standard
App name          : ms-identity-spring-boot-webapp
Public access     : true
Instance count/max replicas : 1
CPU count         : 1
Memory size(GB)   : 2
Confirm to save all the above configurations (Y/n):
[INFO] Configurations are saved to: /home/user/ms-identity-java-spring-tutorial/1-Authentication/sign-in/pom.    xml
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:57 min
[INFO] Finished at: 2024-02-14T13:50:44Z
[INFO] ------------------------------------------------------------------------

Miután megerősítette a választási lehetőségeket, a beépülő modul hozzáadja a szükséges beépülő modulelemet és -beállításokat a projekt pom.xml fájljához, hogy konfigurálja az alkalmazást az Azure Spring Appsben való futtatásra.

A pom.xml fájl releváns részének az alábbi példához hasonlóan kell kinéznie:

<plugin>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure-spring-apps-maven-plugin</artifactId>
    <version>1.19.0</version>
    <configuration>
        <subscriptionId>12345678-1234-1234-1234-123456789101</subscriptionId>
        <resourceGroup>rg-ms-identity-spring-boot-webapp</resourceGroup>
        <clusterName>cluster-ms-identity-spring-boot-webapp</clusterName>
        <region>eastus</region>
        <sku>Standard</sku>
        <appName>ms-identity-spring-boot-webapp</appName>
        <isPublic>true</isPublic>
        <deployment>
            <cpu>1</cpu>
            <memoryInGB>2</memoryInGB>
            <instanceCount>1</instanceCount>
            <runtimeVersion>Java 11</runtimeVersion>
            <resources>
                <resource>
                    <directory>${project.basedir}/target</directory>
                    <includes>
                        <include>*.jar</include>
                    </includes>
                </resource>
            </resources>
        </deployment>
    </configuration>
</plugin>

Az Azure Spring Apps konfigurációit közvetlenül a pom.xml fájlban módosíthatja. Néhány gyakori konfiguráció az alábbi táblázatban található:

Tulajdonság Kötelező Leírás
subscriptionId false Az előfizetés azonosítója.
resourceGroup true Az Azure Spring Apps-példány Azure-erőforráscsoportja.
clusterName true Az Azure Spring Apps-fürt neve. Ha olyan előfizetést és erőforráscsoportot használ, amely már üzembe helyezett Egy Azure Spring Apps-példányt, ezt a meglévő fürtöt is használhatja az üzembe helyezéshez.
appName true Az alkalmazás neve az Azure Spring Appsben.
region false Az a régió, amelyben az Azure Spring Apps-példányt üzemeltetni szeretné. Az alapértelmezett érték eastus. Érvényes régiókért lásd: Támogatott régiók.
sku false Az Azure Spring Apps-példány tarifacsomagja. Az alapértelmezett érték , Basicamely csak fejlesztési és tesztelési környezetekhez használható.
runtime false A futtatókörnyezet konfigurációja. További információ: Konfiguráció részletei.
deployment false Az üzembehelyezési konfiguráció. További információ: Konfiguráció részletei.

A konfigurációk teljes listáját a beépülő modul referenciadokumentációjában találja. Az Összes Azure Maven beépülő modul közös konfigurációkat használ. Ezekről a konfigurációkról a Gyakori konfigurációk című témakörben olvashat. Az Azure Spring Appsre vonatkozó konfigurációkat az Azure Spring Apps: Configuration Details című témakörben találja.

Ügyeljen arra, hogy a későbbi használatra félretehesse az értékeket és appName az clusterName értékeket.

Az alkalmazás előkészítése az üzembe helyezéshez

Amikor üzembe helyezi az alkalmazást az Azure Spring Appsben, az átirányítási URL-cím megváltozik az Azure Spring Appsben üzembe helyezett alkalmazáspéldány átirányítási URL-címére. A következő lépésekkel módosíthatja ezeket a beállításokat a application.yml fájlban:

  1. Lépjen az alkalmazás src\main\resources\application.yml fájljára, és módosítsa a telepített alkalmazás tartománynevére az post-logout-redirect-uri alábbi példában látható módon. Ha például az előző lépésben ms-identity-spring-boot-webapp az Azure Spring Apps-példányt és az alkalmazás nevét választottacluster-ms-identity-spring-boot-webapp, akkor most már használnia https://cluster-ms-identity-spring-boot-webapp-ms-identity-spring-boot-webapp.azuremicroservices.io kell az post-logout-redirect-uri értéket.

    post-logout-redirect-uri: https://<cluster-name>-<app-name>.azuremicroservices.io
    
  2. A fájl mentése után használja az alábbi parancsot az alkalmazás újraépítéséhez:

    mvn clean package
    

Fontos

Az alkalmazás application.yml fájlja jelenleg az ügyfél titkos kódjának értékét tartalmazza a client-secret paraméterben. Ez az érték nem ajánlott ebben a fájlban tartani. Kockázatot is vállalhat, ha véglegesíti azt egy Git-adattárban.

További biztonsági lépésként tárolhatja ezt az értéket az Azure Key Vaultban, és betöltheti a titkos kulcsot a Key Vaultból, hogy elérhetővé tegye az alkalmazásban.

A Microsoft Entra ID alkalmazásregisztráció frissítése

Mivel az átirányítási URI módosul az Azure Spring Appsben üzembe helyezett alkalmazásra, az átirányítási URI-t is módosítania kell a Microsoft Entra ID-alkalmazásregisztrációjában. A módosítás végrehajtásához kövesse az alábbi lépéseket:

  1. Lépjen a Microsoft Identitásplatform fejlesztőknek Alkalmazásregisztrációk lapra.

  2. A keresőmező használatával keresse meg az alkalmazásregisztrációt – például java-servlet-webapp-authentication.

  3. Nyissa meg az alkalmazásregisztrációt a nevének kiválasztásával.

  4. Válassza a Hitelesítés lehetőséget a menüben.

  5. A Webes - átirányítási URI-k szakaszban válassza az URI hozzáadása lehetőséget.

  6. Töltse ki az alkalmazás URI-ját, hozzáfűzve /login/oauth2/code/ például https://<cluster-name>-<app-name>.azuremicroservices.io/login/oauth2/code/.

  7. Válassza a Mentés lehetőséget.

Az alkalmazás üzembe helyezése

Az alkalmazás üzembe helyezéséhez használja a következő parancsot:

mvn azure-spring-apps:deploy

Az alábbi lista a parancsok közötti interakciót ismerteti:

  • OAuth2-bejelentkezés: Engedélyeznie kell a bejelentkezést az Azure-ba az OAuth2 protokoll alapján.

A parancs végrehajtása után a következő naplóüzenetekből láthatja, hogy az üzembe helyezés sikeres volt:

[INFO] Deployment(default) is successfully created
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
[INFO]   InstanceName:demo-default-x-xxxxxxxxxx-xxxxx  Status:Running Reason:null       DiscoverStatus:UNREGISTERED
[INFO]   InstanceName:demo-default-x-xxxxxxxxx-xxxxx  Status:Terminating Reason:null       DiscoverStatus:UNREGISTERED
[INFO] Getting public url of app(demo)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-demo.azuremicroservices.io

Az alkalmazás ellenőrzése

Az üzembe helyezés befejezése után a kimeneti alkalmazás URL-címével érheti el az alkalmazást. Az alábbi lépésekkel ellenőrizheti az alkalmazás naplóit az üzembehelyezési problémák kivizsgálásához:

  1. A kimeneti alkalmazás URL-címét az Üzembe helyezés szakasz Kimenetek lapján érheti el.

  2. Az Azure Spring Apps-példány áttekintési lapján válassza a Naplók lehetőséget az alkalmazás naplóinak ellenőrzéséhez.

A minta vizsgálata

A minta megismeréséhez kövesse az alábbi lépéseket:

  1. Figyelje meg a bejelentkezett vagy kijelentkezett állapotot a képernyő közepén.
  2. Válassza a sarokban található környezetérzékeny gombot. Ez a gomb beolvassa a bejelentkezést az alkalmazás első futtatásakor. Másik lehetőségként válassza a jogkivonat részleteire mutató hivatkozást. Mivel ez a lap védett, és hitelesítést igényel, a rendszer automatikusan átirányítja a bejelentkezési lapra.
  3. A következő lapon kövesse az utasításokat, és jelentkezzen be a kiválasztott identitásszolgáltató fiókjával. Dönthet úgy is, hogy e-mail-címmel regisztrál vagy bejelentkezik egy helyi fiókba a B2C-bérlőn.
  4. A bejelentkezési folyamat sikeres befejezése után a rendszer átirányítja a kezdőlapra – amely a bejelentkezési állapotot jeleníti meg – vagy a jogkivonat részleteit tartalmazó lapra, attól függően, hogy melyik gomb váltotta ki a bejelentkezési folyamatot.
  5. Figyelje meg, hogy a környezetfüggő gomb most kijelentkezik , és megjeleníti a felhasználónevét.
  6. Ha a kezdőlapon van, válassza az Azonosító jogkivonat részletei lehetőséget az azonosító jogkivonat egyes dekódolt jogcímeinek megtekintéséhez.
  7. Szerkessze a profilját. Válassza a szerkesztési profilt a megjelenített név, a lakóhely és a foglalkozás adatainak módosításához.
  8. A kijelentkezéshez használja a sarokban lévő gombot. Az állapotlap az új állapotot tükrözi.

Tudnivalók a kódról

Ez a minta bemutatja, hogyan használhatja a Java-hoz készült Azure AD B2C Spring Boot Starter ügyfélkódtárat a felhasználók Azure AD B2C-bérlőbe való bejelentkezéséhez. A minta a Spring Oauth2-ügyfél- és Spring Web-rendszerindítókat is használja. A minta az Azure AD B2C-ből beszerzett azonosító jogkivonatból származó jogcímeket használja a bejelentkezett felhasználó adatainak megjelenítéséhez.

Tartalom

Az alábbi táblázat a mintaprojekt mappájának tartalmát mutatja be:

Fájl/mappa Leírás
pom.xml Alkalmazásfüggőségek.
src/main/resources/templates/ Thymeleaf Templates for UI.
src/main/resources/application.yml Alkalmazás- és Microsoft Entra Boot Starter-kódtár konfigurációja.
src/main/java/com/microsoft/azuresamples/msal4j/msidentityspringbootwebapp/ Ez a könyvtár tartalmazza a fő alkalmazásbeléptetési pontot, vezérlőt és konfigurációs osztályokat.
.../MsIdentitySpringBootWebappApplication.java Főosztály.
.../SampleController.java Vezérlő végpontleképezésekkel.
.../SecurityConfig.java Biztonsági konfiguráció – például, hogy mely útvonalak igényelnek hitelesítést.
.../Utilities.java Segédprogramosztály – például szűrőazonosító-jogkivonat jogcímek.
CHANGELOG.md A minta módosításainak listája.
CONTRIBUTING.md Útmutató a mintához való hozzájáruláshoz.
LICEN Standard kiadás A minta licence.

Azonosító jogkivonat jogcíme

A jogkivonat részleteinek kinyeréséhez az alkalmazás a Spring Security AuthenticationPrincipal és OidcUser az objektum használatát használja egy kérelemleképezésben, ahogyan az az alábbi példában is látható. Az alkalmazás azonosítójogkivonat-jogcímek használatának részletes részleteiért tekintse meg a mintavezérlőt.

import org.springframework.security.oauth2.core.oidc.user.OidcUser;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
//...
@GetMapping(path = "/some_path")
public String tokenDetails(@AuthenticationPrincipal OidcUser principal) {
    Map<String, Object> claims = principal.getIdToken().getClaims();
}

Bejelentkezés esetén az alkalmazás kérést küld az Azure AD B2C bejelentkezési végpontra, amelyet a Java-hoz készült Azure AD B2C Spring Boot Starter ügyfélkódtár automatikusan konfigurál, az alábbi példában látható módon:

<a class="btn btn-success" href="/oauth2/authorization/{your-sign-up-sign-in-user-flow}">Sign In</a>

Kijelentkezés esetén az alkalmazás POST kérést küld a logout végpontra, ahogyan az a következő példában is látható:

<form action="#" th:action="@{/logout}" method="post">
  <input class="btn btn-warning" type="submit" value="Sign Out" />
</form>

Hitelesítéstől függő felhasználói felületi elemek

Az alkalmazás néhány egyszerű logikával rendelkezik a felhasználói felület sablonlapjain a megjelenítendő tartalom meghatározásához annak alapján, hogy a felhasználó hitelesítése megtörtént-e, ahogy az alábbi példában is látható, a Spring Security Thymeleaf-címkékkel:

<div sec:authorize="isAuthenticated()">
  this content only shows to authenticated users
</div>
<div sec:authorize="isAnonymous()">
  this content only shows to not-authenticated users
</div>

Útvonalak védelme a WebSecurityConfigurerAdapterrel

Alapértelmezés szerint az alkalmazás védi az Azonosító jogkivonat részletei lapot, hogy csak a bejelentkezett felhasználók férhessenek hozzá. Az alkalmazás ezeket az útvonalakat a app.protect.authenticated tulajdonságból konfigurálja a application.yml fájlból. Az alkalmazás konkrét követelményeinek konfigurálásához kiterjesztheti WebSecurityConfigurerAdapter az egyik osztályát. Például tekintse meg az alkalmazás SecurityConfig osztályát, amely az alábbi kódban látható:

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Value("${app.protect.authenticated}")
    private String[] protectedRoutes;

    private final AADB2COidcLoginConfigurer configurer;

    public SecurityConfig(AADB2COidcLoginConfigurer configurer) {
        this.configurer = configurer;
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // @formatter:off
        http.authorizeRequests()
            .antMatchers(protectedRoutes).authenticated()     // limit these pages to authenticated users (default: /token_details)
            .antMatchers("/**").permitAll()                  // allow all other routes.
            .and()
            .apply(configurer)
            ;
        // @formatter:off
    }
}

További információ

További információ az OAuth 2.0 protokollok működéséről ebben a forgatókönyvben és más forgatókönyvekben: Hitelesítési forgatókönyvek a Microsoft Entra ID-hoz.