准备外部租户以在 Node.js Web 应用程序中调用 API

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

在本文中,你将准备 Microsoft Entra 外部 ID 租户以进行授权。 本文是由四部分组成的指南的第一部分。

先决条件

  • 完成教程:准备外部租户以在 Node.js Web 应用中登录用户中的步骤。 完成本教程后,你将在客户的租户中注册一个应用,而你已经有一个用于登录用户的 Web 应用。 我们将此 Web 应用程序称为客户端应用程序。 你可以扩展此应用程序以调用受保护的 Web API。

  • 完成教程:保护在外部租户中注册的 ASP.NET Web API 中的步骤。 完成此教程后,请在客户的租户中注册 Web API,这将公开 API 权限并发布应用程序角色。 你还有一个受保护的 Web API。 请从客户端 Web 应用程序调用此 Web API。

配置 idtyp 令牌声明 [可选]

可以包含 idtyp 可选声明,以帮助 Web API 确定令牌是应用令牌还是应用+用户令牌。 尽管可以将 scp 和 roles 声明的组合用于同一目的,但使用 idtyp 声明仍是区分应用令牌和应用 + 用户令牌的最简单方法。 例如,当令牌为仅限应用的令牌时,此声明的值为 app

使用配置可选声明一文中的步骤将 idtyp 声明添加到访问令牌:

  • 对于“令牌类型”,选择“访问”
  • 从可选声明列表中选择 idtyp。

向 Web 应用授予 API 权限

根据先决条件,你在客户的租户中注册了客户端应用。 你还在客户中注册了一个 Web API 应用。 现在,你需要向客户端应用授予 API 权限:

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

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

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

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

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

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

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

  8. 选择“添加权限”按钮。

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

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

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

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

下一步

接下来,了解如何准备 Web 应用程序和 API。