• OAuth2.0


    不同平台,用户之间互信的问题
    UAC 身份验证中心,管理Web应用,桌面应用和手机,和起居室设备的用户身份验证,允许用户通过一次登录就访问来自多个应用程序的数据

    OAuth2.0协议
    无需加密的认证方式,OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用

    认证授权过程:微信扫码登录第三方网站就是OAuth2.0的一个例子;扫码后会在手机上让用户授权:是否同意登录该网站
    我住在一个门禁系统的小区内。进入需要输入密码。如何让快递员通过门禁进入小区?
    1. 门禁系统增加一个授权按钮,快递员申请授权
    2. 快递员申请授权后,我手机接收到申请,并且显示快递员相关信息
    3. 告诉门禁系统,同意快递员进入小区的授权
    4. 门禁向快递员发送一个令牌,快递员输入令牌,进入小区

    令牌跟密码的区别
    1. 令牌是有时间限制的。会自动失效,并且使用只可以使用一次
    2. 令牌可以被数据所有者撤销,会立即失效,屋主可以随时撤销令牌
    3. 令牌有权限范围,只读令牌

    客户端通过用户请求授权的时候生成一个code,这个有时间限制并且使用次数限制
    授权服务器返回客户端生成的state
    客户端拿到code,与授权服务器通信,通过code换取token
    每次与授权服务器通信都需要提供一个Oauth的secret或者用他加密

    4种授权模式
    1. 授权码模式 通过客户端的后台服务器 与认证服务器进行互动,需要浏览器
    2. 简化模式 直接在浏览器向认证服务器申请令牌跳过授权码,所有步骤在浏览器完成,令牌对访问者是可见的,客户端不需要认证,需要浏览器
    3. 密码模式 用户向客户端提供用户名跟密码,客户端根据这些信息向服务器就索要授权,我们的密码给了客户端,但是客户端不存储密码
    4. 客户端模式 客户端以自己的名义,向服务端进行认证。


    1. 用户向客户提供用户名跟密码
    2. 客户端将用户名跟密码发给认证服务器,请求令牌
    3. 认证服务器给客户端提供访问令牌
    4. 用户使用访问令牌获取资源服务器
    5. 资源服务器去授权服务器验证令牌的有效性
    6. 资源服务器根据用户信息,处理请求等发送响应给客户端

  • 相关阅读:
    C#学习教程
    数据库
    读写信号量
    qt配置tensorflow + opencv 提示protoc版本错误
    【1】EIGEN-Matrix类
    c++11的新特性
    ubuntu 16.04 python+tensorflow安装路径查看
    python的常用数据类型及其使用
    windows文件转LINUX文件格式
    ubuntu 16.04 + GPU 1080 + NVIDIA384
  • 原文地址:https://www.cnblogs.com/ingstyle/p/11663452.html
Copyright © 2020-2023  润新知