Spring Boot, OAuth2与azure和其他提供商(例如google)



我有一个使用Azure Active directory进行身份验证的应用程序,我需要添加另一个提供商,例如google。

@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends AadWebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
super.configure(http);
http.authorizeRequests()
.anyRequest().authenticated();
}
}

spring:
cloud:
azure:
active-directory:
enabled: true
profile:
tenant-id: 
#        credential:
client-id: 
client-secret: 
security:
oauth2:
client:
registration:
google:
client-id: 
client-secret: 

使用以上代码将强制azure登录。

我怎么能适应代码有两个选项azure和谷歌?

我没有设法使它与spring-cloud-azure-starter-active-directory一起工作,所以我删除了这个插件并使用:

spring:
security:
oauth2:
client:
registration:
google:
client-id: 
client-secret:
azure:
client-id: 
client-secret: 
scope:
- openid
- profile
- email
authorization-grant-type: authorization_code
redirect-uri: http://localhost:8080/login/oauth2/code/azure
provider: azure-active-directory
provider:
azure-active-directory:
issuer-uri: https://login.microsoftonline.com/{tenant-id}/v2.0

这个例子帮助了我https://github.com/Azure-Samples/azure-spring-boot-samples/blob/spring-cloud-azure_v4.4.1/aad/spring-security/servlet/oauth2/login/src/main/resources/application.yml

相关内容

最新更新