我目前正在使用spring-security和spring boot调查OAuth2。虽然这个协议的概念对我来说非常清楚,但实现细节却不是(spring没有提供很多示例和教程来使用)。因此,我将非常感谢回答以下问题:
授权服务器(如果我错了,请更正我)能够检查客户端应用程序是否具有请求资源的权限。据我所知,它不应该知道用户(资源所有者)。在我通过谷歌进行身份验证的情况下,Facebook或其他一些服务用户身份验证就是他们的情况。那么OAuth2和Resources Server是一个应用程序的应用程序(我目前正在开发用于测试目的的应用程序),我应该放置UserDetailsService?如何组合它以便首先授权客户端(在这种情况下从应用程序生成的js),然后用户(资源所有者)并生成令牌? Currenly我已经实现了ClientDetailService并注入了配置。我应该在哪里注入UserDetailService?
@Configuration
@EnableAuthorizationServer
public class OAuth2Config extends AuthorizationServerConfigurerAdapter {
@Autowired
private AuthenticationManager authenticationManager;
@Autowired
private MongoClientDetailsService cds;
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints.authenticationManager(authenticationManager);
}
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients.withClientDetails(cds);
}
}
是否有一些JS库可以帮助自定义应用程序(如hello.js)的授权流程支持(据我所知)众所周知的服务?
任何帮助将不胜感激:)
答案 0 :(得分:0)
这是很多问题;让我先回答3:
值为grant_type
的{{1}}是资源所有者密码凭据授权类型的官方保留值,如此处的规范所示:https://tools.ietf.org/html/rfc6749#section-4.3.2所以它不是Spring具体或定制
RS可以验证令牌本身,如果它是自包含和结构化的(例如JWT),或者它需要回拨给授权服务器以验证它
步骤2的验证结果可能包含有关授予客户访问权限的用户(或:资源所有者)的信息