gpt4 book ai didi

azure - 设备授权授予类型的 Azure 资源管理范围有多大?

转载 作者:行者123 更新时间:2023-12-03 01:32:48 25 4
gpt4 key购买 nike

我正在构建一个用于配置 Azure 资源的 CLI 应用程序。之前我使用授权代码流程 resource设置为https://management.azure.com/ 。现在,我想切换到使用 RFC 8628 设备授权授予类型 ( Azure documentation )。我可以使用 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],
}

我正在发送一个 POST 请求,其正文如 client_id=<client-id>&scope=openid+https%3A%2F%2Fgraph.microsoft.com%2F.defaulthttps://login.microsoftonline.com/<tenant>/oauth2/v2.0/devicecode 。通过这些范围,我可以正常登录,但对 Azure 资源管理 API 的任何后续请求(例如,对 DELETE 资源组)都将失败,并显示 401 Unauthorized .

最佳答案

如果您想使用设备代码流程访问azure资源,请按照以下步骤操作。

1.导航到门户中 Azure Active Directory 中的 AD 应用 -> API 权限 -> 添加权限 ->选择Azure 服务管理 API -> 选择user_impersonation

enter image description here

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

enter image description here

3.在 postman 中,使用下面的请求。

请求网址:

POST https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/devicecode

请求正文:

client_id=<client-id>
scope=https://management.azure.com/user_impersonation

enter image description here

在浏览器中,导航至https://microsoft.com/devicelogin,输入代码并登录您的用户帐户,应用程序将让您同意权限,点击接受

enter image description here

4.登录成功后,在postman中使用下面的请求。

请求网址:

POST https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token

请求正文:

grant_type: urn:ietf:params:oauth:grant-type:device_code
client_id: <client-id>
device_code: <device_code in the screenshot of step 3>

enter image description here

5.使用第4步中的access_token调用Azure REST API,例如Resource Groups - List ,效果很好。

enter image description here

更多详情,您可以引用-Microsoft identity platform and the OAuth 2.0 device authorization grant flow .

<小时/>

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

enter image description here

关于azure - 设备授权授予类型的 Azure 资源管理范围有多大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60737010/

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