在外部租户中注册应用

适用于:带灰色 X 号的白色圆圈。 员工租户 带白色对号的绿色圆圈。 外部租户(了解详细信息

Microsoft Entra 外部 ID 使组织能够管理客户的标识,并安全地控制对面向公众的应用程序和 API 的访问。 允许客户在其中购买产品、订阅服务或访问其帐户和数据的应用程序。 客户只需在设备或 Web 浏览器上登录一次,即可访问你向其授权的所有应用程序。

若要使应用程序能够通过外部 ID 登录,需要通过外部 ID 注册应用。 应用注册会在应用与外部 ID 之间建立信任关系。 在应用注册过程中,请指定重定向 URI。 重定向 URI 是一个终结点,用户进行身份验证之后,外部 ID 会将用户重定向到该终结点。 此应用注册过程会生成应用程序 ID(也称为“客户端 ID”),作为该应用的唯一标识 。

外部 ID 支持各种新式应用程序体系结构(例如 Web 应用或单页应用)的身份验证。 每个应用程序类型与外部租户的交互不同,因此,必须指定要注册的应用程序的类型。

本文介绍如何在外部租户中注册应用程序。

先决条件

选择应用类型

注册单页应用

外部 ID 支持对单页应用 (SPA) 进行身份验证。

以下步骤演示如何在 Microsoft Entra 管理中心注册 SPA:

  1. 至少以应用程序开发人员的身份登录到 Microsoft Entra 管理中心

  2. 如果你有权访问多个租户,请使用顶部菜单中的“设置”图标 ,通过“目录 + 订阅”菜单切换到你的外部租户

  3. 浏览到“标识”>“应用程序”>“应用注册”。

  4. 选择“+ 新建注册”。

  5. 在出现的“注册应用程序”页面中,输入应用程序的注册信息:

    1. 名称部分,输入一个将向应用用户显示的有意义的应用程序名称,例如 ciam-client-app

    2. 在“支持的帐户类型”下,选择“仅此组织目录中的帐户” 。

    3. 在“重定向 URI (可选)”下,选择“单页应用程序(SPA)”,然后在 URL 框中输入 http://localhost:3000/

  6. 选择“注册”。

  7. 注册完成后,将显示应用程序的“概述”窗格。 记录要在应用程序源代码中使用的目录(租户)ID 和应用程序(客户端)ID。

关于重定向 URI

重定向 URI 是授权服务器(在本例中为 Microsoft Entra ID)在完成与用户的交互后将用户发送到的终结点,也是在成功授权后将访问令牌或授权代码发送到的终结点。

在生产应用程序中,它通常是运行应用的公共可访问终结点,如 https://contoso.com/auth-response

在应用开发过程中,可以添加应用程序在本地侦听的终结点,如 http://localhost:3000. 可以随时在注册的应用程序中添加和修改重定向 URI。

重定向 URI 存在以下限制:

  • 回复 URL 必须以方案 https 开头,除非使用 localhost 重定向 URL。

  • 回复 URL 区分大小写。 其大小写必须与正在运行的应用程序的 URL 路径的大小写匹配。 例如,如果应用程序将作为其路径 .../abc/response-oidc 的一部分包含在内,请不要在回复 URL 中指定 .../ABC/response-oidc。 由于 Web 浏览器将路径视为区分大小写,因此在重定向到大小写不匹配的 .../ABC/response-oidc URL 时,可能会排除与 .../abc/response-oidc 关联的 cookie。

  • 回复 URL 应包括或排除应用程序预期的尾随正斜杠。 例如,https://contoso.com/auth-responsehttps://contoso.com/auth-response/ 在应用程序中可能会被视为不匹配的 URL。

注册应用程序后,它会分配有 User.Read 权限。 但由于该租户是外部租户,因此客户用户本身不能同意此权限。 作为管理员,你必须代表租户中的所有用户同意此权限:

  1. “应用注册”页中,选择创建的应用程序(例如 ciam-client-app)以打开其“概述”页。

  2. 在“管理”下选择“API 权限”。

    1. 选择“为 <租户名称> 授予管理员同意”,然后选择“是”。
    2. 选择“刷新”,然后验证相应权限的“状态”下是否显示“已为 <租户名称> 授权”

授予 API 权限(可选):

如果 SPA 需要调用 API,则必须授予 SPA API 权限才能调用 API。 还必须注册需要调用的 Web API

若要授予客户端应用 (ciam-client-app) API 权限,请执行以下步骤:

  1. 从“应用注册”页中,选择创建的应用程序(例如 ciam-client-app)以打开其“概述”页。

  2. 在“管理”下选择“API 权限” 。

  3. 在“已配置权限”下,选择“添加权限”。

  4. 选择“我的组织使用的 API”选项卡。

  5. 在 API 列表中,选择 API(例如 ciam-ToDoList-api)。

  6. 选择“委托的权限”选项。

  7. 从权限列表中,选择“ToDoList.Read”、“ToDoList.ReadWrite”(必要时使用搜索框)。

  8. 选择“添加权限”按钮。 此时,你已正确分配了权限。 但是,由于租户是客户的租户,因此使用者用户本身不能同意这些权限。 若要解决此问题,作为管理员的你必须代表租户中的所有用户同意这些权限:

    1. 选择“为 <租户名称> 授予管理员同意”,然后选择“是”。

    2. 选择“刷新”,然后验证两个范围的“状态”下是否均显示“已为 <租户名称> 授予”。

  9. 从“配置的权限”列表中,选择“ToDoList.Read”和“ToDoList.ReadWrite”权限(一次选择一个),然后复制权限的完整 URI 供以后使用。 完整权限 URI 看起来类似于 api://{clientId}/{ToDoList.Read}api://{clientId}/{ToDoList.ReadWrite}

若要了解如何通过添加链接来公开权限,请转到 Web API 部分。

测试用户流(可选)

若要使用此应用注册测试“用户流”,请启用用于身份验证的隐式授权流。

重要

隐式流应仅用于测试目的,而不是对生产应用中的用户进行身份验证。 完成测试后,建议将其删除。

若要启用该隐式流,请执行以下步骤:

  1. 至少以应用程序开发人员的身份登录到 Microsoft Entra 管理中心
  2. 如果你有权访问多个租户,请使用顶部菜单中的“设置”图标 ,通过“目录 + 订阅”菜单切换到你的外部租户
  3. 浏览到“标识”>“应用程序”>“应用注册”。
  4. 选择创建的应用注册。
  5. 在“管理”下,选择“身份验证”。
  6. 在“隐式授权和混合流”下,选中“ID 令牌(用于隐式流和混合流)”复选框。
  7. 选择“保存”。

找到“应用程序(客户端) ID”

注册新应用程序后,可以从 Microsoft Entra 管理中心的概述中找到“应用程序(客户端) ID”。

  1. 从“应用注册”页中选择“所有应用程序”或“拥有的应用程序”选项卡。

  2. 选择应用程序以打开其“概述”页。

  3. 在“概要”下,找到所有应用详细信息,包括“应用程序(客户端) ID”。

    屏幕截图显示“应用程序(客户端) ID”。

后续步骤