日常bb

日常bb

Spring Security Oauth2

50
2022-10-03
Spring Security Oauth2

Spring Security Oauth2

Oauth2.0协议

Oauth2.0是目前最流行的授权机制,用来授权第三方应用,获取用户数据。

阮一峰-OAuth 2.0 的一个简单解释

解决了哪些问题?

  1. 颁发的令牌明确限制只能访问部分资源,并不是所有。
  2. 令牌会存在有效期,有效期过后需要用户重新授权。
  3. 不会暴露用户的密码,而是使用的令牌。

Oauth2.0协议中的角色:

  • 服务提供商Provider:谁提供令牌谁就是服务提供商。
  • 资源所有者Resource Owner:资源是指用户相关数据,所有者是用户。
  • 第三方应用Client:想获取资源的应用。

Oauth2.0协议运行流程

Oauth2.0四种授权方式

  1. 授权码模式(authorization code)
  2. 简化模式(implicit)
  3. 密码模式(resource owner password credentials)
  4. 客户端模式(client credentials)

阮一峰-OAuth 2.0 的四种方式

Spring Security Oauth

Spring Security Oauth

实现Oauth协议中服务提供商这个角色它的所有功能,实际上就是两个服务器。

  • 认证服务器

认证服务器中需要实现四种授权模式(授权码模式、简化模式、客户端模式、密码模式),Spring Security OAuth里面四种模式已经实现了,用户信息生成Token和存储也提供了一套默认的实现。

  • 资源服务器

所谓的资源服务器就是要保护我们的资源,采用Spring Security过滤器链加上个OAuth2AuthenticationProcessingFilter

OAuth2AuthenticationProcessingFilter

作用:从请求中获取我们认证服务器发出去的Token,获取到Token后会根据我们在认证服务器中存储Token的存储策略去对应的存储中找到Token信息,然后根据用户信息是否存在,是否有权限来判断是否能访问资源。