0

我已经实现了弹簧安全oauth2授权服务器作为弹簧引导微服务。我试图让我们的主(非Java)应用程序使用这个新服务迁移到oauth2。弹簧安全oauth2授权服务器没有任何UI

我无法理解的一件事是如何进行设置,以便授权服务器从不显示任何UI。特别是,有没有办法让我们的主应用程序托管/ oauth/authorize UI,但仍然接受代理授权批准?或者该UI是否需要由授权服务器直接提供?

回答

0

用于登录的用户界面不需要位于授权服务器上(请参阅https://tools.ietf.org/html/rfc6749#section-4.3资源所有者密码凭证授予)。这留给客户端来收集凭证并向授权服务器发出直接令牌请求。

但是,我通常不推荐绕过AS UI,因为这意味着每个客户端应用程序都必须实现登录逻辑,并且您不会在这些客户端应用程序之间获得单一登录。

+0

谢谢,我不是在谈论登录UI我谈论的是授权用户界面。 “授权应用程序访问您的电子邮件地址”授权流程的一部分。 – brub

+0

我不认为您可以使用授权代码授权流程并使用您的应用UI。如果您不想查看授权页面,则可以自动批准范围。例如,请参阅https://github.com/sdoxsee/jhipster-with-external-authserver/blob/master/authserver/src/main/java/demo/AuthserverApplication.java#L115。你为什么要在你的客户端应用程序上托管它? – sdoxsee

+0

我试图创建授权服务作为微服务,并希望在我们的“主”UI应用程序中托管UI。自动批准可能是一个合适的解决方法。 – brub

0

您可以在用户界面的应用程序创建一个登录页面,登录将调用类的认证服务器:

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>" 
+0

谢谢,是的,这是资源所有者密码授予 - 我正在使用它登录。我在谈论以类似的方式支持授权代码授权。 – brub