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

将应用服务或 Azure Functions 应用配置为使用 OpenID Connect 提供程序进行登录

本文介绍了如何将 Azure 应用服务或 Azure Functions 配置为使用符合 OpenID Connect 规范的自定义身份验证提供程序。 OpenID Connect (OIDC) 是许多标识提供者 (IDP) 使用的行业标准。 无需了解规范的详细信息便可将应用配置为使用符合规范的 IDP。

你可以将应用配置为使用一个或多个 OIDC 提供者。 必须在配置中为每个提供者提供独一无二的字母数字名称,只有一个提供者可以充当默认重定向目标。

向以下标识提供者注册你的应用程序

提供者会要求你向其注册应用程序的详细信息。 其中一个步骤涉及指定重定向 URI。 此重定向 URI 的形式为 <app-url>/.auth/login/<provider-name>/callback。 每个标识提供者都应提供有关如何完成这些步骤的更多说明。 <provider-name> 将引用你在 Azure 中提供给 OpenID 提供程序名称的易记名称。

注意

某些提供者可能要求你执行额外的配置步骤,并说明了如何使用其提供的值。 例如,Apple 提供了一个私钥,该私钥本身并不用作 OIDC 客户端机密,必须使用它来制作一个 JWT,该 JWT 视为你在应用配置中提供的机密(请参阅使用 Apple ID 登录文档中的“创建客户端机密”部分)

你需要收集应用程序的客户端 ID 和客户端机密。

重要

客户端密钥是一个非常重要的安全凭据。 不要与任何人共享此密钥,也不要在客户端应用程序中分发它。

此外,你还需要提供者的 OpenID Connect 元数据。 这通常是通过一个配置元数据文档(提供者的颁发者 URL,以 /.well-known/openid-configuration 为后缀)公开的。 收集此配置 URL。

如果无法使用配置元数据文档,则需要单独收集以下值:

向应用程序添加提供者信息

  1. 登录 Azure 门户并导航到你的应用程序。
  2. 在左侧菜单中选择“身份验证”。 选择“添加标识提供者”。
  3. 在“标识提供者”下拉列表中选择“OpenID Connect”。
  4. 提供此前为“OpenID 提供者名称”选择的独一无二的字母数字名称。
  5. 如果你有标识提供者提供的元数据文档的 URL,请提供该值作为“元数据 URL”。 否则,请选择“单独提供终结点”选项,将从标识提供者处收集的每个 URL 放入相应的字段中。
  6. 在相应的字段中提供之前收集的“客户端 ID”和“客户端机密”。
  7. 为客户端机密指定一个应用程序设置名称。 客户端机密将存储为应用设置,以确保以安全方式存储机密。 如果你想要在 Azure Key Vault 中管理机密,稍后可以将该设置更新为使用 Key Vault 引用
  8. 按“添加”按钮完成标识提供者的设置。

注意

OpenID 提供程序名称不能包含“-”之类的符号,因为 appsetting 将基于此创建,并且不支持它。 请改用“_”。

注意

Azure 需要“openid”、“profile”和“email”范围。 请确保已至少使用这些范围在 ID 提供程序中配置应用注册。

后续步骤