gpt4 book ai didi

azure - 如果我不是租户中的全局管理员,如何在 azure 中授予我自己的应用程序同意?

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

鉴于我已经创建了一个应用程序 using this repository在 azure 中。此应用程序是使用通过以下命令创建的服务主体进行部署的:

az ad sp create-for-rbac --name "fxpricepredictor" --role contributor --scopes "/subscriptions/YOUR-SUBSCRIPTION-ID/resourceGroups/YOUR-RESOURCE-GROUP-NAME" --sdk-auth

现在,我需要获取 API token 来使用 REST API 管理我创建的资源Based on documentation ,我应该能够使用我的 tenantIdclientIdclient_secret 通过调用以下端点来获取 token :

curl: POST
https://login.microsoftonline.com/{{tenantId}}/oauth2/token

请注意,我不是租户中的全局管理员。

official sample postman collection is here这是我的请求在 postman 中的样子:

enter image description here

遗憾的是,端点没有向我提供 token ,而是返回这样的错误:

{
"error": "unauthorized_client",
"error_description": "AADSTS700016: Application with identifier 'MY_CLIENTID' was not found in the directory 'MY COMPANY'. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You may have sent your authentication request to the wrong tenant.\r\nTrace ID: 5a9a2c53-c3c8-46da-a1a6-551b42082400\r\nCorrelation ID: bf7c5966-ffa4-4312-8a77-434c2560d65a\r\nTimestamp: 2022-10-05 14:54:23Z",
"error_codes": [
700016
],
"timestamp": "2022-10-05 14:54:23Z",
"trace_id": "5a9a2c53-c3c8-46da-a1a6-551b42082400",
"correlation_id": "bf7c5966-ffa4-4312-8a77-434c2560d65a",
"error_uri": "https://login.microsoftonline.com/error?code=700016"
}

请注意,我在 MY_CLIENTIDMY COMPANY 的错误响应中隐藏了一些敏感值

所以,我想,我面临这个问题的主要原因是:

This can happen if the application has not been consented to by any user in the tenant.

这意味着,我应该同意我自己的应用程序。我说得对吗?

所以,我的问题是:

  1. 如何获取 token 以与 REST API 配合使用来管理我的资源?

  2. 鉴于我不是全局管理员,如何向我自己的应用授予同意?

<小时/>

更新:据我了解,我应该能够使用“Microsoft Graph 权限引用”向我的应用程序授予同意。这是我所做的:

  1. 登录 Azure 门户

  2. 导航到“Azure Active Directory”

  3. 导航至“应用注册”

  4. 点击创建的APP(“fxpricepredictor”)

  5. 导航至“API 权限”

  6. 点击“添加权限”

  7. 单击“Microsoft Graph” enter image description here

  8. 选择“委派权限”

  9. 搜索“身份验证”--->(遗憾的是此选项还需要管理员同意)

最佳答案

我尝试在我的环境中重现相同的结果并得到以下结果:

当我运行与您相同的命令时,会自动创建一个名为 fxpricepredictorAzure AD 应用程序,详细信息如下:

az ad sp create-for-rbac --name "fxpricepredictor" --role contributor --scopes "/subscriptions/<subscriptionID>/resourceGroups/<resourcegroupName>" --sdk-auth

enter image description here

通过将上述详细信息包含为参数,我能够通过Postman成功生成访问 token ,如下所示:

enter image description here

注意,我没有全局管理员角色并授予admin_consent 并不是真正需要的。

使用上述访问 token ,我可以获取并管理该资源组中的 Azure 资源,如下所示:

GET https://management.azure.com/subscriptions/<subscriptionID>/resourceGroups/SriTest/resources?api-version=2021-04-01

回应:

enter image description here

如果您的租户中没有提供的应用程序,也可能会出现错误AADSTS700016客户端ID

我尝试包含 Azure AD 租户中不存在的随机 ClientID 并收到与以下相同的错误:

enter image description here

因此,请务必检查 Azure AD 租户中具有给定 ClientID 的应用程序是否存在

关于azure - 如果我不是租户中的全局管理员,如何在 azure 中授予我自己的应用程序同意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73962638/

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