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:
- Egy Azure-előfizetés. Ha még nincs Azure-előfizetése, aktiválhatja MSDN-előfizetői előnyeit, vagy regisztrálhat egy ingyenes Azure-fiókot.
- 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 Stackben.
- Apache Maven, 3.0-s vagy újabb verzió.
- 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ásplatform.
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áskiszolgá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 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.
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
, consumers
vagy 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
, consumers
vagy 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 OAuth2AuthorizedClient
neve, 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ó:
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
, consumers
vagy 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
, consumers
vagy 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 , consumers vagy 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 appRoles
tartalmazza. 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.root
konfigurá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.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: