向 Azure Active Directory B2C 租户添加 Web API 应用程序

本文展示了如何在 Azure Active Directory B2C (Azure AD B2C) 租户中注册 Web API 资源,以便它们可以接受和响应提供访问令牌的客户端应用程序的请求。

若要在 Azure AD B2C 租户中注册应用程序,可以使用以下步骤:

  1. 登录到 Azure 门户
  2. 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,切换到“目录 + 订阅”菜单中的 Azure AD B2C 租户
  3. 在左侧菜单中,选择“Azure AD B2C”。 或者,选择“所有服务”并搜索并选择“Azure AD B2C”。
  4. 选择“应用注册”,然后选择“新建注册” 。
  5. 输入应用程序的“名称”。 例如,“webapi1”。
  6. 在“重定向 URI”下选择“Web”,然后输入 Azure AD B2C 会将应用程序请求的任何令牌返回到其中的终结点。 在生产应用程序中,可以将重定向 URI 设置为 https://localhost:5000 之类的终结点。 开发或测试期间,你可以将它设置为 https://jwt.ms,这是一个 Microsoft 拥有的 Web 应用程序,用于显示已解码的令牌内容(令牌内容始终保留在浏览器中)。 可以随时在注册的应用程序中添加和修改重定向 URI。
  7. 选择“注册”。
  8. 记录“应用程序(客户端) ID”,以便在 Web API 的代码中使用。

配置范围

可通过作用域控制对受保护资源的访问。 Web API 使用作用域实施基于作用域的访问控制。 例如,可以让 Web API 用户拥有读取和写入访问权限,或者只拥有读取访问权限。 在本教程中,请使用作用域为 Web API 定义读取和写入权限。

  1. 选择 “应用注册”
  2. 选择“webapi1”应用程序以打开其“概览”页。
  3. 在“管理”下,选择“公开 API” 。
  4. 选择“应用程序 ID URI”旁边的“添加”链接。
  5. 将默认值(一个 GUID)替换为 api,然后选择“保存”。 完整的 URI 已显示,应采用 https://your-tenant-name.partner.onmschina.cn/api 格式。 Web 应用程序在请求 API 的访问令牌时,应将此 URI 添加为你为 API 定义的每个范围的前缀。
  6. 在“此 API 定义的范围”下选择“添加范围”。
  7. 输入以下值来创建一个定义对 API 的读取访问权限的范围,然后选择“添加范围”:
    1. 范围名称demo.read
    2. 管理员许可显示名称Read access to demo API
    3. 管理员许可说明Allows read access to the demo API
  8. 选择“添加范围”,输入以下值来添加一个定义对 API 的写入访问权限的范围,然后选择“添加范围”:
    1. 范围名称demo.write
    2. 管理员许可显示名称Write access to demo API
    3. 管理员许可说明Allows write access to the demo API

授予权限

若要从应用程序调用受保护的 Web API,需授予应用程序访问该 API 的权限。 例如,在教程:在 Azure Active Directory B2C 中注册应用程序中,在 Azure AD B2C 中注册了一个名为 webapp1 的 Web 应用程序。 可使用此应用程序调用 Web API。

  1. 选择“应用注册”,然后选择应该有权访问 API 的 Web 应用程序。 例如,“webapp1”。
  2. 在“管理”下选择“API 权限” 。
  3. 在“已配置权限”下,选择“添加权限”。
  4. 选择“我的 API”选项卡。
  5. 选择应授予 Web 应用程序对其的访问权限的 API。 例如,“webapi1”。
  6. 在“权限”下展开“演示”,然后选择前面定义的范围。 例如,demo.readdemo.write
  7. 选择“添加权限”。
  8. 选择“向(租户名称)授予管理员许可”。
  9. 如果系统提示你选择一个帐户,请选择当前登录的管理员帐户,或者使用至少分配了“云应用程序管理员”角色的 Azure AD B2C 租户中的帐户登录。
  10. 请选择“是”。
  11. 选择“刷新”,然后确认两个范围的“状态”下是否均显示“已授予...”。

注册应用程序以调用受保护的 Web API。 用户通过 Azure AD B2C 进行身份验证,以便使用该应用程序。 应用程序从 Azure AD B2C 获取授权,以访问受保护的 Web API。