gpt4 book ai didi

azure - 使用服务主体授权访问 Azure

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

我试图了解有关使用 Azure 服务原则将授权委托(delegate)给 Azure BLOB 的几点。

如何配置 Azure:

  • 创建和配置服务主体:在 Active Directory 中,我创建了一个应用程序,创建了一个 key (密码),并设置了访问 Azure 存储所需的权限;

  • 配置 Azure 存储的 IAM:在“存储帐户”部分下,我选择了我的存储帐户,并在 IAM 下将我的帐户(我的登录帐户为 [email protected] )分配给 存储 BLOB 数据贡献者角色。

我如何在客户端应用程序中使用配置:

  1. 具有上述配置;我的应用程序获取租户 ID、客户端 ID、客户端 key 等,并将授权请求发送到 /authorize 端点。
  2. 然后会弹出一个窗口并要求我登录(例如使用 [email protected] ),然后会弹出一个同意屏幕并请求我允许服务主体读取我的 Azure 存储。
  3. 在我批准后,我的客户端应用程序会收到 OAuth2.0 代码
  4. 然后,我通过 /token 端点将此 codeaccess_key 交换。

Q1:此 access_key 是否授予我的客户端应用程序与 [email protected] 相同的权限或服务主体?

使用获得的访问 key ,我可以读取/写入azure blob。

Q2:如果 [email protected]没有读/写访问权限(即未分配存储 BLOB 数据贡献者角色),我的客户端应用程序将无法读/写该 blob,无论服务如何校长的角色。这就是我感到困惑的地方,我的印象是我的客户端应用程序正在承担服务主体,因此它将具有与服务主体相同的特权,而不是 [email protected] 。例如,[email protected]可以具有贡献者角色(即读/写),而服务主体将被分配读者角色。在这种情况下,我将具有对 BLOB 存储的完全访问权限,而我的客户端应用程序将仅具有对 BLOB 存储的读取访问权限。但是,客户端应用程序似乎获得了与 [email protected] 相同的权限。 。我在这里缺少什么?

最佳答案

Q1: does this access_key grant my client application same privilegesas [email protected] or service principal?

access_token您拥有代表 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7f2726253f17100b121e1613511c1012" rel="noreferrer noopener nofollow">[email protected]</a>委派权限。这是因为您使用了 Authorization code grant flow .

What am I missing here?

对于您的场景,我建议您可以使用 client_credentials flow为您的应用程序。

通过 client_credentials 流程,您将仅获得 AAD 中配置的应用程序权限的访问 token 。此外,此访问 token 实际上代表您的 AAD 应用程序本身。如果您为服务主体分配角色,您将获得具有该角色权限的访问 token 。

如果您使用授权代码授予流程,您将代表用户而不是服务主体获得访问 token 。因此,访问 token 将拥有该用户的权限。

关于azure - 使用服务主体授权访问 Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50652999/

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