联合身份

联合身份系统是一个身份提供商(IdP)在用户和依赖方之间充当中介的系统,让用户可以使用一组凭据与多个不同的依赖方进行身份验证。

传统上,在 Web 中用户将使用用户名和密码登录网站,网站将根据存储在后端的(经过适当哈希加盐处理的)副本来验证密码。

在这种模型中,如果用户在不同的网站上有多个帐户,他们必须记住许多密码。这会促进不良的密码实践,比如为多个帐户使用相同的密码。

在联合身份系统中,身份提供商:

  • 管理用户的凭据并可以对用户进行身份验证
  • 受到多个网站的信任,可以对用户的身份进行断言。

用户可以使用身份提供商进行身份验证,如果验证成功,身份提供商将向用户的浏览器返回一个令牌。用户的浏览器将令牌发送给网站,网站可以验证它是否由 IdP 发行。如果验证成功,网站就可以同意用户的登录操作。

联合身份通常由公司以服务的形式提供:例如,拥有 Google、Microsoft 或 Facebook 帐户的用户可以使用这些帐户登录许多网站。网站通常必须实现一个特定于身份提供商的令牌验证过程。然而,开放标准,如 OpenIDOAuthSAML 在联合身份系统的实现中被广泛使用。

尽管联合身份使用户登录多个不同帐户变得更加容易,同时也可以极大地提高安全性,但它可能对用户的隐私产生严重影响。如果设计不当,联合身份系统可能允许身份提供商跟踪用户在网上的活动:用户会登录多个不同的站点。Web 上早期的联合身份系统是建立在诸如第三方 cookie 之类的技术上的,这些技术本质上侵犯了隐私。随着这些技术被浏览器弃用,需要新的方法。联合凭证管理(FedCM)API 提供了一个标准化的保护隐私的机制,用于实现 Web 上的联合身份。

参见