授予一个租户中的服务访问其他租户中订阅的权限

时间:2021-06-29 05:56:01

标签: azure azure-devops azure-active-directory

我在 serviceA 中有一个 TenantA,它需要使用 ARM SDK 将资源部署到 subscription_X 中的 tenantB。这意味着 serviceA 也必须有权在订阅_X 中创建资源组。

serviceA 中的 tenantA 如何让贡献者访问 tenantBsubscription_X

ServiceA 是运行在 AKS 或 VM 中的微服务

2 个答案:

答案 0 :(得分:0)

托管标识只能在与其所在订阅链接的租户中使用。 所以它不适用于这种情况。

可以使用服务主体,但需要将其制作成多租户应用程序 + 租户 B 的管理员必须通过手动编写的管理员同意 URL 才能显示在其租户中。< /p>

我认为最简单的方法是让租户 B 管理员在租户 B 中定义应用注册/服务主体。 如果您使用证书身份验证,您将生成证书并将公钥提供给他们,以便他们可以将其分配给租户中的应用程序。 如果使用客户端密码,他们将不得不添加并发送给您。

答案 1 :(得分:0)

据我所知这是不可能的。

考虑到托管身份仅限于单个订阅,我认为您无法使用另一个订阅中的托管身份来管理不同订阅中的资源。

类似地,服务主体是一种特殊类型的 Azure 用户,当您分配对 Azure AD(租户)中的资源的访问权限时,它们会自动创建。它们也不能在租户之间共享。

您需要做的是在目标租户中注册您的 Azure AD 应用程序。因此,将在该租户中创建一个新的服务主体。然后,您可以为该服务主体分配适当的 Azure RBAC 角色,以便它可以在已为其分配角色的 Azure 订阅上执行必要的操作。你可以使用 Azure AD 应用程序的客户端 ID/客户端密钥或客户端 ID/客户端证书来验证服务主体。