向 Azure Active Directory B2C 租户添加 Web API 应用程序
本文展示了如何在 Azure Active Directory B2C (Azure AD B2C) 租户中注册 Web API 资源,以便它们可以接受和响应提供访问令牌的客户端应用程序的请求。
若要在 Azure AD B2C 租户中注册应用程序,可以使用以下步骤:
- 登录到 Azure 门户。
- 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,切换到“目录 + 订阅”菜单中的 Azure AD B2C 租户。
- 在左侧菜单中,选择“Azure AD B2C”。 或者,选择“所有服务”并搜索并选择“Azure AD B2C”。
- 选择“应用注册”,然后选择“新建注册” 。
- 输入应用程序的“名称”。 例如,“webapi1”。
- 在“重定向 URI”下选择“Web”,然后输入 Azure AD B2C 会将应用程序请求的任何令牌返回到其中的终结点。 在生产应用程序中,可以将重定向 URI 设置为
https://localhost:5000
之类的终结点。 开发或测试期间,你可以将它设置为https://jwt.ms
,这是一个 Microsoft 拥有的 Web 应用程序,用于显示已解码的令牌内容(令牌内容始终保留在浏览器中)。 可以随时在注册的应用程序中添加和修改重定向 URI。 - 选择“注册”。
- 记录“应用程序(客户端) ID”,以便在 Web API 的代码中使用。
配置范围
可通过作用域控制对受保护资源的访问。 Web API 使用作用域实施基于作用域的访问控制。 例如,可以让 Web API 用户拥有读取和写入访问权限,或者只拥有读取访问权限。 在本教程中,请使用作用域为 Web API 定义读取和写入权限。
- 选择 “应用注册” 。
- 选择“webapi1”应用程序以打开其“概览”页。
- 在“管理”下,选择“公开 API” 。
- 选择“应用程序 ID URI”旁边的“添加”链接。
- 将默认值(一个 GUID)替换为
api
,然后选择“保存”。 完整的 URI 已显示,应采用https://your-tenant-name.partner.onmschina.cn/api
格式。 Web 应用程序在请求 API 的访问令牌时,应将此 URI 添加为你为 API 定义的每个范围的前缀。 - 在“此 API 定义的范围”下选择“添加范围”。
- 输入以下值来创建一个定义对 API 的读取访问权限的范围,然后选择“添加范围”:
- 范围名称:
demo.read
- 管理员许可显示名称:
Read access to demo API
- 管理员许可说明:
Allows read access to the demo API
- 范围名称:
- 选择“添加范围”,输入以下值来添加一个定义对 API 的写入访问权限的范围,然后选择“添加范围”:
- 范围名称:
demo.write
- 管理员许可显示名称:
Write access to demo API
- 管理员许可说明:
Allows write access to the demo API
- 范围名称:
授予权限
若要从应用程序调用受保护的 Web API,需授予应用程序访问该 API 的权限。 例如,在教程:在 Azure Active Directory B2C 中注册应用程序中,在 Azure AD B2C 中注册了一个名为 webapp1 的 Web 应用程序。 可使用此应用程序调用 Web API。
- 选择“应用注册”,然后选择应该有权访问 API 的 Web 应用程序。 例如,“webapp1”。
- 在“管理”下选择“API 权限” 。
- 在“已配置权限”下,选择“添加权限”。
- 选择“我的 API”选项卡。
- 选择应授予 Web 应用程序对其的访问权限的 API。 例如,“webapi1”。
- 在“权限”下展开“演示”,然后选择前面定义的范围。 例如,demo.read 和 demo.write。
- 选择“添加权限”。
- 选择“向(租户名称)授予管理员许可”。
- 如果系统提示你选择一个帐户,请选择当前登录的管理员帐户,或者使用至少分配了“云应用程序管理员”角色的 Azure AD B2C 租户中的帐户登录。
- 请选择“是”。
- 选择“刷新”,然后确认两个范围的“状态”下是否均显示“已授予...”。
注册应用程序以调用受保护的 Web API。 用户通过 Azure AD B2C 进行身份验证,以便使用该应用程序。 应用程序从 Azure AD B2C 获取授权,以访问受保护的 Web API。