通过多租户应用程序创建企业应用程序

本文介绍如何使用多租户应用程序的客户端 ID 在租户中创建企业应用程序。 企业应用程序是指租户中的服务主体。 本文所述的服务主体是单个租户或目录中某个全局应用程序对象的本地表示形式或应用程序实例。

在使用上述任一选项继续添加应用程序之前,请通过尝试登录应用程序来检查企业应用程序是否已在租户中。 如果登录成功,则租户中已存在企业应用程序。

如果确认应用程序不在租户中,请采用以下方法将企业应用程序添加到租户。

先决条件

若要将企业应用程序添加到 Microsoft Entra 租户,你需要:

  • 一个 Microsoft Entra 用户帐户。 如果还没有帐户,可以免费创建一个帐户
  • 以下角色之一:云应用程序管理员或应用程序管理员。
  • 多租户应用程序的客户端 ID(在 Microsoft Graph 中也称为 appId)。

创建企业应用程序

如果您获得管理员同意 URL,请使用 Web 浏览器导航至该 URL,为应用程序授予全租户范围的管理员许可。 向应用程序授予租户范围的管理员同意后,可将其添加到租户中。 租户范围的管理员同意 URL 采用以下格式:

https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=248e869f-0e5c-484d-b5ea1fba9563df41&redirect_uri=https://www.your-app-url.com

其中:

  • {client-id} 是应用程序的客户端 ID(也称为 appId)。

注意

如果尝试使用企业应用程序,并且尚未在租户中创建服务主体,Microsoft Entra 响应时出现“401”未经授权的错误,指出:“客户端应用程序 {appId} 缺少租户 {tenantId} 中的服务主体。若要解决此问题,请使用前面提到的管理员同意 URL 执行同意,从而实例化租户中的服务主体并解决问题。

  1. 运行 connect-MgGraph -Scopes "Application.ReadWrite.All" 并至少以云应用程序管理员角色登录。

  2. 运行以下命令来创建企业应用程序:

    New-MgServicePrincipal -AppId 00001111-aaaa-2222-bbbb-3333cccc4444
    
  3. 若要删除创建的企业应用程序,请运行以下命令:

    Remove-MgServicePrincipal
       -ServicePrincipalId bbbbbbbb-1111-2222-3333-cccccccccccc
    
    

可以使用 Graph 浏览器之类的 API 客户端与 Microsoft Graph 一起工作。

  1. 向客户端应用授予 Application.ReadWrite.All 权限。

  2. 若要创建企业应用程序,请运行以下查询。 appId 是应用程序的客户端 ID。

    POST https://graph.microsoft.com/v1.0/servicePrincipals
    Content-type: application/json
    
    {
      "appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
    }
    
    
  3. 若要删除创建的企业应用程序,请运行以下查询。

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals(appId='00001111-aaaa-2222-bbbb-3333cccc4444')
    
  1. 若要创建企业应用程序,请运行以下命令:

    az ad sp create --id 00001111-aaaa-2222-bbbb-3333cccc4444
    
  2. 若要删除创建的企业应用程序,请运行以下命令:

    az ad sp delete --id bbbbbbbb-1111-2222-3333-cccccccccccc