你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:在 Azure Active Directory B2C 中注册 Web 应用

必须在你管理的租户中注册应用程序,然后这些应用程序才能与 Azure Active Directory B2C (Azure AD B2C) 交互。 本教程介绍如何使用 Azure 门户注册 Web 应用程序。

“Web 应用”是指在服务器上执行大多数应用程序逻辑的传统 Web 应用。 它们可能是使用 ASP.NET Core、Spring (Java)、Flask (Python) 和 Express (Node.js) 等框架生成的。

重要

如果改用单页应用程序(“SPA”)(例如,使用 Angular、Vue 或 React),请了解如何注册单页应用程序

如果使用的是本机应用(例如 iOS、Android、移动和桌面应用),请了解如何注册本机客户端应用程序

先决条件

如果没有 Azure 订阅,请在开始之前创建一个免费帐户

如果尚未创建自己的 Azure AD B2C 租户,请立即创建一个。 可以使用现有的 Azure AD B2C 租户。

注册 Web 应用程序

要在 Azure AD B2C 租户中注册 Web 应用程序,可以使用新的统一“应用注册”体验或旧版“应用程序(旧版)”体验。 详细了解此新体验

  1. 登录 Azure 门户

  2. 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,从“目录 + 订阅”菜单中切换到你的 Azure AD B2C 租户。

  3. 在 Azure 门户中,搜索并选择“Azure AD B2C”。

  4. 选择“应用注册”,然后选择“新建注册” 。

  5. 输入应用程序的“名称”。 例如,“webapp1”。

  6. 在“支持的帐户类型”下,选择“任何标识提供者或组织目录中的帐户(用于通过用户流对用户进行身份验证)” 。

  7. 在“重定向 URI”下,选择“Web”,然后在 URL 文本框中输入 https://jwt.ms

    “重定向 URI”是授权服务器(在本例中为 Azure AD B2C)在完成与用户的交互后将用户定向到的终结点,也是在成功授权后向其发送访问令牌或授权代码的终结点。 在生产应用程序中,它通常是运行应用的公共可访问终结点,如 https://contoso.com/auth-response。 出于类似本教程的测试目的,你可以将它设置为 https://jwt.ms,这是一个 Microsoft 拥有的 Web 应用程序,用于显示已解码的令牌内容(令牌内容始终保留在浏览器中)。 在应用开发期间,你可以添加应用程序本地侦听的终结点,如 https://localhost:5000。 可以随时在注册的应用程序中添加和修改重定向 URI。

    重定向 URI 存在以下限制:

    • 回复 URL 必须以方案 https 开头,除非使用 localhost 重定向 URL。
    • 回复 URL 区分大小写。 其大小写必须与正在运行的应用程序的 URL 路径的大小写匹配。 例如,如果应用程序将作为其路径 .../abc/response-oidc 的一部分包含在内,请不要在回复 URL 中指定 .../ABC/response-oidc。 由于 Web 浏览器将路径视为区分大小写,因此在重定向到大小写不匹配的 .../ABC/response-oidc URL 时,可能会排除与 .../abc/response-oidc 关联的 cookie。
    • 回复 URL 应包括或排除应用程序预期的尾随正斜杠。 例如,https://contoso.com/auth-responsehttps://contoso.com/auth-response/ 可能会被视为应用程序中的非匹配 URL。
  8. 在“权限”下,选择“授予对 openid 和 office_access 权限的管理员许可”复选框。

  9. 选择“注册”。

提示

如果看不到在“应用注册”下创建的应用,请刷新门户。

创建客户端机密

对于 Web 应用程序,需要创建应用程序机密。 客户端密码也称为应用程序密码。 应用程序将使用此密码来交换访问令牌的授权代码。

  1. 在“Azure AD B2C - 应用注册”页中,选择已创建的应用程序,例如 webapp1。
  2. 在左侧菜单中“管理”下,选择“证书和机密”。
  3. 选择“新建客户端机密”。
  4. 在“说明”框中输入客户端机密的说明。 例如,clientsecret1
  5. 在“过期时间”下,选择机密持续生效的时间,然后选择“添加”。
  6. 记录密码的,以便在客户端应用程序代码中使用。 退出此页面后,此机密值永不再显示。 在应用程序的代码中将此值用作应用程序机密。

注意

出于安全考虑,您可以定期滚动更新应用程序密码,或在紧急情况下立即滚动更新。 任何与 Azure AD B2C 集成的应用程序都应准备好处理密码滚动更新事件,而不管滚动更新可能发生的频率如何。 可以设置两个应用程序密码,使应用程序能够在应用程序密码轮换事件期间继续使用旧密码。 若要添加另一个客户端密码,请重复本部分中的步骤。

启用 ID 令牌隐式授权

如果注册此应用,并利用 https://jwt.ms/ 配置该应用来测试用户流或自定义策略,则需要在应用注册中启用隐式授权流:

  1. 在左侧菜单中的“管理”下,选择“身份验证” 。

  2. 在“隐式授权和混合流”下,同时选中“访问令牌(用于隐式流)”和“ID 令牌(用于隐式流和混合流)”复选框。

  3. 选择“保存” 。

后续步骤

本文介绍了如何执行以下操作:

  • 注册 Web 应用程序
  • 创建客户端机密

了解如何在 Azure Active Directory B2C 中创建用户流