Spring Security Oauth2
54
2022-10-03
Spring Security Oauth2
Oauth2.0协议
Oauth2.0
是目前最流行的授权机制,用来授权第三方应用,获取用户数据。
解决了哪些问题?
- 颁发的令牌明确限制只能访问部分资源,并不是所有。
- 令牌会存在有效期,有效期过后需要用户重新授权。
- 不会暴露用户的密码,而是使用的令牌。
Oauth2.0
协议中的角色:
- 服务提供商
Provider
:谁提供令牌谁就是服务提供商。 - 资源所有者
Resource Owner
:资源是指用户相关数据,所有者是用户。 - 第三方应用
Client
:想获取资源的应用。
Oauth2.0
四种授权方式
- 授权码模式(authorization code)
- 简化模式(implicit)
- 密码模式(resource owner password credentials)
- 客户端模式(client credentials)
Spring Security Oauth
实现Oauth
协议中服务提供商这个角色它的所有功能,实际上就是两个服务器。
- 认证服务器
认证服务器中需要实现四种授权模式(授权码模式、简化模式、客户端模式、密码模式),
Spring Security OAuth
里面四种模式已经实现了,用户信息生成Token和存储也提供了一套默认的实现。
- 资源服务器
所谓的资源服务器就是要保护我们的资源,采用
Spring Security
过滤器链加上个OAuth2AuthenticationProcessingFilter
。
OAuth2AuthenticationProcessingFilter
作用:从请求中获取我们认证服务器发出去的Token
,获取到Token
后会根据我们在认证服务器中存储Token
的存储策略去对应的存储中找到Token
信息,然后根据用户信息是否存在,是否有权限来判断是否能访问资源。
- 0
- 0
-
分享