A Spring Boot Starter for Microsoft Entra fejlesztői útmutatója

Ez a cikk a következőre vonatkozik: ✔️ 4.18.0 ✔️ 5.12.0-s verzió

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 olyan webalapú alkalmazások, amelyek lehetővé teszik a felhasználók számára a bejelentkezést. Az erőforrás-kiszolgáló a hozzáférési jogkivonat érvényesítése után elfogadja vagy megtagadja a hozzáférést.

Webalkalmazás elérése

Ez a forgatókönyv az OAuth 2.0 engedélyezési kód engedélyezési folyamatával teszi lehetővé, hogy a felhasználó bejelentkezzen 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 az <application-base-uri/login/oauth2/code/-ra>. Például: http://localhost:8080/login/oauth2/code/ Ügyeljen arra, hogy a zárót /is tartalmazza. Az átirányítási URI-val kapcsolatos további információkért lásd: Átirányítási URI hozzáadása a rövid útmutatóban: Alkalmazás regisztrálása a Microsoft Identitásplatform.

Képernyőkép az Azure Portalról, amelyen a Microsoft Entra Alkalmazásregisztrációk lap van kiemelve a minta-webalkalmazással.

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>

Feljegyzés

A Spring Cloud Azure-kódtár verzióinak anyagjegyzék (BOM) használatával történő kezelésével kapcsolatos további információkért tekintse meg a Spring Cloud Azure fejlesztői útmutatójának Első lépések szakaszát.

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>

Feljegyzés

Az engedélyezett tenant-id értékek a következők: common, organizations, consumersvagy a bérlőazonosító. Ezekről az értékekről további információt a AADSTS50020 – Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlőben című hiba helytelen végpontja (személyes és szervezeti fiókok) című szakaszában talál. Az egybérlős alkalmazás konvertálásával kapcsolatos információkért lásd : Egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra-azonosítón.

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. Az DefaultAadWebSecurityConfigurerAdapter osztály automatikusan konfigurálva van.

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

Konfiguráció megadásához bővítse ki az AadWebSecurityConfigurerAdapter osztályt és hívja super.configure(http) meg a configure(HttpSecurity http) függvényt az alábbi példában látható módon:

@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class AadOAuth2LoginSecurityConfig extends AadWebSecurityConfigurerAdapter {

   /**
    * Add configuration logic as needed.
   */
   @Override
   protected void configure(HttpSecurity http) throws Exception {
       super.configure(http);
       http.authorizeRequests()
           .anyRequest().authenticated();
       // Do some custom configuration.
   }
}

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>

Feljegyzés

A Spring Cloud Azure-kódtár verzióinak anyagjegyzék (BOM) használatával történő kezelésével kapcsolatos további információkért tekintse meg a Spring Cloud Azure fejlesztői útmutatójának Első lépések szakaszát.

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

Feljegyzés

Az engedélyezett tenant-id értékek a következők: common, organizations, consumersvagy a bérlőazonosító. Ezekről az értékekről további információt a AADSTS50020 – Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlőben című hiba helytelen végpontja (személyes és szervezeti fiókok) című szakaszában talál. Az egybérlős alkalmazás konvertálásával kapcsolatos információkért lásd : Egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra-azonosítón.

Itt található az Ön OAuth2AuthorizedClientneve, graph és scopes a bejelentkezé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);
}

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

A forgatókönyvet bemutató teljes minta: spring-cloud-azure-starter-active-directory sample: 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>

Feljegyzés

A Spring Cloud Azure-kódtár verzióinak anyagjegyzék (BOM) használatával történő kezelésével kapcsolatos további információkért tekintse meg a Spring Cloud Azure fejlesztői útmutatójának Első lépések szakaszát.

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 az ügyfél-azonosítót> és <az ön-app-ID-URI> értékeit is.< Az alkalmazásazonosító-URI> értékét 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 Microsoft Entra Alkalmazásregisztrációk lap van kiemelve a mintaerőforrás-kiszolgálóval.

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 nincs szükség semmire. Az DefaultAadResourceServerWebSecurityConfigurerAdapter osztály automatikusan konfigurálva van.

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

Konfiguráció megadásához bővítse ki az AadResourceServerWebSecurityConfigurerAdapter osztályt és hívja super.configure(http) meg a configure(HttpSecurity http) függvényt az alábbi példában látható módon:

@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class AadOAuth2ResourceServerSecurityConfig extends AadResourceServerWebSecurityConfigurerAdapter {

   /**
    * Add configuration logic as needed.
    */
   @Override
   protected void configure(HttpSecurity http) throws Exception {
       super.configure(http);
       http.authorizeRequests((requests) -> requests.anyRequest().authenticated());
   }
}

A forgatókönyvet bemutató teljes minta: spring-cloud-azure-starter-active-directory sample: 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 a más erőforráskiszolgálókra látogató erőforrás-kiszolgálót.

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>

Feljegyzés

A Spring Cloud Azure-kódtár verzióinak anyagjegyzék (BOM) használatával történő kezelésével kapcsolatos további információkért tekintse meg a Spring Cloud Azure fejlesztői útmutatójának Első lépések szakaszát.

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

Feljegyzés

Az engedélyezett tenant-id értékek a következők: common, organizations, consumersvagy a bérlőazonosító. Ezekről az értékekről további információt a AADSTS50020 – Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlőben című hiba helytelen végpontja (személyes és szervezeti fiókok) című szakaszában talál. Az egybérlős alkalmazás konvertálásával kapcsolatos információkért lásd : Egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra-azonosítón.

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

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

A forgatókönyvet bemutató teljes minta: spring-cloud-azure-starter-active-directory sample: aad-resource-server-obo.

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

Ez a forgatókönyv támogatja a webalkalmazások elérését és az erőforrás-kiszolgáló/API védelmét egy alkalmazásban.

aad-starter Ebben a forgatókönyvben az alábbi lépéseket kell követnie:

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>

Feljegyzés

A Spring Cloud Azure-kódtár verzióinak anyagjegyzék (BOM) használatával történő kezelésével kapcsolatos további információkért tekintse meg a Spring Cloud Azure fejlesztői útmutatójának Első lépések szakaszát.

Frissítse a application.yml fájlt. Állítsa be a tulajdonságot spring.cloud.azure.active-directory.application-type a következőre web_application_and_resource_server, é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

Feljegyzés

Az engedélyezett tenant-id értékek a következők: common, organizations, consumersvagy a bérlőazonosító. Ezekről az értékekről további információt a AADSTS50020 – Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlőben című hiba helytelen végpontja (személyes és szervezeti fiókok) című szakaszában talál. Az egybérlős alkalmazás konvertálásával kapcsolatos információkért lásd : Egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra-azonosítón.

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

A következő példakód két biztonsági konfigurációt tartalmaz, AadWebApplicationAndResourceServerConfig egyet egy erőforrás-kiszolgálóhoz, egyet pedig egy webalkalmazáshoz. Az ApiWebSecurityConfigurationAdapter osztály kiemelt prioritással rendelkezik az erőforrás-kiszolgáló biztonsági adapterének konfigurálásához. Az HtmlWebSecurityConfigurerAdapter osztály alacsony prioritással rendelkezik a webalkalmazás biztonsági adapterének konfigurálásához.

@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class AadWebApplicationAndResourceServerConfig {

   @Order(1)
   @Configuration
   public static class ApiWebSecurityConfigurationAdapter extends AadResourceServerWebSecurityConfigurerAdapter {
       protected void configure(HttpSecurity http) throws Exception {
           super.configure(http);
           // All the paths that match `/api/**`(configurable) work as the esource server. Other paths work as  the web application.
           http.antMatcher("/api/**")
               .authorizeRequests().anyRequest().authenticated();
       }
   }

   @Configuration
   public static class HtmlWebSecurityConfigurerAdapter extends AadWebSecurityConfigurerAdapter {

       @Override
       protected void configure(HttpSecurity http) throws Exception {
           super.configure(http);
           // @formatter:off
           http.authorizeRequests()
                   .antMatchers("/login").permitAll()
                   .anyRequest().authenticated();
           // @formatter:on
       }
   }
}

Alkalmazástípus

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

Függősége van: spring-security-oauth2-client Függősége van: 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 ügyfél-azonosítóval> vagy <az Ön alkalmazásazonosító-URI-értékeivel>.<
spring.cloud.azure.active-directory.authorization-clients 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.scopes> Az alkalmazás által beszerezni kívánt erőforrás-kiszolgáló API-engedélyei.
spring.cloud.azure.active-directory.authorization-clients.<a-client-name.authorization-grant-type> 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.active-directory.application-type Tekintse meg az alkalmazás típusát.
spring.cloud.azure.active-directory.profile.environment.active-directory-endpoint Az engedélyezési kiszolgáló alap URI-ja. Az alapértelmezett érték https://login.microsoftonline.com/.
spring.cloud.azure.active-directory.credential.client-id A Regisztrált alkalmazásazonosító a Microsoft Entra-azonosítóban.
spring.cloud.azure.active-directory.credential.client-secret A regisztrált alkalmazás ügyféltitkára.
spring.cloud.azure.active-directory.user-group.use-transitive-members Ha igaz értékre van állítva, csoportok lekérésére használhatóv1.0/me/transitiveMemberOf. Ellenkező esetben használja a következőt /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. Az engedélyezett tenant-id értékek a következők: common, organizations, consumersvagy a bérlőazonosító.
spring.cloud.azure.active-directory.user-group.allowed-group-names A graph API-hívás válaszában MemberOf szereplő, a hatóság által megadott várt felhasználói csoportok.
spring.cloud.azure.active-directory.user-name-attribútum Azt jelzi, hogy melyik jogcím lesz az ügyfél neve.

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

1. tulajdonság példa: Ha az Azure China 21Vianet-et szeretné használni az Azure Global helyett, kövesse 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 azure-beli szuverén vagy nemzeti felhőt használhat az Azure nyilvános felhő helyett.

2. tulajdonság példa: Ha egy webalkalmazás valamely metódusának 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. Az DefaultAadWebSecurityConfigurerAdapter osztály automatikusan konfigurálva van.

2. lehetőség: Adjon meg egy saját konfigurációt. Konfiguráció megadásához bővítse ki az AadWebSecurityConfigurerAdapter osztályt és hívja super.configure(http) meg a configure(HttpSecurity http) függvényt az alábbi példában látható módon:

@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class AadOAuth2LoginSecurityConfig extends AadWebSecurityConfigurerAdapter {

   /**
    * Add configuration logic as needed.
    */
   @Override
   protected void configure(HttpSecurity http) throws Exception {
       super.configure(http);
       http.authorizeRequests()
           .anyRequest().authenticated();
       // Do some custom configuration.
   }
}

Használja a @PreAuthorize széljegyzetet a metódus védelmére, ahogy az a következő példában is 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: Ha engedélyezni szeretné az ügyfél hitelesítő adatait az erőforrás-kiszolgálókat látogató erőforrás-kiszolgálón, 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

A kezdő támogatja az azonosító jogkivonat roles jogcíméből való létrehozástGrantedAuthority, hogy lehetővé tegye az azonosító jogkivonat használatát egy webalkalmazásban való engedélyezéshez. A Microsoft Entra ID funkciójával appRoles jogcímet roles hozhat létre, és hozzáférés-vezérlést valósíthat meg.

Feljegyzés

A roles létrehozott appRoles jogcím előtaggal APPROLE_van díszítve.

Ha jogcímként roles használjaappRoles, kerülje a csoportattribútum roles egyidejű konfigurálását. Ellenkező esetben a csoportattribútum felülbírálja a jogcímet, hogy a csoportinformációk helyett a csoportinformációkat appRolestartalmazza. 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ó : Alkalmazásszerepkörök hozzáadása az alkalmazáshoz, és azok fogadása a jogkivonatban.

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 folyamatát, mielőtt elérnék a terminált, segítve a gyökérproblémát. A naplózás engedélyezésével kapcsolatos útmutatásért tekintse 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ói szinteket a Spring-környezetben (például az application.propertiesben) a TRACE, DEBUG, INFO, WARN, ERROR, FATAL vagy OFF szint egyikének használatávallogging.level.<logger-name>=<level>. A gyökérnaplózót a következővel logging.level.rootkonfigurálhatja: .

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 tekintse meg a naplózást a Spring dokumentációjában.

Következő lépések

Ha szeretne többet megtudni a Spring és az Azure szolgáltatásról, lépjen tovább a Spring on Azure dokumentációs központra.