大话微服务:Spring Cloud gateway+OAuth2 实现单点登录和权限控制(三)OAuth2.0原理深入研究

一、OAuth2.0有什么用?

     本质:总结为两句话:

  •         要么用来创建一个能够从其应用读取用户信息的应用。
  •         要么创建一个使其它应用访问自己的用户数据的应用。

 

二、 OAuth2.0为用户和应用定义了以下角色:

资源拥有者: 拥有共享数据的人或者应用,改为叫资源访问者或者叫用户(即访问者对这个资源有共享权限)更合适。

资源服务器(即资源服务提供商):网上叫资源服务商(叫法太泛的定义)改为叫资源服务提供商,托管资源的服务器,可以理解为各个业务应用的微服务,改为叫资源服务提供商,通常是http服务提供商。

客户端应用:请求访问存储在资源服务器上的应用,可以理解其实也是微服务,只是这个微服务要访问其它微服务而言它就是客户端,当它被其它微服务访问,它又成了资源服务器(即资源服务提供商)。

授权服务器:它包含“认证服务端”和“资源服务端”,授权客户端应用能够访问资源拥有者拥有的资源,授权服务端和资源服务端(这边叫鉴权资源服务端,好理解)必须的,他们经常在同一个应用程序中,也可以分开成2个应用服务程序。

鉴权资源服务端:这个和前面的授权服务端配合一起完成认证与鉴权功能,网上叫资源服务器,容易与业务的资源服务(业务叫资源服务提供商)混淆,所以这边叫鉴权资源服务端,它的作用主用是定义所有资源服务提供商,即各个业务应用微服务的api的保护规则以及统一用户信息的获取与验证。

三、客户端类型:分为保密型和公有的。保密的需要授权服务器分配一个密码给客户端,防欺骗,授权服务器用来识别客户端的。

      客户端配置分为:web应用(浏览器+服务端),用户代理(js前端),原生(手机或者平板app)。

四、授权

   场景:当一个客户端应用想要访问拥有者托管在资源服务器的资源时,它必须先获得授权,即分两步动作请求授权和访问令牌,发送来回的请求和响应取决于授权类型。

   要求:

        1.在客户端应用能请求访问资源服务器的资源之前,客户端应用程序,必须先在资源服务器相关联的授权服务器中进行注册。

         2.访问资源时,需要有一个token,认证是否有这个token?这个token是否合法?

        3. 不管哪一种认证方式(四种认证类型),需要客户端的标识、客户端密钥,认证服务器和资源服务器配合根据这个生成token给客户端的应用使用。

     OAuth2.0有四种认证模式(授权码模式、简化模式、密码模式、客户端模式),常用有两种:密码模式(本公司开发的各个系统)和授权码模式(针对第三方应用),他们均通过给客户端一个令牌来授权对资源所有者的资源。

  (1)授权码授权:包含了2个请求和2个响应组成,一个授权请求+响应,另一个是令牌请求+请求。

        授权请求:

             

     授权响应:

                 

    令牌请求:

                 

     令牌响应:

  

   (2)简化模式(又叫隐藏模式,或叫契约模式)

        包含 一个请求与一个响应:

(3)密码模式(又叫密钥证书模式)

      一个请求和一个响应,如下图:

(4)客户端模式(又称客户端证书模式)

     这种模式和资源拥有者(即用户)无关。

 

 

五、端点

   端点:端点的典型就是web服务器上的URL.

  端点的定义类型:

     授权端点(位于授权服务器上):通过浏览器(即用户代理)请求令牌或授权码,此过程涉及最终用户的身份验证和可选的同意,主要目的验证资源拥有者(即用户)的身份,及通过客户端标识和密钥进行认证,授权码模式下生成许可码。

     令牌端点(位于授权服务器上):客户端使用授权许可交换访问令牌token或者可刷新toke获取访问token,通常伴有客户端认证。

     重定向端点(位于客户端应用上):重定向端点是在授权端授权后,资源拥有者重定向到客户端应用的端点。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值