本文介绍了如何将 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。
如果无法使用配置元数据文档,则需要单独收集以下值:
- 颁发者 URL(有时显示为
issuer
) - OAuth 2.0 授权终结点(有时显示为
authorization_endpoint
) - OAuth 2.0 令牌终结点(有时显示为
token_endpoint
) - OAuth 2.0 JSON Web 密钥集文档的 URL(有时显示为
jwks_uri
)
注意
OpenID 提供程序名称不能包含“-”之类的符号,因为 appsetting 将基于此创建,并且不支持它。 请改用“_”。
注意
Azure 需要“openid”、“profile”和“email”范围。 请确保已至少使用这些范围在 ID 提供程序中配置应用注册。