美文网首页
妙用生活中的经历理解OAuth 2.0原理

妙用生活中的经历理解OAuth 2.0原理

作者: p了个f | 来源:发表于2018-03-28 16:02 被阅读37次

    看看别人是如何理解这个抽象概念的?

    OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。

    OAuth 允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的 2 小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth 让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。

    来自知乎


    我在QQ空间中上传了好多我跟孩子游玩的照片。有一天我发现某网站有一种自助的在线打印照片服务。于是我就想把我的照片打印出来。为了使用该服务,必须让"云冲印"读取自己储存在QQ空间上的照片。


    云冲印

    问题是只有得到我的的授权,QQ空间才会同意"云冲印"读取这些照片。那么,"云冲印"怎样获得我的授权呢?

    传统方法是,我将自己的QQ用户名和密码,告诉"云冲印",后者就可以读取用户的照片了。这样的做法有以下几个严重的缺点:

    1. "云冲印"为了后续的服务,会保存用户的密码,这样很不安全。
    2. QQ不得不部署密码登录,而我们知道,单纯的密码登录并不安全。
    3. "云冲印"拥有了获取用户储存在QQ所有资料的权力,用户没法限制"云冲印"获得授权的范围和有效期。
    4. 用户只有修改密码,才能收回赋予"云冲印"的权力。但是这样做,会使得其他所有获得用户授权的第三方应用程序全部失效。
    5. 只要有一个第三方应用程序被破解,就会导致用户密码泄漏,以及所有被密码保护的数据泄漏。

    OAuth就是为了解决上面这些问题而诞生的。

    来自阮一峰老师(经过改编)


    其实阮老师已经非常形象生动的解释了这么一个抽象难懂的概念啦。在我们现在的生活中,随处可见。比如:王者荣耀、摩拜单车、ofo、知乎等等。它们都是采用oauth方案进行登录授权。


    运行原理

    OAuth 2.0的运行流程如下图,摘自RFC 6749。


    运行原理

    (A)用户打开客户端以后,客户端要求用户给予授权。
    (B)用户同意给予客户端授权。
    (C)客户端使用上一步获得的授权,向认证服务器申请令牌。
    (D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。
    (E)客户端使用令牌,向资源服务器申请获取资源。
    (F)资源服务器确认令牌无误,同意向客户端开放资源。

    来自阮一峰老师

    生活中的理解

    王者荣耀登录授权

    oauth原理.png

    说明:图中的第c、d、e、f步骤都是后台中完成。


    办理身份证,买票去旅游


    办理身份证,买票去旅游
    以上就是我对oauth的理解,如有不对请大家指正。

    相关文章

      网友评论

          本文标题:妙用生活中的经历理解OAuth 2.0原理

          本文链接:https://www.haomeiwen.com/subject/nozycftx.html