我已经将spring security oauth2授权服务器实现为spring boot微服务。我试图让我们的主(非java)应用程序使用这个新服务迁移到oauth2。
我无法理解的一件事是如何设置它,以便授权服务器永远不会显示任何UI。特别是,有没有办法在我们的主应用程序上托管/ oauth / authorize UI,但是仍然接受代理授权批准?或者,该UI需要由授权服务器直接提供吗?
答案 0 :(得分:1)
您可以在UI应用程序中创建登录页面,登录将调用身份验证服务器,如:
curl -X POST -vu client:secret http://localhost:8081/spring-security-oauth-server/oauth/token -H "Accept: application/json" -d "password=password&username=user&grant_type=password&scope=read%20write&client_secret=secret&client_id=client"
您将收到一个访问令牌,该令牌将用于访问资源服务器中的端点,如:
curl http://localhost:8081/spring-security-oauth-resource/path/endpoint -H "Authorization: Bearer <Token>"
答案 1 :(得分:0)
用于登录的UI不需要位于授权服务器上(请参阅https://tools.ietf.org/html/rfc6749#section-4.3资源所有者密码凭据授权)。这使得客户端可以收集凭据并向授权服务器发出直接令牌请求。
但是,我一般不建议绕过AS UI,因为这意味着每个客户端应用程序都必须实现登录逻辑,并且您不会在这些客户端应用程序之间进行单点登录。