更多相关文章请见:Spring Security文章目录
1、简介
OAuth 2.0定义了五种授权方式。
RFC规范链接
- authorization_code:授权码类型,授权系统针对登录用户下发code,应用系统拿着code去授权系统换取token。
- implicit:隐式授权类型。authorization_code的简化类型,授权系统针对登录系统直接下发token,302 跳转到应用系统url。
- password:资源所有者(即用户)密码类型。应用系统采集到用户名密码,调用授权系统获取token。
- client_credentials:客户端凭据(客户端ID以及Key)类型。没有用户参与,应用系统单纯的使用授权系统分配的凭证访问授权系统。
- refresh_token:通过授权获得的刷新令牌 来获取 新的令牌。
2、请求说明
2.1、相关配置
2.1.1、授权服务支持客户端
自动授权client
client_id=client_id
client_secret=client_secret
非自动授权client
client_id=client2
client_secret=client2
2.1.2、相关属性说明
- clientId:(必须的)用来标识客户的Id。
- secret:(需要值得信任的客户端)客户端安全码,如果有的话。
- scope:用来限制客户端的访问范围,如果为空(默认)的话,那么客户端拥有全部的访问范围。
- authorizedGrantTypes:此客户端可以使用的授权类型,默认为空。
- authorities:此客户端可以使用的权限(基于Spring Security authorities)。
- jti:TOKEN_ID ,refreshToken标识
- ati:ACCESS_TOKEN_ID,accessToken 标识
2.1.3、相关接口说明:
- /oauth/authorize:授权端点。
- /oauth/token:令牌端点,获取token。
- /oauth/confirm_access:用户确认授权提交端点。
- /oauth/error:授权服务错误信息端点。
- /oauth/check_token:用于资源服务访问的令牌解析端点。
- /oauth/token_key:提供公有密匙的端点,如果你使用JWT(RSA)令牌的话。
2.1.4、demo参考:
2.2、授权码模式(authorization_code)
1、请求授权:
请求:
GET http://localhost:8080/uaa/oauth/authorize?client_i