我想在Spring Boot 2.4中添加Azure AD作为OAuth2提供程序。我遵循了Spring Boot的OAuth2文档,并提出了以下配置:
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.
问题源于DefaultJWTProcessor。Nimus JOSE JWT提供的java。
通过查看Firefox网络检查器中的请求,Spring Boot从颁发者URI中选择正确的URL。我不知道出了什么问题,很欣赏任何指点。
根据您的描述,您似乎想在Spring Boot中使用azure ad作为OAuth2提供程序,我发现一个文档说“Azure Active Directory(AD)的Spring Starter现在已与Spring Security 5.0集成”。它还提供了一个springbooweb应用程序示例。我也试了一下,它确实有效。
我认为需要注意的是,教程说azure ad中设置的重定向url是'http://localhost:8080/login/oauth2/code/'但当我测试时,它被证明是'http://localhost:8080/login/oauth2/code/azure'。
在您的错误,我不确定,但也许你可以更改您的配置范围到openid,配置文件,offline_access。
我有一个类似的问题,如果我没记错的话,范围也有问题。不知道这是否也是您的问题,但在任何情况下,以下配置都适用于我(注意,我使用的是客户端凭据,而不是身份验证代码):
spring:
security:
oauth2:
client:
provider:
azure:
token-uri: https://login.microsoftonline.com/${custom.azure.account.tenant-id}/oauth2/token
registration:
azure:
client-id: ${custom.azure.service-principal.client-id}
client-secret: ${custom.azure.service-principal.client-secret}
authorization-grant-type: client_credentials
scope:
- https://graph.microsoft.com/.default
Azure AD有一些非常不直观(在我看来)的默认行为-我认为这就是你正在经历的:
你的问题原因(我想)
你需要做什么
更多信息
在这里尝试看看是否有人已经用Rundeck对AD进行了LDAP身份验证。我正在使用RunDesk的JRE运行方法。以下是我到目前为止所做的工作: 我已经设置了jaas-ldap.conf,如Rundeck authentication users页面所示 我已向管理员请求ssl证书。要使用ldaps,rundeck需要ssl证书,这是在他们的站点上编写的。获得证书后,他们提到以下两个步骤: 一旦获
我正在尝试使用keycloak为我的rest apis在Spring云网关中设置o auth2身份验证。keyclcoak将我的请求重定向到登录页面,同时将访问令牌作为承载令牌传递。在许多地方,我发现解决方案是在keycloak适配器中设置bearer-only=true。在使用spring-boot-starter-oauth2-Client时在哪里设置此项。我无法使用keycloak-spri
我们已经看到了一些与Spring Boot的1.5+版本的健康执行器endpoint相关的问题。经历了其中的一些,我们仍然不知所措。 我们的目标是: 要利用Spring Boot/Spring security对安全筛选器链接的自动配置(即不必完全实现/配置) 启用安全的运行状况访问(查看应用程序的运行状况信息的完整视图) 启用不安全的运行状况访问(允许endpoint在Kubernetes中充当
我正在尝试使与和一起工作。我试着按照spring-boot-sample-secure和spring-boot-sample-web-secure中的指南去做,但是我没有让它起作用。 我正在尝试构建一个没有任何ui交互的REST应用程序。因此,我发现这两个样品都不完全适合我的目的。目前我的解决方案是使用AOP。 解决方案对我有效。然而,我想知道这是否是一个好的解决方案。我很好奇是否有更好的解决办法
实际上,我们正在开发一个应用程序,在Spring boot 1.5中,通过oauth2实现的Spring security完成身份验证和授权,现在我们有一个要求,在身份验证部分,拆分身份验证,并将身份验证部分转移到第三方,即SAML集成, 流程:登录- 如何在my spring security中仅使用userid授权用户,并生成自定义令牌(自定义任何spring security筛选器), 如何