如何理解oauth2.0的概念?针对这个问题,本文详细介绍了相应的分析和解决方法,希望能帮助更多想要解决这个问题的伙伴找到更简单易行的方法。
OAuth 2.0是目前最流行的授权机制,用于授权第三方应用,获取用户数据。
这个标准比较抽象,用了很多术语,初学者很难理解。其实并不复杂。我给你一个简单的类比,帮助你轻松理解什么是OAuth 2.0。
我住在一个大的住宅区。
社区有门禁系统。
输入时输入密码。
我经常在网上购物和外卖,每天都有快递要送。我必须想办法让快递员通过门禁系统进入小区。
我经常在网上购物和外卖,每天都有快递要送。我必须想办法让快递员通过门禁系统进入小区。
如果我告诉快递员我的密码,他会和我有同样的权限,这似乎不合适。万一我想取消他进入社区的权利,那就很麻烦了,所以我得自己改密码,通知其他快递员。
快递员有没有办法不用知道小区居民的密码就可以自由进入小区,他唯一的权限就是送货,其他需要密码的场合他没有权限?
二、授权机制的设计
于是,我设计了一套授权机制。
第一步是在门禁系统的密码输入设备下增加一个按钮,叫做‘获取授权’。快递员需要先按这个按钮才能申请授权。
第二步,他按下按钮后,主人的手机会弹出一个对话框:有人在请求授权。系统还会显示快递员的姓名、工作编号和快递公司。
当我确认请求属实后,我点击按钮,告诉门禁系统,我同意授权他进入社区。
第三,在我确认门禁系统后,向快递员显示一个访问令牌。令牌是一串类似于密码的数字,只在短时间内有效(如七天)。
第四,快递员将代币输入门禁系统,进入小区。
有人可能会问,为什么不远程为快递员开门,而是单独为他生成代币呢?这是因为快递员可能每天都要送货,第二天就可以重复使用这个代币。此外,一些社区有多个访问控制,快递员可以使用相同的令牌通过它们。
00-1010我们把上面的例子搬到了互联网上,这就是OAuth的设计。
首先,住宅小区是存储用户数据的网络服务。比如微信存储我朋友的信息。要获得这些信息,我们必须通过微信的“门禁系统”。
其次,快递员(或快递公司)是第三方应用,想通过门禁系统进入社区。
最后,我是用户,我同意授权第三方应用进入社区获取我的数据。
简单说,OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。
00-1010令牌和密码功能相同,都可以进入系统,但有三点不同。
(1)令牌是短期的,到期后会自动失效,用户无法自行修改。一般来说,密码是长期有效的,除非用户修改,否则不会改变。
(2)令牌可以被数据所有者撤销,并且将立即无效。例如,所有者可以随时取消快递员的代币。密码一般不允许被别人撤销。
(3)令牌有范围,比如只能进入小区2号门。对于网络服务,只读令牌比读写令牌更安全。密码通常是完全权限。
这些设计保证了令牌不仅可以让第三方应用获得权限,而且可以随时可控,不会危及系统安全。这就是OAuth 2.0的妙处。
请注意,一旦您知道令牌,您就可以进入系统。一般系统不会再确认身份,所以令牌必须保密,泄漏令牌与泄漏密码的后果是一样的。是代币有效期一般设置得很短的原因。
OAuth 2.0指定了如何颁发令牌的详细信息。具体来说,有四种授权授予方式,即四种颁发令牌的方式,适用于不同的互联网场景。
关于如何理解oauth2.0概念的问题,我希望在这里分享答案。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/36812.html