• 谈谈我对OAuth的理解


    自己的理解是,OAuth是一种授权标准.
     
    用于为除了用户之外的第三方应用授权,
     
    并且在授权过程中,第三方应用不会接触到用户的任何信息,
     
    授权完成后,第三方应用可访问用户授权范围内的信息.
     
    举个例子,目前有很多网站都可以用 QQ,新浪等账号来登录,QQ和新浪用的就是这种授权模式.
     
    首先 用户访问第三方网站的页面,点击用QQ号登录时,跳转到QQ号登录和授权相关的页面,
     
    在这个过程中,第三方的页面不可能得到QQ号或密码.
     
    在QQ的页面登录成功后,会让用户选择要授予的权限范围..比如访问昵称,头像等权限..
     
    完成之后,在跳转回第三方页面的同时,QQ的服务器会在与第三方页面的Session中加上这个token.
     
    当第三方页面通过QQ服务器来获取用户信息时,服务器通过token来决定可对第三方页面提供的信息范围.
     
     
    这是我个人对OAuth的理解,如果您有什么不同的看法欢迎留言讨论.
     
    ==============================================================
     
    下边是从网上找来的信息:
     
    OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版
     

    名词定义

    在详细讲解OAuth 2.0之前,需要了解几个专用名词。它们对读懂后面的讲解,尤其是几张图,至关重要。

    (1) Third-party application:第三方应用程序,本文中又称"客户端"(client),即上一节例子中的"云冲印"。

    (2)HTTP service:HTTP服务提供商,本文中简称"服务提供商",即上一节例子中的Google。

    (3)Resource Owner:资源所有者,本文中又称"用户"(user)。

    (4)User Agent:用户代理,本文中就是指浏览器。

    (5)Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器。

    (6)Resource server:资源服务器,即服务提供商存放用户生成的资源的服务器。它与认证服务器,可以是同一台服务器,也可以是不同的服务器。

    知道了上面这些名词,就不难理解,OAuth的作用就是让"客户端"安全可控地获取"用户"的授权,与"服务商提供商"进行互动。

    (A)用户打开客户端以后,客户端要求用户给予授权。

    (B)用户同意给予客户端授权。

    (C)客户端使用上一步获得的授权,向认证服务器申请令牌。

    (D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。

    (E)客户端使用令牌,向资源服务器申请获取资源。

    (F)资源服务器确认令牌无误,同意向客户端开放资源。

     
     
  • 相关阅读:
    MySQL创建用户及用户授权
    kubectl 更新容器镜像
    harbor安装报权限错误问题解决
    docker拉取harbor仓库镜像报x509: certificate signed by unknown authority的解决方案
    pkexec提权(限制条件:用户必须在sudo组里且知道用户密码)
    sudo useradd提权
    Linux下绕过空格的方式总结
    Solved: cannot kill Docker container permission denied
    nginx和Docker的打怪升级
    三种免费Terminal工具推荐
  • 原文地址:https://www.cnblogs.com/Hexllo/p/4142048.html
Copyright © 2020-2023  润新知