跳转到主要内容

【Web技术】FedCM和后第三方Cookie时代OAuth流的影响

第三方Cookie已经成为用户跟踪和隐私问题的代名词。2021年,谷歌提出了一项计划,将第三方cookie从基于铬的浏览器中退役,并推出FedCM API。在本博客中,我们将讨论这一变化,以及它对传统OAuth流意味着什么。

目录

  • 介绍
  • 什么是第三方cookie
  • 对OAuth协议的影响
  • FedCM简介
  • 支持FedCM:身份提供商如何适应
  • 结论


介绍


联合身份一直是身份验证领域的游戏规则改变者。凭借更高的安全性、更顺畅的登录和更大的转换,它已成为应用程序最受欢迎的身份验证选择。尽管有几种方法可以启用联合身份,但OAuth协议已成为最受欢迎的协议。2022年,谷歌为保护人们的在线隐私而创建的隐私沙盒团队发布了一份公告,宣布发布和测试新的以隐私为重点的API,最终目标是到2024年从Chrome中退役第三方cookie。他们为什么这么做?如何访问不同域的cookie?这对OAuth有何影响?在这个博客中,我们将探讨这些问题以及更多内容。

【Web技术】使用FedCM进行依赖方联合登录

本文描述了依赖方(RP)可以使用联合凭据管理(FedCM)API通过身份提供程序(IdP)执行联合登录的过程。

调用get()方法


RP可以使用标识选项调用navigator.credential.get(),以请求用户使用他们已经在浏览器上登录的现有IdP帐户登录RP。IdP通过其客户端ID来识别RP,该客户端ID是由IdP在特定于IdP的单独进程中发布给RP的。IdP使用登录时提供给浏览器的凭据(cookie)来识别特定用户。

如果IdP成功验证了用户身份,该方法将返回一个承诺,该承诺将通过IdentityCredential对象实现。此对象包含一个令牌,该令牌包含已使用IdP的数字证书签名的用户身份信息。

RP将令牌发送到其服务器以验证证书,一旦成功,就可以使用令牌中的(现在受信任的)身份信息将他们登录到其服务(启动新会话),如果他们是新用户,则可以将他们注册到其服务,等等。

如果用户从未登录过IdP或已注销,则get()方法会拒绝并返回错误,RP可以将用户引导到IdP登录页面以登录或创建帐户。

【Web技术】联合凭据管理(FedCM)API

实验:这是一项实验技术
在生产中使用之前,请仔细检查浏览器兼容性表。

联合凭据管理API(或FedCM API)为身份提供者(IdP)提供了一种标准机制,使身份联合服务以保密的方式在网络上可用,而不需要第三方cookie和重定向。这包括一个JavaScript API,它允许在登录或注册网站等活动中使用联合身份验证。

FedCM概念


身份联合是指将用户身份验证从需要用户注册或登录的网站(如电子商务或社交网站(也称为依赖方或RP)委托给可信的第三方身份提供商(IdP),如谷歌、脸书/Meta、GitHub等。

依赖方(RP)可以与IdP集成,允许用户使用他们在IdP注册的帐户登录。与每个网站使用单独的用户名和密码管理自己的登录需求相比,通过一小组专用IdP进行的身份联合在安全性、消费者信心和用户体验方面改进了网络身份验证。

问题是,传统的身份联合依赖于<iframe>、重定向和第三方cookie,它们也用于第三方跟踪。浏览器正在限制这些功能的使用,以保护用户隐私,但副作用是,这使得有效的非跟踪使用更难实现,其中包括身份联合。

Federated Credential Management API 开发者指南

了解如何使用 FedCM 进行可保护隐私的身份联合。

FedCM(联合凭据管理)是一种适用于联合身份服务(例如“使用以下账号登录”)的隐私保护方法;借助该方法,用户可以登录网站,而无需与身份服务或网站共享其个人信息。

如需详细了解 FedCM 用例、用户流和 API 路线图,请参阅 FedCM API 简介