邀请申请加入租户

时间:2020-01-24 18:04:23

标签: azure azure-active-directory azure-ad-b2c

我可以邀请用户加入租户。在用户确认邀请并在订阅中分配了角色后,他/她就可以与其他租户的订阅一起查看此订阅。

我可以使用az account list

列出所有租户的用户订阅

是否可以对Azure应用程序执行相同的操作?以某种方式邀请它并授予其访问其他租户中的订阅的权限?或者,通常,应用程序如何才能访问不同租户中的资源(不使用Lighthouse)?

1 个答案:

答案 0 :(得分:2)

应用程序的安全主体是ServicePrincipal对象(很像用户的安全主体是User对象)。如果将某个应用程序配置为多租户应用程序,则可以在任何其他租户中创建该应用程序的服务主体。一旦创建了该服务主体,就可以授予其角色分配。

使用Azure CLI的示例:

  1. 登录到租户A。

    $ az login --tenant "{tenant-A-id-or-domain}"
    
  2. 在租户A中,将应用程序注册(应用程序对象)配置为多租户。 (这里我们正在创建一个新的,但是您也可以使用az ad app update更新一个现有的。)

    $ az ad app create --display-name "App in Tenant A" \
                       --available-to-other-tenants true \
                       --query "appId"
    
    "74dde9de-56e2-4750-a7cc-5da5f021b897"
    
  3. 登录到租户B。

    $ az login --tenant "{tenant-B-id-or-domain}"
    
  4. 为租户B中的应用程序(已在租户A中注册)创建服务主体。请注意,用于id的值是在步骤2中创建的应用程序注册的appId

    $ az ad sp create --id "74dde9de-56e2-4750-a7cc-5da5f021b897" \
                      --query "{appId:appId,displayName:displayName}"
    
    {
      "appId": "4c3e3be1-b735-41b1-a842-f095b9a45849",
      "displayName": "App in Tenant A"
    }
    
  5. 在这一点上,您可以向服务主体授予访问权限。例如,您可以为其分配Azure订阅中资源的角色。

  6. 现在,在向租户B进行身份验证时,您可以使用在应用程序注册中配置的凭据(即证书或客户机密)。

按照我们在此处手动创建的服务主体对象只是一种方法。另一种方法(当应用程序具有某种面向用户的界面(例如,Web应用程序)时特别有用)是使租户B中的用户登录并同意该应用程序。在至少一个用户同意该应用程序之后,该应用程序的服务主体对象将出现在租户B中,并且可以被授予角色分配。

相关问题