gpt4 book ai didi

azure - 如何创建 access_token 来为用户而不是服务主体访问 ARM API

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

我需要根据用户凭据和用户访问权限来保护 Azure 中的 ML 端点。

现在,我们正在基于服务主体帐户进行授权,但现在我们想要针对每个用户进行测试。

我可以查看 REST API 的文档,以获取 access_token,以便针对服务主体帐户向 ARM(azure 资源管理器)发出 Rest API 请求,但不适用于任何 azure 用户。

那么有什么关于这是否可以实现的指示吗?

所以,基本上我想做的是:

  1. 当用户尝试访问端点时,需要验证他的凭据是否可以访问 API,
  2. 据我所知,可以将任意数量的用户添加到工作区,但并非所有用户都有权访问评分端点请求。
  3. 在这种情况下,只有允许的用户才能提出请求,而其他用户应被拒绝。

最佳答案

要根据用户凭据生成访问 token ,您可以使用ROPC流

使用该 token 调用 API 时,将根据 Azure 用户的角色权限进行验证。

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

我创建了一个 Azure AD 应用程序,并同意 API 权限,如下所示:

enter image description here

我通过 Postman 使用具有 参数 的用户凭据成功获取访问 token ,如下所示:

POST https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token

client_id:44xxxx450-xxxx-4be1-axxb-e7xxxxxxxx
grant_type:password
scope:https://management.azure.com/.default
username:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="71020318121e1f0503183105141f101f055f1e1f1c1812031e021e17055f121e1c" rel="noreferrer noopener nofollow">[email protected]</a>
password:xxxxxxxxx

回应:

enter image description here

使用上述访问 token ,用户可以成功向 Azure 资源管理器发出 Rest API 请求,如下所示:

//To fetch list of resource groups present in the subscription
GET https://management.azure.com/subscriptions/<subscriptionID>/resourceGroups?api-version=2021-04-01

回应:

enter image description here

注意,上述用户在允许用户发出请求的订阅中具有贡献者角色。

现在,我通过Postman不同 Azure 用户生成 token ,方式如下:

POST https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token

client_id:44xxxx450-xxxx-4be1-axxb-e7xxxxxxxx
grant_type:password
scope:https://management.azure.com/.default
username:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d2a1a0bbb6b7bfbd92a6b7bcb3bca6fcbdbcbfbbb1a0bda1bdb4a6fcb1bdbf" rel="noreferrer noopener nofollow">[email protected]</a>
password:xxxxxxxxx

回应:

enter image description here

当用户包含上述 token 来发出相同请求时,访问会被拒绝,并出现 403 Forbidden 错误,如下所示:

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

回应:

enter image description here

注意,上述用户没有所需的角色权限 访问拒绝请求的 Azure 资源。

关于azure - 如何创建 access_token 来为用户而不是服务主体访问 ARM API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73974529/

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