【专家智能体】百度文心一言系列开发编程专家
- Python全栈专家Huck
- Python培训助手Huck
- Python架构专家Huck
- python编程大师Huck
【专家智能体】百度文心一言系列高管智能助手
企业高管
【开发智能体】百度文心一言系列软件和企业架构智能助手
架构设计
【开发智能体】百度文心一言系列开发编程智能助手
编程开发
【开发智能体】豆包系列:一系列开发编程和架构智能体
开发专家
【Web技术】FedCM和后第三方Cookie时代OAuth流的影响
第三方Cookie已经成为用户跟踪和隐私问题的代名词。2021年,谷歌提出了一项计划,将第三方cookie从基于铬的浏览器中退役,并推出FedCM API。在本博客中,我们将讨论这一变化,以及它对传统OAuth流意味着什么。
目录
- 介绍
- 什么是第三方cookie
- 对OAuth协议的影响
- FedCM简介
- 支持FedCM:身份提供商如何适应
- 结论
介绍
联合身份一直是身份验证领域的游戏规则改变者。凭借更高的安全性、更顺畅的登录和更大的转换,它已成为应用程序最受欢迎的身份验证选择。尽管有几种方法可以启用联合身份,但OAuth协议已成为最受欢迎的协议。2022年,谷歌为保护人们的在线隐私而创建的隐私沙盒团队发布了一份公告,宣布发布和测试新的以隐私为重点的API,最终目标是到2024年从Chrome中退役第三方cookie。他们为什么这么做?如何访问不同域的cookie?这对OAuth有何影响?在这个博客中,我们将探讨这些问题以及更多内容。
【IAM】被阻止的第三方Cookie如何可能影响Okta环境
概述
广告商经常使用第三方cookie来跟踪多个网站上的用户行为,从而建立用户在线活动的详细档案。这引起了人们对隐私的严重担忧,因为许多用户对未经其明确同意而不断被监控和分析的想法感到不舒服。阻止第三方cookie是防止此类跟踪的一种方式。
从13.1版本开始,Safari默认会阻止第三方cookie,从而中断某些流中的Okta功能。Firefox和其他浏览器也在推出类似的更改。
谷歌Chrome计划在2024年第一季度为1%的用户禁用第三方cookie,然后在2024第三季度增加到100%的用户。点击此处阅读更多关于谷歌计划的信息:取消Chrome用户的第三方cookie。
应用于
第三方Cookie
原因
如果您使用Okta-hosted登录页面,并且您的应用程序未从浏览器调用会话API,则此问题不会影响您的组织。拥有自己登录功能的客户可能会受到影响。
【Web技术】如何处理浏览器中的第三方cookie阻止
许多浏览器会阻止第三方cookie,即对浏览器地址栏中显示的域以外的域的请求。这些cookie也称为跨域cookie。此块打破了隐式流,需要新的身份验证模式才能成功登录用户。在Microsoft身份平台中,我们使用带有代码交换验证密钥【Proof Key for Code Exchange】(PKCE)的授权流和刷新令牌,以在第三方cookie被阻止时保持用户登录。
什么是智能跟踪保护(ITP)和隐私沙盒?
Apple Safari有一个默认的隐私保护功能,称为智能跟踪保护(ITP)。Chrome有一个名为“隐私沙盒”的浏览器隐私倡议。这些举措涵盖了浏览器的许多不同的浏览器隐私努力,并具有不同的时间表。这两项工作都会阻止跨域请求的“第三方”cookie,Safari和Brave默认会阻止第三方cookie。Chrome最近宣布,他们将开始默认屏蔽第三方cookie。隐私沙盒包括对分区存储的更改以及第三方cookie阻止。
一种常见的用户跟踪方式是在后台将iframe加载到第三方网站,并使用cookie在互联网上关联用户。不幸的是,这种模式也是在单页应用程序(SPA)中实现隐式流的标准方式。阻止第三方cookie以保护用户隐私的浏览器也可以阻止SPA的功能。
【Web技术】在父窗口和子iframe之间发送数据-PostMessage API
Post Message API的替代方案
Channel Messaging API是PostMessage API的一个非常好的替代方案,具有某些优势,如速度和易用性。因此,如果您想跨上下文传输大型JavaScript对象,您可能需要考虑使用Channel Messaging API。如果你想看的话,我有一篇很好的文章和一个演示。
将数据从一个上下文发送到另一个上下文
使用JavaScript,您可以在上下文(即主窗口)之间向iframe传递数据,反之亦然。如果您的主窗口打开了一个新选项卡,您可以将数据从主窗口发送到新选项卡,即使用postMessage()和Channel Messaging API进行跨窗口通信和数据传输。在这篇文章中,我们将只讨论postMessage API。
让我们现实一点——一些上下文之间交流的例子和所有可能的上下文列表
1.从父窗口向子iframe发送数据:
让我们看看如何将一些数据从父窗口发送到子iframe。