【发布时间】:2021-05-25 22:25:52
【问题描述】:
我想在 Spring Boot 2.4 中将 Azure AD 添加为 OAuth2 提供程序。我跟着Spring Boot's OAuth2 docs,想出了如下配置:
spring.security.oauth2.client.provider.azuread.issuer-uri=https://login.microsoftonline.com/<tenant uuid>/v2.0
spring.security.oauth2.client.registration.azuread.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.azuread.client-id=<client uuid>
spring.security.oauth2.client.registration.azuread.client-name=Azure AD
spring.security.oauth2.client.registration.azuread.client-secret=<client secret>
spring.security.oauth2.client.registration.azuread.provider=azuread
spring.security.oauth2.client.registration.azuread.scope=openid
为了完整起见,这是我的网络安全配置:
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// @formatter:off
http
.authorizeRequests(a -> a
.antMatchers("/", "/login", "/error", "/webjars/**").permitAll()
.anyRequest().authenticated()
)
.oauth2Login();
// @formatter:on
}
}
在https://login.microsoftonline.com 上输入凭据返回时,我收到以下错误:
[invalid_id_token] An error occurred while attempting to decode the Jwt: Signed JWT rejected: Another algorithm expected, or no matching key(s) found.
问题源于 Nimus-JOSE-JWT 的 DefaultJWTProcessor.java。
查看 Firefox 网络检查器中的请求,Spring Boot 从 Issuer URI 中选择正确的 URL。我不知道出了什么问题,感谢任何指点。
【问题讨论】:
-
你有什么进展吗?
标签: spring-boot spring-security oauth-2.0 azure-active-directory