本文介绍了如何将 Azure 应用服务或 Azure Functions 配置为使用符合 OpenID Connect (OIDC) 规范的自定义身份验证提供程序。 OIDC 是众多标识提供者 (IDPs) 使用的行业标准。 无需了解应用使用 OIDC 标识提供者的规范的详细信息。
你可以将应用配置为使用一个或多个 OIDC 提供者。 每个提供程序必须在配置中具有唯一的字母数字名称。 只有一个提供程序可以充当默认的重定向目标。
提供商会要求你使用该标准注册应用程序的详细信息。 其中一个步骤涉及指定格式为 <app-url>/.auth/login/<provider-name>/callback
的重定向 URI。 每个标识提供者都应提供有关如何完成这些步骤的更多说明。
<provider-name>
值引用你在 Azure 中提供给 OpenID 提供程序名称的易记名称。
注意
某些提供程序可能需要额外的步骤才能配置和使用它们提供的值。 例如,Apple 提供了一个私钥,该私钥本身并不用作 OIDC 客户端密码。 您可以使用它来创建 JSON Web 令牌(JWT)。 使用 Web 令牌作为在应用配置中提供的机密。 有关详细信息,请参阅 “创建客户端密码”。
你需要收集应用程序的客户端 ID 和客户端密码。 客户端密码是一个非常重要的安全凭据。 不要与任何人共享此机密,也不会将其分发到客户端应用程序中。
您还需要获取提供者的 OIDC 元数据。 此元数据通常是通过一个配置元数据文档(提供程序的颁发者 URL,以 /.well-known/openid-configuration
为后缀)公开的。 获取此配置 URL。
如果无法使用配置元数据文档,请单独获取以下值:
- 颁发者 URL(有时显示为
issuer
) -
OAuth 2.0 授权终结点(有时显示为
authorization_endpoint
) -
OAuth 2.0 令牌终结点(有时显示为
token_endpoint
) -
OAuth 2.0 JSON Web 密钥集文档的 URL(有时显示为
jwks_uri
)
若要为 OpenID Connect 提供程序添加提供程序信息,请执行以下步骤。
登录到 Azure 门户 并转到应用。
在左侧菜单中,选择 “设置>身份验证”。 然后选择“添加标识提供者”。
对于 标识提供者,请选择 “OpenID Connect”。
对于“OpenID 提供程序名称”,请提供此前选择的唯一字母数字名称。
如果你有标识提供者提供的元数据文档的 URL,请提供该值作为“元数据 URL”。
否则,请选择 “单独提供终结点”。 将标识提供者的每个 URL 放在相应的字段中。
提供之前为 客户端 ID 和 客户端机密收集的值。
为客户端密码指定一个应用程序设置名称。 客户端密码将存储为应用设置,以确保以安全方式存储机密。 若要管理 Azure Key Vault 中的机密,请稍后更新该设置以使用 Azure Key Vault 引用。
选择“添加”以完成标识提供者的设置。
注意
OpenID 提供程序名称不能包含连字符(-),因为基于此名称创建了应用设置。 应用设置不支持连字符。 请改用下划线 (_)。
Azure 需要 openid
、 profile
和 email
范围。 请确保已至少使用这些范围在 ID 提供程序中配置应用注册。