gpt4 book ai didi

Azure AD 设备流验证_url

转载 作者:行者123 更新时间:2023-12-02 06:46:45 25 4
gpt4 key购买 nike

考虑此 Azure AD OAuth 2.0 设备流授予请求:

POST https://login.microsoftonline.com/common/oauth2/devicecode
Content-Type: application/x-www-form-urlencoded

client_id=12345678-1234-1234-1234-123456789012
&grant_type=device_code
&resource=https://graph.microsoft.com

(为了可读性而跳过 urlencoding)

根据 this draft ,响应应包含 verification_uri 参数:

verification_uri

REQUIRED. The end-user verification URI on the authorization server. The URI should be short and easy to remember as end-users will be asked to manually type it into their user-agent.

{
   "device_code": "GMMhmHCXhWEzkobqIHGG_EnNYYsAkukHspeYUk9E8",
"user_code": "WDJB-MJHT",
"verification_uri": "https://www.example.com/device",
...

但是,来自 Azure AD 的响应包含改为 verification_url(注意 url 而不是 uri):

"verification_url": "https://aka.ms/devicelogin"

这只是 Azure AD 设备流实现中的拼写错误吗?我应该将这两种变体都视为有效吗?下一个草案中是否会重命名为 verification_url

还有一个问题,我可以从 Azure AD v2 端点请求设备流授权吗?

token 端点似乎以 /common/oauth2/v2.0/token 形式存在,但其代码请求对应项返回 404/common/oauth2/v2.0/devicecode

有一个 /common/oauth2/devicecode,但我稍后无法通过 /common/oauth2/v2.0/devicecode 使用它(立即返回AADSTS70019 验证码已过期。)。

最佳答案

这可能不是一个错字。 IETF 草案(您提到的)得到了 Google 和 Microsoft 的支持。但两家公司在实现时都没有考虑这种差异,即“verification_uri”与“verification_url”。

谷歌排在第一位。他们几年前就实现了设备流程。我不确定首次发布的确切日期,但它在 2012 年就已经可用了。而且他们从一开始就使用“verification_url”! IETF 草案的第一个版本可以追溯到 2015 年,出于某种原因,负责该草案的 Google 团队决定使用“verification_uri”,尽管他们自己的实现已经使用“verification_url”多年。他们既没有改变草案,也没有改变其实现。他们也在其文档中使用“verification_url”。

另一方面,Facebook 使用草案版本作为字段名称,即“verification_uri”。查看他们的文档(并且实现与文档一致):https://developers.facebook.com/docs/facebook-login/for-devices

我还没有找到 Microsoft(即 Azure)设备流实现的官方文档,但这里有一些关于此主题且位于 *.microsoft.com 域的帖子/文章:

后者附有 GitHub 存储库:https://github.com/Azure-Samples/active-directory-dotnet-deviceprofile

这里有一些非 MS 来源:

实际上,后一个(日语)是我能找到的第一个有关 Azure 设备流实现的详细示例。 :-) 并且它还有“verification_url”。

至于您的“附加问题”(“我可以从 Azure AD v2 端点请求设备流授权吗?”),我不知道。微软的设备流实现甚至还不是官方的(尚未得到支持,至少缺乏文档表明这一点),因此它可能会发生变化。

v2.0 协议(protocol)页面也没有提及“devicecode”端点。请参阅:

因此,目前我建议不要在 Azure 的设备流上构建任何类似生产的东西。

关于Azure AD 设备流验证_url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48863963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com