Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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:
- Azure-előfizetés; Ha még nem rendelkezik Azure-előfizetéssel, aktiválhatja MSDN-előfizetői előnyeit, vagy regisztrálhat egy ingyenes Azure-fiókra.
- Támogatott Java Development Kit (JDK), 8-es vagy újabb verzió. További információ: Java-támogatás az Azure-ban és az Azure Stack.
- Apache Maven3.0-s vagy újabb verziója.
- Microsoft Entra ID azonosítóval regisztrált alkalmazás. További információ: rövid útmutató: Alkalmazás regisztrálása a Microsoft identitásplatformon.
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:
- Webalkalmazás elérése
- Erőforrás-kiszolgálók elérése webalkalmazásból
- Erőforrás-kiszolgáló/API- védelme
- Más erőforráskiszolgálók elérése erőforrás-kiszolgálóról
- webalkalmazás és erőforrás-kiszolgáló egy alkalmazásban
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.
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
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
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
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ó:
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
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
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.