Megosztás a következőn keresztül:


Spring Boot Starter útmutató Microsoft Entra fejlesztőknek

Ez a cikk a Microsoft Entra ID-hoz készült Spring Boot Starter funkcióit és alapvető forgatókönyveit ismerteti. A cikk útmutatást is tartalmaz a gyakori problémákról, kerülő megoldásokról és diagnosztikai lépésekről.

Webalkalmazások létrehozásakor az identitás- és hozzáférés-kezelés alapvető fontosságú. Az Azure egy felhőalapú identitásszolgáltatást kínál, amely mély integrációval rendelkezik az Azure többi ökoszisztémájával.

Bár a Spring Security megkönnyíti a Spring-alapú alkalmazások védelmét, nem egy adott identitásszolgáltatóra van szabva. A Microsoft Entra-azonosítóhoz készült Spring Boot Starter lehetővé teszi a webalkalmazás Microsoft Entra-bérlőhöz való csatlakoztatását, és az erőforrás-kiszolgáló védelmét a Microsoft Entra-azonosítóval. Az Oauth 2.0 protokollt használja a webalkalmazások és az erőforrás-kiszolgálók védelmére.

Az alábbi hivatkozások hozzáférést biztosítanak a kezdőcsomaghoz, a dokumentációhoz és a mintákhoz:

Előfeltételek

Az útmutató utasításainak követéséhez a következő előfeltételekkel kell rendelkeznie:

Fontos

A cikkben ismertetett lépések elvégzéséhez a Spring Boot 2.5-ös vagy újabb verziójára van szükség.

Alapvető forgatókönyvek

Ez az útmutató a Microsoft Entra starter használatát ismerteti a következő forgatókönyvekben:

A webalkalmazások minden olyan webalapú alkalmazás, amely lehetővé teszi a felhasználónak a bejelentkezést. A erőforrás-kiszolgáló a hozzáférési jogkivonat érvényesítése után elfogadhatja vagy megtagadhatja a hozzáférést.

Webalkalmazás elérése

Ez a forgatókönyv az OAuth 2.0 engedélyezési kód folyamatot használja, hogy a felhasználó bejelentkezhessen egy Microsoft-fiókkal.

A Microsoft Entra starter ebben a forgatókönyvben való használatához kövesse az alábbi lépéseket:

Állítsa be az átirányítási URI-t <application-base-uri>/login/oauth2/code/-ra. Például: http://localhost:8080/login/oauth2/code/. Ügyeljen arra, hogy a végén lévő /is szerepeljen. További információ az átirányítási URI-ról az alábbi részben található: Átirányítási URI hozzáadása a Gyors útmutatóban: Alkalmazás regisztrálása a Microsoft identitásplatformján.

Képernyőkép az Azure Portalról, amelyen a webalkalmazás-hitelesítési oldal látható, kiemelt átirányítási URI-val.

Adja hozzá a következő függőségeket a pom.xml fájlhoz.

<dependency>
   <groupId>com.azure.spring</groupId>
   <artifactId>spring-cloud-azure-starter-active-directory</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>

Jegyzet

A Spring Cloud Azure-kódtár verzióinak anyagjegyzék (BOM) használatával történő kezeléséről a Spring Cloud Azure fejlesztői útmutatójának Első lépésekcímű szakaszában olvashat.

Adja hozzá a következő tulajdonságokat a application.yml fájlhoz. Ezeknek a tulajdonságoknak az értékeit az Azure Portalon létrehozott alkalmazásregisztrációból szerezheti be, az előfeltételekben leírtak szerint.

spring:
 cloud:
   azure:
     active-directory:
       enabled: true
       profile:
         tenant-id: <tenant>
       credential:
         client-id: <your-client-ID>
         client-secret: <your-client-secret>

Jegyzet

A tenant-id engedélyezett értékek a következők: common, organizations, consumersvagy bérlőazonosító. Ezekről az értékekről további információt a Helytelen végpont (személyes és szervezeti fiókok) szakaszában talál, amely az AADSTS50020 - Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlőben hiba részét képezi. Az egybérlős alkalmazás konvertálásáról további információért lásd: Az egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra ID rendszeren.

Használja az alapértelmezett biztonsági konfigurációt, vagy adja meg a saját konfigurációját.

1. lehetőség: Használja az alapértelmezett konfigurációt.

Ezzel a lehetőséggel nem kell semmit tennie. A DefaultAadWebSecurityConfiguration osztály automatikusan konfigurálva van.

2. lehetőség: Adjon meg egy saját konfigurációt.

Konfiguráció megadásához alkalmazza a AadWebApplicationHttpSecurityConfigurer#aadWebApplicationHttpSecurity metódusát az alábbi példában látható módon:

@Configuration(proxyBeanMethods = false)
@EnableWebSecurity
@EnableMethodSecurity
public class AadOAuth2LoginSecurityConfig {

   /**
    * Add configuration logic as needed.
    */
   @Bean
   SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
     http.with(AadWebApplicationHttpSecurityConfigurer.aadWebApplication(), Customizer.withDefaults())
         .authorizeHttpRequests(authorize -> authorize.anyRequest().authenticated());
         // Do some custom configuration.
       return http.build();
   }
}

Erőforrás-kiszolgálók elérése webalkalmazásból

A Microsoft Entra starter ebben a forgatókönyvben való használatához kövesse az alábbi lépéseket:

Állítsa be az átirányítási URI-t a korábban ismertetett módon.

Adja hozzá a következő függőségeket a pom.xml fájlhoz.

<dependency>
   <groupId>com.azure.spring</groupId>
   <artifactId>spring-cloud-azure-starter-active-directory</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>

Jegyzet

A Spring Cloud Azure-kódtár verzióinak anyagjegyzék (BOM) használatával történő kezeléséről a Spring Cloud Azure fejlesztői útmutatójának Első lépésekcímű szakaszában olvashat.

Adja hozzá a következő tulajdonságokat a application.yml fájlhoz a korábban ismertetett módon:

spring:
 cloud:
   azure:
     active-directory:
       enabled: true
       profile:
         tenant-id: <tenant>
       credential:
         client-id: <your-client-ID>
         client-secret: <your-client-secret>
       authorization-clients:
         graph:
           scopes: https://graph.microsoft.com/Analytics.Read, email

Jegyzet

A tenant-id engedélyezett értékek a következők: common, organizations, consumersvagy bérlőazonosító. Ezekről az értékekről további információt a Helytelen végpont (személyes és szervezeti fiókok) szakaszában talál, amely az AADSTS50020 - Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlőben hiba részét képezi. Az egybérlős alkalmazás konvertálásáról további információért lásd: Az egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra ID rendszeren.

Itt a graph a(z) ön OAuth2AuthorizedClient neve, és a scopes a bejelentkezéskor beleegyezéshez szükséges hatókörök.

Az alábbi példához hasonló kódot adhat hozzá az alkalmazáshoz:

@GetMapping("/graph")
@ResponseBody
public String graph(
   @RegisteredOAuth2AuthorizedClient("graph") OAuth2AuthorizedClient graphClient
) {
   // toJsonString() is just a demo.
   // oAuth2AuthorizedClient contains access_token. We can use this access_token to access the resource server.
   return toJsonString(graphClient);
}

Itt graph az előző lépésben konfigurált ügyfélazonosító. OAuth2AuthorizedClient tartalmazza az erőforrás-kiszolgáló eléréséhez használt hozzáférési jogkivonatot.

A forgatókönyvet bemutató teljes minta megtekintéséhez tekintse meg a spring-cloud-azure-starter-active-directory példaprogramot: aad-web-application.

Erőforráskiszolgáló/API védelme

Ez a forgatókönyv nem támogatja a bejelentkezést, de a hozzáférési jogkivonat érvényesítésével védi a kiszolgálót. Ha a hozzáférési jogkivonat érvényes, a kiszolgáló kiszolgálja a kérést.

A Microsoft Entra starter ebben a forgatókönyvben való használatához kövesse az alábbi lépéseket:

Adja hozzá a következő függőségeket a pom.xml fájlhoz.

<dependency>
   <groupId>com.azure.spring</groupId>
   <artifactId>spring-cloud-azure-starter-active-directory</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
</dependency>

Jegyzet

A Spring Cloud Azure-kódtár verzióinak anyagjegyzék (BOM) használatával történő kezeléséről a Spring Cloud Azure fejlesztői útmutatójának Első lépésekcímű szakaszában olvashat.

Adja hozzá a következő tulajdonságokat a application.yml fájlhoz a korábban ismertetett módon:

spring:
 cloud:
   azure:
     active-directory:
       enabled: true
       credential:
         client-id: <your-client-ID>
       app-id-uri: <your-app-ID-URI>

A hozzáférési jogkivonat ellenőrzéséhez használhatja a <your-client-ID> és <your-app-ID-URI> értékeket is. A <your-app-ID-URI> értéket az Azure Portalról szerezheti be, ahogyan az alábbi képeken is látható:

Képernyőkép az Azure Portalról, amelyen a webalkalmazás megjelenít egy API-lapot, amelyen az alkalmazásazonosító URI van kiemelve.

Használja az alapértelmezett biztonsági konfigurációt, vagy adja meg a saját konfigurációját.

1. lehetőség: Használja az alapértelmezett konfigurációt.

Ezzel a lehetőséggel nem kell semmit tennie. A DefaultAadResourceServerConfiguration osztály automatikusan konfigurálva van.

2. lehetőség: Adjon meg egy saját konfigurációt.

Konfiguráció megadásához alkalmazza a AadResourceServerHttpSecurityConfigurer#aadResourceServerHttpSecurity metódusát az alábbi példában látható módon:

@Configuration(proxyBeanMethods = false)
@EnableWebSecurity
@EnableMethodSecurity
public class AadOAuth2ResourceServerSecurityConfig {

   /**
    * Add configuration logic as needed.
    */
   @Bean
   public SecurityFilterChain apiFilterChain(HttpSecurity http) throws Exception {
       http.with(AadResourceServerHttpSecurityConfigurer.aadResourceServer(), Customizer.withDefaults())
           .authorizeHttpRequests(authorize -> authorize.anyRequest().authenticated());
       return http.build();
   }
}

A jelen forgatókönyv teljes mintájának megtekintéséhez lásd: spring-cloud-azure-starter-active-directory minta: aad-resource-server.

Más erőforráskiszolgálók elérése erőforrás-kiszolgálóról

Ez a forgatókönyv támogatja, hogy egy erőforráskiszolgáló más erőforráskiszolgálókat látogasson meg.

A Microsoft Entra starter ebben a forgatókönyvben való használatához kövesse az alábbi lépéseket:

Adja hozzá a következő függőségeket a pom.xml fájlhoz.

<dependency>
   <groupId>com.azure.spring</groupId>
   <artifactId>spring-cloud-azure-starter-active-directory</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>

Jegyzet

A Spring Cloud Azure-kódtár verzióinak anyagjegyzék (BOM) használatával történő kezeléséről a Spring Cloud Azure fejlesztői útmutatójának Első lépésekcímű szakaszában olvashat.

Adja hozzá a következő tulajdonságokat a application.yml fájlhoz:

spring:
 cloud:
   azure:
     active-directory:
       enabled: true
       profile:
         tenant-id: <tenant>
       credential:
         client-id: <web-API-A-client-ID>
         client-secret: <web-API-A-client-secret>
       app-id-uri: <web-API-A-app-ID-URI>
       authorization-clients:
         graph:
           scopes:
              - https://graph.microsoft.com/User.Read

Jegyzet

A tenant-id engedélyezett értékek a következők: common, organizations, consumersvagy bérlőazonosító. Ezekről az értékekről további információt a Helytelen végpont (személyes és szervezeti fiókok) szakaszában talál, amely az AADSTS50020 - Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlőben hiba részét képezi. Az egybérlős alkalmazás konvertálásáról további információért lásd: Az egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra ID rendszeren.

A kódban található @RegisteredOAuth2AuthorizedClient attribútummal érheti el a kapcsolódó erőforrás-kiszolgálót, ahogyan az az alábbi példában látható:

@PreAuthorize("hasAuthority('SCOPE_Obo.Graph.Read')")
@GetMapping("call-graph")
public String callGraph(@RegisteredOAuth2AuthorizedClient("graph") OAuth2AuthorizedClient graph) {
   return callMicrosoftGraphMeEndpoint(graph);
}

A teljes minta megtekintéséhez, amely bemutatja ezt a forgatókönyvet, lásd: spring-cloud-azure-starter-active-directory minta: aad-resource-server-obo.

Webalkalmazás és erőforrás-kiszolgáló egy alkalmazásban

Ez a forgatókönyv támogatja Egy webalkalmazás elérését, és Egy erőforrás-kiszolgáló/API- védelme egyetlen alkalmazásban.

Ha ebben a forgatókönyvben aad-starter szeretne használni, kövesse az alábbi lépéseket:

Adja hozzá a következő függőségeket a pom.xml fájlhoz.

<dependency>
   <groupId>com.azure.spring</groupId>
   <artifactId>spring-cloud-azure-starter-active-directory</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>

Jegyzet

A Spring Cloud Azure-kódtár verzióinak anyagjegyzék (BOM) használatával történő kezeléséről a Spring Cloud Azure fejlesztői útmutatójának Első lépésekcímű szakaszában olvashat.

Frissítse a application.yml fájlt. Állítsa a spring.cloud.azure.active-directory.application-type tulajdonságot web_application_and_resource_serverértékre, és adja meg az egyes engedélyezési ügyfelek engedélyezési típusát az alábbi példában látható módon.

spring:
 cloud:
   azure:
     active-directory:
       enabled: true
       profile:
         tenant-id: <tenant>
       credential:
         client-id: <Web-API-C-client-id>
         client-secret: <Web-API-C-client-secret>
       app-id-uri: <Web-API-C-app-id-url>
       application-type: web_application_and_resource_server  # This is required.
       authorization-clients:
         graph:
           authorizationGrantType: authorization_code  # This is required.
           scopes:
             - https://graph.microsoft.com/User.Read
             - https://graph.microsoft.com/Directory.Read.All

Jegyzet

A tenant-id engedélyezett értékek a következők: common, organizations, consumersvagy bérlőazonosító. Ezekről az értékekről további információt a Helytelen végpont (személyes és szervezeti fiókok) szakaszában talál, amely az AADSTS50020 - Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlőben hiba részét képezi. Az egybérlős alkalmazás konvertálásáról további információért lásd: Az egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra ID rendszeren.

Java-kód írása több HttpSecurity példány konfigurálásához.

Az alábbi példakódban AadWebApplicationAndResourceServerConfig két biztonsági szűrőláncot tartalmaz, egyet egy erőforrás-kiszolgálóhoz, egyet pedig egy webalkalmazáshoz. A apiFilterChain bean magas prioritással rendelkezik az erőforráskiszolgáló biztonsági építőjének konfigurálásához. A htmlFilterChain bean alacsony prioritású a webalkalmazás biztonsági építőjének konfigurálásához.

@Configuration(proxyBeanMethods = false)
@EnableWebSecurity
@EnableMethodSecurity
public class AadWebApplicationAndResourceServerConfig {

    @Bean
    @Order(1)
    public SecurityFilterChain apiFilterChain(HttpSecurity http) throws Exception {
        http.with(AadResourceServerHttpSecurityConfigurer.aadResourceServer(), Customizer.withDefaults())
            // All the paths that match `/api/**`(configurable) work as the resource server. Other paths work as the web application.
            .securityMatcher("/api/**")
            .authorizeHttpRequests(authorize -> authorize.anyRequest().authenticated());
        return http.build();
    }

    @Bean
    public SecurityFilterChain htmlFilterChain(HttpSecurity http) throws Exception {
        // @formatter:off
        http.with(AadWebApplicationHttpSecurityConfigurer.aadWebApplication(), Customizer.withDefaults())
            .authorizeHttpRequests(authorize -> authorize.requestMatchers("/login").permitAll().anyRequest().authenticated());
        // @formatter:on
        return http.build();
    }
}

Alkalmazás típusa

A spring.cloud.azure.active-directory.application-type tulajdonság nem kötelező, mert az értéke függőségek alapján következtethető ki. Csak akkor kell manuálisan beállítania a tulajdonságot, ha a web_application_and_resource_server értéket használja.

Függősége van: spring-security-oauth2-client Van egy függősége: spring-security-oauth2-resource-server Alkalmazástípus érvényes értékei Alapértelmezett érték
Igen Nem web_application web_application
Nem Igen resource_server resource_server
Igen Igen web_application,resource_server,
resource_server_with_obo, web_application_and_resource_server
resource_server_with_obo

Konfigurálható tulajdonságok

A Microsoft Entra-azonosítóhoz készült Spring Boot Starter a következő tulajdonságokkal rendelkezik:

Tulajdonságok Leírás
spring.cloud.azure.active-directory.app-id-uri Az erőforrás-kiszolgáló használja a célközönség ellenőrzésére a hozzáférési jogkivonatban. A hozzáférési jogkivonat csak akkor érvényes, ha a célközönség megegyezik a korábban ismertetett <your-client-ID> vagy <your-app-ID-URI> értékekkel.
spring.cloud.azure.aktív-könyvtár.engedélyezés-kliens Egy térkép, amely konfigurálja azokat az erőforrás API-kat, amelyeket az alkalmazás meg fog látogatni. Minden elem egy erőforrás API-jának felel meg, amelyet az alkalmazás meg fog látogatni. A Spring-kódban minden elem egy OAuth2AuthorizedClient objektumnak felel meg.
spring.cloud.azure.active-directory.authorization-clients.<your-client-name>.hatókörök Az alkalmazás által beszerezni kívánt erőforrás-kiszolgáló API-engedélyei.
spring.cloud.azure.active-directory.authorization-clients.<your-client-name>. engedélyezés-engedélyezés típusa Az engedélyezési ügyfél típusa. A támogatott típusok a authorization_code (a webalkalmazás alapértelmezett típusa), on_behalf_of (az erőforrás-kiszolgáló alapértelmezett típusa), client_credentials.
spring.cloud.azure.aktív-könyvtár.alkalmazás-típus Tekintse meg alkalmazástípust.
spring.cloud.azure.active-directory.profile.environment.active-directory-endpoint Az engedélyezési kiszolgáló alap URI-ja. Az alapértelmezett érték a https://login.microsoftonline.com/.
spring.cloud.azure.active-directory.credential.client-id A regisztrált alkalmazásazonosító a Microsoft Entra ID-ben.
spring.cloud.azure.active-directory.hitelképesség.ügyfél-titok A regisztrált alkalmazás ügyfélkulcsa.
spring.cloud.azure.aktív-könyvtár.felhasználói-csoport.használ-transitív-tagok A v1.0/me/transitiveMemberOf használatával lekérheti a csoportokat, ha trueértékre van állítva. Ellenkező esetben használja a /v1.0/me/memberOf.
spring.cloud.azure.active-directory.post-logout-redirect-uri A kijelentkezés közzétételének átirányítási URI-ja.
spring.cloud.azure.active-directory.profile.tenant-id Az Azure-bérlő azonosítója. A tenant-id engedélyezett értékek a következők: common, organizations, consumersvagy bérlőazonosító.
spring.cloud.azure.active-directory.felhasználó-csoportok.engedélyezett-csoport-nevek Az elvárt felhasználói csoportok, amelyekhez egy hatóság jogot kap, ha a MemberOf Graph API-hívás válaszában szerepelnek.
spring.cloud.azure.active-directory.user-name-attributum Azt jelzi, hogy melyik jogcím lesz a megbízó neve.

Az alábbi példák bemutatják, hogyan használhatja ezeket a tulajdonságokat:

Tulajdonság példa 1: Az Azure Global helyett az Azure China 21Vianet használatához használja az alábbi lépést.

  • Adja hozzá a következő tulajdonságokat a application.yml fájlhoz:

    spring:
       cloud:
         azure:
           active-directory:
             enabled: true
             profile:
               environment:
                 active-directory-endpoint: https://login.partner.microsoftonline.cn
    

Ezzel a módszerrel egy Azure szuverén vagy nemzeti felhőt használhatja az Azure nyilvános felhő helyett.

2. tulajdonság példája: Ha egy webalkalmazásban egy metódus védelméhez csoportnevet szeretne használni, kövesse az alábbi lépéseket:

Adja hozzá a következő tulajdonságot a application.yml fájlhoz:

spring:
 cloud:
   azure:
     active-directory:
       enabled: true
       user-group:
         allowed-groups: group1, group2

Használja az alapértelmezett biztonsági konfigurációt, vagy adja meg a saját konfigurációját.

1. lehetőség: Használja az alapértelmezett konfigurációt. Ezzel a lehetőséggel nem kell semmit tennie. A DefaultAadWebSecurityConfiguration osztály automatikusan konfigurálva van.

2. lehetőség: Adjon meg egy saját konfigurációt. Konfiguráció megadásához alkalmazza a AadWebApplicationHttpSecurityConfigurer#aadWebApplicationHttpSecurity metódusát az alábbi példában látható módon:

@Configuration(proxyBeanMethods = false)
@EnableWebSecurity
@EnableMethodSecurity
public class AadOAuth2LoginSecurityConfig {

   /**
    * Add configuration logic as needed.
    */
   @Bean
   public SecurityFilterChain htmlFilterChain(HttpSecurity http) throws Exception {
       // @formatter:off
       http.with(AadWebApplicationHttpSecurityConfigurer.aadWebApplication(), Customizer.withDefaults())
           .authorizeHttpRequests(authorize -> authorize.anyRequest().authenticated());
       // @formatter:on
       // Do some custom configuration.
       return http.build();
   }
}

A metódus védelméhez használja a @PreAuthorize megjegyzést, ahogyan az a következő példában látható:

@Controller
public class RoleController {
   @GetMapping("group1")
   @ResponseBody
   @PreAuthorize("hasRole('ROLE_group1')")
   public String group1() {
       return "group1 message";
   }

   @GetMapping("group2")
   @ResponseBody
   @PreAuthorize("hasRole('ROLE_group2')")
   public String group2() {
       return "group2 message";
   }

   @GetMapping("group1Id")
   @ResponseBody
   @PreAuthorize("hasRole('ROLE_<group1-id>')")
   public String group1Id() {
       return "group1Id message";
   }

   @GetMapping("group2Id")
   @ResponseBody
   @PreAuthorize("hasRole('ROLE_<group2-id>')")
   public String group2Id() {
       return "group2Id message";
   }
}

3. tulajdonság példa: Az ügyfél hitelesítő adat áramlásának engedélyezéséhez egy erőforráskiszolgálón, amely más erőforráskiszolgálókat látogat, kövesse az alábbi lépéseket:

Adja hozzá a következő tulajdonságot a application.yml fájlhoz:

spring:
 cloud:
   azure:
     active-directory:
       enabled: true
       authorization-clients:
         webapiC:   # When authorization-grant-type is null, on behalf of flow is used by default
           authorization-grant-type: client_credentials
           scopes:
             - <Web-API-C-app-id-url>/.default

Az alábbi példához hasonló kódot adhat hozzá az alkalmazáshoz:

@PreAuthorize("hasAuthority('SCOPE_Obo.WebApiA.ExampleScope')")
@GetMapping("webapiA/webapiC")
public String callClientCredential() {
   String body = webClient
       .get()
       .uri(CUSTOM_LOCAL_READ_ENDPOINT)
       .attributes(clientRegistrationId("webapiC"))
       .retrieve()
       .bodyToMono(String.class)
       .block();
   LOGGER.info("Response from Client Credential: {}", body);
   return "client Credential response " + (null != body ? "success." : "failed.");
}

Speciális funkciók

Hozzáférés-vezérlés támogatása azonosító jogkivonat alapján egy webalkalmazásban

Az indító támogatja GrantedAuthority létrehozását egy azonosító jogkivonat roles jogcíméből, hogy lehetővé tegye az azonosító jogkivonat használatát a webalkalmazáson belüli engedélyezéshez. A Microsoft Entra ID appRoles funkciójával létrehozhat egy roles jogcímet, és implementálhatja a hozzáférés-vezérlést.

Jegyzet

A roles által létrehozott appRoles igény APPROLE_előtaggal van ellátva.

Amikor a appRoles-t roles jogcímként használja, kerülje el, hogy ugyanakkor roles csoportattribútumot konfiguráljon. Ellenkező esetben a csoportattribútum felülbírálja a jogcímet, hogy appRoleshelyett csoportinformációkat tartalmazzon. Kerülje a következő konfigurációt a jegyzékben:

"optionalClaims": {
    "idtoken": [{
        "name": "groups",
        "additionalProperties": ["emit_as_roles"]
    }]
}

Ha a hozzáférés-vezérlést azonosító jogkivonattal szeretné támogatni egy webalkalmazásban, kövesse az alábbi lépéseket:

Adjon hozzá alkalmazásszerepköröket az alkalmazásban, és rendelje hozzá őket felhasználókhoz vagy csoportokhoz. További információért lásd: Útmutató: Alkalmazásszerepkörök hozzáadása az alkalmazáshoz, és azok fogadása a tokenben.

Adja hozzá a következő appRoles konfigurációt az alkalmazás jegyzékfájljához:

 "appRoles": [
   {
     "allowedMemberTypes": [
       "User"
     ],
     "displayName": "Admin",
     "id": "2fa848d0-8054-4e11-8c73-7af5f1171001",
     "isEnabled": true,
     "description": "Full admin access",
     "value": "Admin"
    }
 ]

Az alábbi példához hasonló kódot adhat hozzá az alkalmazáshoz:

@GetMapping("Admin")
@ResponseBody
@PreAuthorize("hasAuthority('APPROLE_Admin')")
public String Admin() {
   return "Admin message";
}

Hibaelhárítás

Ügyfélnaplózás engedélyezése

A Java-hoz készült Azure SDK-k egységes naplózási történetet kínálnak az alkalmazáshibák elhárításához és megoldásához. A létrehozott naplók rögzítik az alkalmazás működésének menetét, mielőtt elérnék a terminált, segítve a gyökérprobléma azonosítását. A naplózás engedélyezéséhez kapcsolódó útmutatásért nézze meg a naplózási wikit.

Tavaszi naplózás engedélyezése

A Spring lehetővé teszi, hogy az összes támogatott naplózási rendszer beállítsa a naplózási szinteket a Spring-környezetben – például application.properties – olyan logging.level.<logger-name>=<level> használatával, ahol <level> az egyik TRACE, DEBUG, INFO, WARN, ERROR, FATALvagy OFF. A logging.level.root használatával konfigurálhatja a gyökérnaplózót.

Az alábbi példa az application.properties fájl lehetséges naplózási beállításait mutatja be:

logging.level.root=WARN
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR

A spring-i naplózási konfigurációval kapcsolatos további információkért lásd Naplózási a Spring dokumentációjában.

Következő lépések

Ha többet szeretne megtudni a Springről és az Azure-ról, lépjen tovább a Spring on Azure dokumentációs központjába.