粗略翻译:Spring Oauth2 官方文档(OAuth 2 Developers Guide)

前言:

最近在使用Spring OAuth2.0来搭建一个单点登录的系统,查看了一些文档,自己做了一些粗浅的翻译(毕竟英文水平太LOW)。有些地方用了Google的机翻。磕磕绊绊,总之是完成了。勉强凑合能看。

下面是正文:

OAuth2.0 provider(提供者)
OAuth2.0提供者机制为暴露Oauth2保护的资源提供了可能。配置涵盖了建立OAuth2.0客户端,这个客户端可以独立的访问它保护的资源或者代替用户访问。这个Provider通过管理和核查OAuth2.0用来访问保护资源的tokens来实现访问资源的功能。可能的情况下,Provider还需要给用户提供一个可以授权进入保护资源的接口 。

Oauth2.0 Provider 实现
Oauth2.0 的 Provider规则实际上被分割成Authorization Service(授权服务)和Resource Service(资源服务),当他们在一个Spring Security Oauth应用中,你可以选择将他们分成两个不同的应用或者多个资源服务共享一个授权服务。tokens的请求被Spring MVC的Controller处理,进入保护资源的动作是通过Spring Security 请求Filters(过滤器)来处理。
下面列出的endpoints(终端)在Spring Security过滤链中用来实现Oauth2.0的授权服务。
AuthorizationEndpoint :用来处理授权请求,默认的请求URL:/oauth/authorize
TokenEndpoint: 用来处理access tokens请求,默认的URL: /oauth/token
下面的过滤器用来实现一个OAuth2.0的资源服务
OAuth2AuthenticationProcessingFilter:被用来加载一个鉴定带有已认证的access token 请求的Authen(鉴定器)
对于完全的OAuth2.0的Provider的特征,可以通过使用Spring Oauth @Configuration适配器来简单的配置。或者也可以使用XML的OAuth命名空间配置。标准的 schema(描述)在 http://www.springframework.org/schema/security/spring-security-oauth2.xsd ,命名空间的配置在 http://www.springframework.org/schema/security/oauth2。

Authorization Server(授权服务器)配置
当你配置一个授权服务器的时候,你需要考虑client(客户端)经常从终端用户处获得一个access token的授权类型。(例子:authorization code ,user credentials , refresh token )。这个服务器配置用来提供client details service (客户端描述服务)和token services (token服务)和 全局的某些机制的实现。注意,无论何时,客户端都可以被明确的配置是否使用某些机制和拥有准入授权的权限。也就是说,只是因为你的provider配置了支持client credentials授权类型,并不意味着一个特殊的客户端有权使用这个授权类型。
@EnableAuthorizationServer注解和任何实现了AuthorizationServerConfigurer的@Bean(已经有一个便利的适配器实现了接口,但是方法都是空的。)一起用来配置OAuth2,0的授权服务机制。下面的各个Configurer是配置全部AuthorizationServerConfigurer的各个部分,他们被Spring组织起来完成整个AuthorizationServerConfigurer的配置。
ClientDetailsServiceConfigurer:定义ClientDetailsSercvice(客户端描述服务)的配置对象。Client details可以配初始化或者参考一个已经存在的存储。
AuthorizationServerSecurityConfigurer:定义在token终端上的安全约束条件。
AuthorizationServerEndpointsConfigurer:用来定义授权,token终端和token服务器

Provider配置的一个很重要的方面是授权码被提供给一个Oauth客户端的方式(在 authorization code授权中)。客户端获得一个授权码是用过重定向终端用户去一个授权页面,在这个授权页面上,用户可以输入他们的凭证(用户名,密码,或者其他证明自己身份的协议)。用户获得一个客户端页面,拥有授权码的返回。这个执行过程的例子在OAuth2的说明中有详细的例子。

在XML的配置中使用<authorization-server>配置。
配置一个Client Details
ClientDetailsServiceConfigurer可以使用一个定义 in-memory或者定义一个JDBC实现ClientDetailsService。一个客户端的重要的属性是:
clientId:(必要)客户端id;(数据库中的主键)
secret:(信任客户端必要)客户端密码,或者没有
scope:客户端的限制范围,如果它是null或者没有定义,那么客户端没有限制范围
authorizedGrantTypes:授权类型,用来指定客户端可以被授权的类型,默认是空
authorities:客户端被赋予的权限。

Client details可以被更新在一个正在执行的应用中,通过更底层的保存接口(数据库的表,利用JdbcClientDetailsService)或者通过ClientDetailsManager接口(它同时实现了ClientDetailsService)。
注意:JDBC
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值