【问题标题】:Spring OAuth2 explain Authorization server configurationSpring OAuth2详解授权服务器配置
【发布时间】:2016-12-12 23:13:37
【问题描述】:

我正在尝试实现 OAuth 安全性,但遇到了一个对我来说配置类不够清晰的问题。

在实现AuthorizationServerConfigurer 时,我有三个配置器:

  • ClientDetailsServiceConfigurer 用于提供如何以及从何处获取客户详细信息的方式。例如,它可以是从数据库中提供注册客户的服务。

当谈到AuthorizationServerSecurityConfigurerAuthorizationServerEndpointsConfigurer 时,我不确定它们是做什么的或应该如何配置它们。在documentation 中只说:

AuthorizationServerEndpointsConfigurer:定义授权和 令牌端点和令牌服务。

也许有人可以简单地解释一下这两个配置器的作用,或者它们的用途。

【问题讨论】:

    标签: java spring spring-security oauth-2.0 spring-security-oauth2


    【解决方案1】:

    我正在使用 spring-security-oauth,有一个有用的文档可能对你有帮助:

    projects.spring.io/spring-security-oauth/docs/oauth2.html

    【讨论】:

    • Thnx 但我发布了相同的文档链接。
    • 抱歉,我没看到。当您使用授权代码授权类型时,oauth2 令牌获取流程会发生变化,在发送用户/密码后,您会使用自动代码重定向到另一个 url。 AuthorizationServerEndpointsConfigurer 具有文档中提到的多个 Rest 值。其中之一是 /oauth/authorize 配置为在用户批准 oauth2 资源使用后重新触发的 url。您可以通过 AuthorizationServerEndpointsConfigurer 配置这些 url,但对于授权服务器来说还不够。您必须向会话存储声明会话共享策略。
    • 或存储客户端凭据(InMemory 或 Jdbc 类型)或配置端点保护或定义令牌标头名称和一堆概念的策略...
    • 每个类都配置了一些设置,必须自定义...
    【解决方案2】:

    AuthorizationServerConfigurer 的 javadoc 比链接的文档提供更多信息。 AuthorizationServerSecurityConfigurer,顾名思义,就是配置授权服务器本身的安全性。例如,您可以覆盖 OAuth 端点安全性,例如 /oauth/token,提供拒绝访问处理程序或限制 SSL 访问。以下是文档所说的:

    配置授权服务器的安全性,这意味着在 实用术语/oauth/token 端点。 /oauth/authorize 端点也需要是安全的,但这是一个正常的面向用户的 端点,并且应该以与 UI 的其余部分相同的方式进行保护,所以 这里不涉及。 默认设置涵盖了最常见的 要求,遵循 OAuth2 规范中的建议,因此您 无需在此处执行任何操作即可启动并运行基本服务器。

    至于AuthorizationServerEndpointsConfigurer

    配置授权服务器的非安全特性 端点,例如令牌存储、令牌自定义、用户批准和 授予类型。默认情况下你不需要做任何事情,除非你 需要密码授权,在这种情况下,您需要提供 AuthenticationManager.

    这是我的一个项目的示例:

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
        endpoints
                .authenticationManager(authenticationManager)
                .tokenStore(jwtTokenStore())
                .tokenEnhancer(tokenEnhancer());
    }
    

    这里我提供了一个JwtTokenStore 作为我的TokenStore 和一个AuthenticationManager,因为我使用的是密码授予

    【讨论】:

    • 很快:'AuthorizationServerSecurityConfigurer' 配置任何请求访问服务器的方式。而AuthorizationServerEndpointsConfigurer 配置策略如何存储和提供令牌。我说的对吗?
    猜你喜欢
    • 2015-11-19
    • 2015-03-31
    • 2017-11-30
    • 2015-05-22
    • 1970-01-01
    • 2016-05-21
    • 2014-07-09
    • 2017-08-09
    • 2018-11-13
    相关资源
    最近更新 更多