准备外部租户以在 Node.js Web 应用程序中调用 API
适用于: 员工租户 外部租户(了解详细信息)
在本文中,你将准备 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 权限:
从“应用注册”页中,选择创建的应用程序(例如 ciam-client-app)以打开其“概述”页。
在“管理”下选择“API 权限” 。
在“已配置权限”下,选择“添加权限”。
选择“我的组织使用的 API”选项卡。
在 API 列表中,选择 API(例如 ciam-ToDoList-api)。
选择“委托的权限”选项。
从权限列表中,选择“ToDoList.Read”、“ToDoList.ReadWrite”(必要时使用搜索框)。
选择“添加权限”按钮。
此时,你已正确分配了权限。 但是,由于租户是客户的租户,因此使用者用户本身不能同意这些权限。 要解决此问题,作为管理员的你必须代表租户中的所有用户同意这些权限:
选择“为 <租户名称> 授予管理员同意”,然后选择“是”。
选择“刷新”,然后验证两个权限的“状态”下是否均显示“已为 <租户名称> 授予”。
从“配置的权限”列表中,选择“ToDoList.Read”和“ToDoList.ReadWrite”权限(一次选择一个),然后复制权限的完整 URI 供以后使用。 完整权限 URI 看起来类似于
api://{clientId}/{ToDoList.Read}
或api://{clientId}/{ToDoList.ReadWrite}
。
下一步
接下来,了解如何准备 Web 应用程序和 API。