设备授权授予类型的Azure资源管理的作用域是什么?

设备授权授予类型的Azure资源管理的作用域是什么?,azure,oauth-2.0,azure-active-directory,Azure,Oauth 2.0,Azure Active Directory,我正在构建用于调配Azure资源的CLI应用程序。之前,我使用的授权代码流是资源设置为https://management.azure.com/。现在,我想切换到使用RFC 8628设备授权授予类型()。我可以使用openid profile等范围成功登录。但是,当我使用像https://management.azure.com我收到一个错误: { "error": "invalid_scope", "error_description": "AADSTS70011: The provi

我正在构建用于调配Azure资源的CLI应用程序。之前,我使用的授权代码流是
资源
设置为
https://management.azure.com/
。现在,我想切换到使用RFC 8628设备授权授予类型()。我可以使用
openid profile
等范围成功登录。但是,当我使用像
https://management.azure.com
我收到一个错误:

{
  "error": "invalid_scope",
  "error_description": "AADSTS70011: The provided request must include a 'scope' input parameter. The provided value for the input parameter 'scope' is not valid. The scope openid https://management.azure.com/ is not valid. The scope format is invalid. Scope must be in a valid URI form <https://example/scope> or a valid Guid <guid/scope>.\r\n[..]",
  "error_codes": [70011],
}
{
“错误”:“无效的\u范围”,
“错误描述”:“AADSTS70011:提供的请求必须包含“scope”输入参数。为输入参数“scope”提供的值无效。scope openidhttps://management.azure.com/ 无效。作用域格式无效。作用域必须采用有效的URI格式或有效的Guid。\r\n[…]“,
“错误代码”:[70011],
}

我正在向
client\u id=&scope=openid+https%3A%2F%2Fgraph.microsoft.com%2F.default
to
https://login.microsoftonline.com//oauth2/v2.0/devicecode
。有了这些作用域,我可以很好地登录,但是对Azure资源管理API的任何后续请求(例如,删除资源组)都将失败,并且
401 Unauthorized
如果您想使用设备代码流访问Azure资源,请遵循以下步骤

1.在门户网站的
Azure Active Directory
中导航到您的广告应用程序->
API权限
添加权限
->选择
Azure服务管理
API->选择
用户模拟

2.导航到门户中的订阅->
访问控制(IAM)
,确保用于登录的用户帐户在订阅中具有角色,例如
参与者
。如果没有,请将用户添加为订阅中的角色,请按照此操作

3.在“邮递员”中,使用下面的请求

请求URL:

POST https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/devicecode
POST https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
请求机构:

client_id=<client-id>
scope=https://management.azure.com/user_impersonation
grant_type: urn:ietf:params:oauth:grant-type:device_code
client_id: <client-id>
device_code: <device_code in the screenshot of step 3>
grant\u类型:urn:ietf:params:oauth:grant类型:设备\u代码
客户识别码:
设备代码:

5.在步骤4中使用
access\u令牌
调用Azure REST API,例如,它工作正常

有关更多详细信息,请参阅-


除了,要在步骤3中成功同意权限,请确保租户中的以下设置(Azure AD->
企业应用程序
->
用户设置
用户可以同意应用程序代表其访问公司数据
)设置为
,否则,您需要让管理员单击步骤1中的
授予xxxx管理员许可
按钮


您可以尝试使用
41094075-9dad-400e-a0bd-54e686782033
作为范围id吗?或者尝试使用
https://management.azure.com/.default
。我确实试过
https://management.azure.com/.default
已经,这也不起作用。我尝试了
41094075-9dad-400e-a0bd-54E68672033
,但以另一种方式失败:“AADSTS65002:必须通过预授权配置第一方应用程序和资源之间的同意。访问了解详细信息”。很遗憾,我无法打开该文档URL(“租户“Microsoft”中不存在所选用户帐户,无法访问该租户中的应用程序“ad9c3e97-0ae9-4928-a97d-63a69f873726”)。能否显示您所指的文档?以及您的请求示例?