【发布时间】:2015-03-01 10:05:41
【问题描述】:
这个问题已经被问了 20 次,我读了很多关于它的文章……但我需要确认一些事情。我只是想知道我是否理解得很好。
第一部分是关于定义:
身份识别:要识别客户,请知道它的确切身份。
授权:允许访问某些资源。这里没有身份。
身份验证:结合识别和授权。
我的第一个问题是:推理好不好?
然后,我的第二部分是关于 OAuth 和 OpenId :
一开始,对于基本的实现,OpenId只针对Identification部分,OAuth针对Authorization部分。
但现在,升级后,两者都倾向于身份验证部分。
例如,OAuth 基本上可以只允许一个应用程序通过网络访问另一个应用程序,而无需用户的密码或关键信息。它只执行一次并生成一个可以撤销或刷新的令牌,并且需要为每个请求提供。
现在,随着 OAuth 的基本实现,如果 S1 允许 S2 获取用户信息,我可以访问这些 url:path_to_s1/api/users/foo - path_to_s1/api/ users/bar 当我在第一个 url 上时,我将获得用户 foo 的信息(例如电子邮件 - 联系人......),当我在第二个 url 上时,我将获得用户 bar 的信息。我这里只有授权而不是标识。例如,我可以在 OAuth 的顶部实现 API Key 或 OpenId Connect。
我的第二个问题是:推理好不好?
提前谢谢你:)
【问题讨论】: