gpt4 book ai didi

azure - 如何使用在托管资源组内具有权限的身份来部署托管应用程序?

转载 作者:行者123 更新时间:2023-12-04 14:14:25 28 4
gpt4 key购买 nike

将市场托管应用程序产品/服务部署到客户订阅中时,您可以在与托管应用程序关联的托管资源组中创建一个身份。但是,为了使该身份具有任何权限,必须为其分配角色。

当发布者和客户位于同一租户中时,可以按预期创建 roleAssignment,并且身份在托管资源组内具有权限。

但是,当客户位于不同的租户(和事件目录)中时,我会收到以下错误:

Principal not found in tenant '[PUBLISHER TENANT ID]'. If you are attempting to PUT this role assignment in tenant '[CUSTOMER TENANT ID]' then the delegatedManagedIdentityResourceId property must be specified

查看提到的delegateManagedIdentityResourceId,它很快就会变得非常复杂,我不确定这就是我想要走的路,或者它是否能让我到达我需要去的地方,这是在托管资源组中拥有一个身份,该身份有权在托管资源组中执行读/写操作。

谢谢。

最佳答案

我遇到了完全相同的问题。我的案例也是通过市场报价发布托管应用程序。实际上有两个相关问题。

  1. 在部署过程中向托管资源组分配角色将会失败。

请注意,这是客户租户中的用户从市场部署此托管应用程序。但是,此 roleAssignments block 正在尝试从发布者的租户中查找主体。但系统生成的身份是在客户的租户中创建的,因为托管应用程序毕竟是部署到客户的租户上的。

2.

从 mainTemplate.json 创建的托管标识(用户托管标识或系统托管标识)无法访问 mainTemplate.json 中的任何资源。这是由于市场创建的拒绝声明造成的。因此,即使角色分配针对模板中的资源,部署也会显示成功,但不会创建实际的分配。

因此,解决方法是在发布商的 AD 中创建一个应用程序并将其添加到专用组中,如 here 中所述。

然后为此应用程序创建客户端 key 。这将赋予该客户端 ID 对所有资源的完全权限(毕竟位于管理组中)。然后,在托管资源组中运行的任何应用程序代码都必须使用凭据向 AD 进行身份验证。应创建一个 key 保管库来存储凭据,以防止客户读取它。

归根结底,如果您的应用程序代码需要执行 Azure 管理 API 来读取信息,则需要此方法。

关于azure - 如何使用在托管资源组内具有权限的身份来部署托管应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61878997/

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