需要澄清 ID 令牌的 email_verified 字段

Need clarification on email_verified field of ID Token

我正在使用 Google 的 OpenID Connect 服务来验证用户。如果 email_verified 字段为假,我正在考虑拒绝所有帐户,但我没有看到有人会在该字段设置为假的情况下攻击我的系统的真实场景。

您第一次登录 Google 时,用户的帐户已通过验证,所以他们不会始终从我的第 3 方应用程序的角度进行验证吗?

如果您从 Google 获得 ID Token,用户的电子邮件将始终得到验证,并且此值将为 true

在极少数情况下,用户尚未验证其帐户的电子邮件地址并尝试使用 OpenID Connect,他们将看到一条错误消息,通知他们需要验证其帐户,以及如何完成验证的步骤.这至少是 Google 的 OpenID Connect 实现的当前行为。

如果您依赖经过验证的电子邮件地址,那么出于正确性,您可能应该拒​​绝没有 email_verified=true 的登录,但好消息是您的系统永远不会看到这种情况Google.

不确定您如何使用电子邮件,但通常身份验证系统使用 subiss ID 令牌声明来唯一标识用户和 IdP,而不是依赖于电子邮件地址可能会发生变化。