从 Microsoft Entra ID 中的多租户应用程序创建企业应用程序

本文介绍如何使用多租户应用程序的客户端 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)。

注意

如果你尝试使用企业应用程序,但服务主体尚未在租户中创建,则 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 <objectID>
    

可以使用 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
    

后续步骤