你能解释一下openid connect flow中的RP-> OP部分吗?

时间:2018-04-16 06:11:16

标签: authentication oauth-2.0 google-oauth google-authentication openconnect

enter image description here

我不理解1部分。

例如,我有一个网站asdf.com并使用google OP,因此我有一个login with google按钮,其中包含指向Google网站的链接(类似https://account.google.com/XXX?return_url=asdf.com)我的网站。

因此用户将点击此按钮进行登录,因此我认为1步骤应为enduser -> OP?为什么RP -> OP

2 个答案:

答案 0 :(得分:1)

让我们看看这件事可能也会把它们全部拿走。这被称为Oauth2舞蹈或三足Oauth2流。舞蹈有三个步骤可以获得授权。 Client ApplicationAuthentication 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

enter image description here

[资源所有者(用户)]获得同意。

第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返回给最终用户。

图中似乎缺少这个。