如何为OAuth2提供自定义客户端身份验证方案属性

时间:2017-06-12 19:09:47

标签: spring-boot spring-security spring-security-oauth2

我正在编写一个Springboot应用程序,需要对另一个组提供的OAuth2客户端的用户进行身份验证。 OAuth2客户端提供两种身份验证方案:formsso。我正在构建的应用程序需要使用sso方案,因为应用程序无法将用户重定向到登录表单。

Spring安全性包含一个枚举,提供可以使用的security.oauth2.client.client-authentication-scheme选项,sso不是提供的,因此我需要能够以某种方式扩展它或提供自定义选项。

最终,应用程序需要生成采用此格式的GET请求:https://iapi.mycompany.com/authentication-service/v2/authorize?response_type=code&client_id=myClientIdHere&redirect_uri=https:/myclient.mycompany.com/redirect&state=someStateString&login_method=sso

据我所知,它只是login_method=sso部分,它是需要生成的自定义部分。关于我如何说服Spring Security为我做这件事的任何想法?

1 个答案:

答案 0 :(得分:0)

原来,解决方案是在security.oauth2.client.client-authentication-scheme中注释掉application.properties媒体资源,并将?login-method=sso附加到security.oauth2.client.user-authorization-uri媒体资源。

最终属性如下所示:

security.oauth2.client.user-authorization-uri=https://iapi.mycompany.com/authentication-service/v2/authorize?login_method=sso