首页 > 解决方案 > Azure 多租户应用程序创建有权访问一个订阅的用户/服务主体

问题描述

我有一个代表客户管理 Azure 资源的多租户应用程序。一旦创建了服务主体并定义了角色,我们就可以使用该应用程序管理资源。

但是,我们有一个用例,我们有第二个系统,它以每个客户为基础工作,它只管理一个订阅。有什么方法可以让我创建一个只能访问该单一订阅的帐户?

我试图为创建的服务主体设置密码。不幸的是,如果与服务主体关联的应用不在同一个租户中,您似乎无法使用服务主体帐户登录 Azure。

标签: azure-active-directoryazure-ad-graph-api

解决方案


您需要在租户中注册一个服务主体,并通过 Azure 的 RBAC 访问订阅资源。使用多租户应用程序,当用户同意其权限时会生成服务主体。

对于您的方案,您需要在其 Azure AD 租户中创建一个应用程序(这会自动为租户中的应用程序创建一个服务主体)。然后,您需要为服务主体赋予订阅角色。然后,您可以使用服务主体的应用程序 ID 和密码获取访问令牌。您无法通过正常的登录表单登录。您需要针对 Azure AD 进行客户端凭据身份验证,并且您将在响应中获得一个访问令牌,然后您可以使用该令牌对 Azure 的 ARM API 的请求进行身份验证。

请询问您是否需要有关某些步骤的详细信息:)


推荐阅读