右侧
当前位置:网站首页 > 资讯 > 正文

oauth权限设计,auth权限管理设计

作者:admin 发布时间:2024-02-10 23:30 分类:资讯 浏览:11 评论:0


导读:oauth2.0怎么用?1、前后端分离单页面应用(spa):前后端分离框架,前端请求后台数据,需要进行oauth2安全认证,比如使用vue、react后者h5开发的app。OAu...

oauth2.0怎么用?

1、前后端分离单页面应用(spa):前后端分离框架,前端请求后台数据,需要进行oauth2安全认证,比如使用vue、react后者h5开发的app。OAuth 0的运行流程如下图,摘自RFC 6749。

2、使用OAuth进行认证和授权的过程如下所示:用户想操作存放在服务提供方的资源。用户登录客户端向服务提供方请求一个临时令牌。服务提供方验证客户端的身份后,授予一个临时令牌。

3、程序利用 http://api.twitter.com/oauth/request_token来从twitter.com那里获取一个request token。 然后程序引导用户到 http://api.twitter.com/oauth/authorize页面。

OAuth2实现单点登录SSO

所以总结一下就是:通过将用户信息这个资源设置为被保护资源,可以使用OAuth2技术实现单点登陆(SSO),而SpringSecurityOAuth2就是这种OAuth2SSO方案的一个实现。

其次,OAuth2是用来允许用户授权第三方应用访问他在另一个服务器上的资源的一种协议,它不是用来做单点登录的,但我们可以利用它来实现单点登录。

这样显然是低效而麻烦的,更好的解决方案应该是用户在内网中只需要登录一次,所有的子应用系统都能认证其身份,而免去重复登录,这样的方案就被称为单点登录( single sign-on, SSO )。

SSO是单点登录的简称,常用的SSO的协议有两种,分别是SAML和OAuth2。本文将会介绍两种协议的不同之处,从而让读者对这两种协议有更加深入的理解。

客户端 获取 JWT 后,对于以后的 每次请求 ,都不需要再通过 授权服务 来判断该请求的 用户 以及该 用户的权限 。在微服务系统中,可以利用 JWT 实现 单点登录 。

XXL-SSO 是一个简易的单点登录系统,由大众点评工程师许雪里个人开发,代码比较简单,没有做安全控制,因而不推荐直接应用在项目中,这里列出来仅供参考。

OAuth2介绍

而OAuth2本身不是专门为SSO设计的,主要是为了解决资源第三方授权访问的问题,所以在用户信息方面,还需要额外提供一个接口。

OAuth0是OAuth协议的下一版本,但不向后兼容OAuth 0即完全废止了OAuth0。 OAuth 0关注客户端开发者的简易性。

其实OAuth2不仅提供授权码(code)这种格式授权方式,还提供几个其他类型。其中用Grant Type代表当前授权的类型。

OAuth 是一个开放标准的授权框架,它为第三方应用获取资源所有者在资源所在系统或应用上的部分资源提供了一种解决方案。

其次,OAuth2是用来允许用户授权第三方应用访问他在另一个服务器上的资源的一种协议,它不是用来做单点登录的,但我们可以利用它来实现单点登录。

OAuth 2 是一种授权协议,用于通过 HTTP 协议提供对受保护资源的访问。OAuth2 使第三方应用程序能够获得对资源的有限访问。资源的所有者告诉系统,同意授权第三方应用进入系统,获取对这些资源访问。

微服务权限终极解决方案(spring-cloud-gateway-oauth2)

1、我们理想的微服务权限解决方案应该是这样的,认证服务负责认证,网关负责校验认证和鉴权,其他API服务负责处理自己的业务逻辑。安全相关的逻辑只存在于认证服务和网关服务中,其他服务只是单纯地提供服务而没有任何安全相关逻辑。

2、由于 spring cloud gateway 是基于 WebFlux 框架实现的,该网关作为资源服务器时不能使用 @EnableResourceServer 注解,需要使用@EnableWebFluxSecurity 注解来配置安全过滤链。

3、在网关层完成url层面的鉴权操作。将解析后的jwt token当做请求头传递到下游服务中。

4、OAuth2 spring cloud spring security 一个原则: 使用前一定先看官方文档,看不懂再来搜寻第三方资料。

5、spring OAuth2中,我们配置一个授权认证服务,我们最主要有以下三点:spring中有三个配置与这三点一一对应:除了上面说到的 client_id和 client_secret,还需要一些服务附带一些授权认证参数。

标签:


取消回复欢迎 发表评论: