首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure AD器件流verification_url

Azure AD器件流verification_url
EN

Stack Overflow用户
提问于 2018-02-19 10:21:19
回答 1查看 467关注 0票数 2

考虑一下这个Azure AD OAuth 2.0设备流授予请求:

代码语言:javascript
复制
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。授权服务器上的最终用户验证URI。URI应该简短且容易记住,因为最终用户将被要求手动将其键入到他们的用户代理中。{

代码语言:javascript
复制
   "device_code": "GMMhmHCXhWEzkobqIHGG_EnNYYsAkukHspeYUk9E8",
   "user_code": "WDJB-MJHT",
   "verification_uri": "https://www.example.com/device",
   ...

但是,Azure的响应包含verification_url (注意url而不是uri):

代码语言:javascript
复制
"verification_url": "https://aka.ms/devicelogin"

,这只是Azure的设备流实现中的一个错误吗?这两种变体都是有效的吗?是否在下一稿中将其重命名为verification_url

另外一个问题是,可以从Azure AD v2 端点请求设备流授予吗?

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

有一个/common/oauth2/devicecode,但是我不能在以后的/common/oauth2/v2.0/devicecode中使用它(立即返回过期的AADSTS70019验证代码)。

EN

回答 1

Stack Overflow用户

发布于 2018-02-20 20:00:45

可能不是打错字。你提到的IETF草案得到了Google和Microsoft的支持。但两家公司都没有考虑到这种差异,即"verification_uri“与"verification_url”。

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

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

我还没有找到微软(即Azure's)设备流实现的正式文档,但以下是关于这个主题的几篇文章/文章,它们都在*.microsoft.com域上:

后者伴随着GitHub回购:https://github.com/Azure-Samples/active-directory-dotnet-deviceprofile

以下是一些非MS的消息来源:

实际上,后一个例子(日语)是我能找到的Azure设备流实现的第一个详细示例。-)它也有"verification_url“。

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

v2.0协议页也没有提到"devicecode“端点。请参见:

所以现在我建议不要在Azure的设备流上建立任何产品。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48863963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档