我不理解1
部分。
例如,我有一个网站asdf.com
并使用google
OP,因此我有一个login with google
按钮,其中包含指向Google网站的链接(类似https://account.google.com/XXX?return_url=asdf.com
)我的网站。
因此用户将点击此按钮进行登录,因此我认为1
步骤应为enduser -> OP
?为什么RP -> OP
?
答案 0 :(得分:1)
让我们看看这件事可能也会把它们全部拿走。这被称为Oauth2舞蹈或三足Oauth2流。舞蹈有三个步骤可以获得授权。 Client Application
和Authentication server
有两个主要参与者,其中resource owner
正在进行侧滚。
第1步:
[客户端应用程序]联系身份验证服务器。我有一个用户愿意同意登录我的应用程序。
[验证服务器]确定没有问题用户必须先登录然后我会显示他们的同意屏幕
https://accounts.google.com/o/oauth2/auth?client_id= {的clientid} .apps.googleusercontent.com&安培; REDIRECT_URI =瓮:IETF:WG:OAuth的:2.0:OOB&安培;范围= https://www.googleapis.com/auth/analytics.readonly&response_type=code
[资源所有者(用户)]获得同意。
第2步:
[验证服务器]响应客户端。嘿,你的用户说你可以访问这里是授权码。
[客户端应用程序]感谢此处的授权代码将其恢复,我的客户端ID和密码(客户端ID和密码是客户端的密码和密码,以便将其识别到授权服务器) this应该向你证实我是我。
https://accounts.google.com/o/oauth2/token 代码= 4 / X9lG6uWd8-MMJPElWggHZRzyFKtp.QubAT_P-GEwePvB8fYmgkJzntDnaiAI&安培; CLIENT_ID = {客户端Id} .apps.googleusercontent.com&安培; client_secret = {ClientSecret}&安培; REDIRECT_URI =瓮:IETF:WG:OAuth的:2.0:OOB&安培; grant_type = authorization_code
第3步。
[认证服务器]很棒,看起来你在这里有一个访问令牌,也可能是一个刷新令牌。
<强>注释:强>
Open id connect基本上建立在Oauth2之上,主要区别在于你发送的范围是openid。
如果您想要有趣Oauth2 playground
,可以在此处进行测试答案 1 :(得分:0)
是的,我会说你是对的:对OP的第一个请求来自最终用户。
RP通常会向OP authorise
端点构建请求,但它会将最终用户的浏览器重定向到该端点(例如,通过HTTP 302响应),或者将构建的URL作为操作放在html页面上的链接/按钮从RP返回给最终用户。
图中似乎缺少这个。