适用于: 员工租户
外部租户(了解详细信息)
在本文中,你将准备外部租户以进行授权。 本文是四部分指南的第一部分。
先决条件
完成教程中的步骤 :保护在外部租户中注册的 ASP.NET Web API。 完成本教程后,会在客户的租户中注册 Web API,该 API 公开 API 权限并发布应用程序角色。 你还有一个安全的 Web API。 从客户端应用程序调用此 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。