我想更详细地了解OAuth 2.0,特别是授权代码流。这可能是nit-挑选,但根据RFC6749,客户端启动流程。
(A)客户端通过将资源所有者的用户代理引导到授权端点来启动流程。
但是,当请求授权时,不是资源所有者通过单击客户端应用程序站点上的Connect with service xyz或Import photos from abc按钮来启动流吗?
我的意思是,正是这个按钮单击发出了来自资源所有者计算机/IP的HTTP,对吗?
GET https://www.auth-server.com/oauth2/authorize?
client_id=18f4ad63-01fa-41ae-b632-092a8f5d340b&
redirect_uri=https://www.awesome-printservice.com/callback&
scope=openid photos.read
response_type=code&
response_mode=query&
nonce=ugasq9v1bq&发布于 2020-10-23 22:42:00
考虑一下通过Google帐户登录到您的站点(https://example.net)的例子。
在这种情况下,您的此外,你的数字“用户代理”:火狐或Chrome是“资源所有者”;ExampleNET是“客户端”(也是“依赖方”)。
客户端ExampleNET通过指示资源所有者发出您所描述的HTTP请求来启动流。
听起来怪怪的?仔细看一下这一请求。
看到nonce字段了吗?必须由客户准备。更重要的是(尽管您的示例中缺少了),同样的,state字段:也是由客户端准备通过回复启动流,将资源所有者引导到那个大URL。
现在,他们可能已经或者没有通过预先初始化nonce (如果他们正在使用,他们应该记录它以便以后再检查它),或者在资源所有者表示打算使用该流时(例如,通过加载登录页面)快速生成该流,并且他们可能已经这样做,以响应您的活动,这显然表明了启动该流的意图(例如,通过Google链接点击.)
但是他们仍然是启动流程的人,他们给了你(可能是短暂的)必要的东西--从资源所有者的角度来看--登录流的“第一步”。这就是为什么客户端被描述为在这里启动它的原因。
https://security.stackexchange.com/questions/239909
复制相似问题