Authing 文档文档
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
应用集成
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
应用集成
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
旧版
使用指南
  • 快速开始

  • 对用户进行认证

  • 对用户进行权限管理

  • 授权

  • 管理用户账号

  • 管理用户目录

  • 同步中心

  • 应用

  • 成为联邦认证身份源

  • 连接外部身份源(IdP)

  • 微信生态全场景能力

  • 迁移用户到 Authing

  • 管理组织机构

  • 安全设置

  • 品牌化

  • 自动化

  • 审计日志

  • 设置

  • Authing 令牌
  • 私有化部署方案

  • 常见问题 FAQ

    • 如何获取用户池 ID
    • 如何获取应用 ID
    • 如何验证用户身份凭证(token)
    • 使用统一域名的用户池
    • 如何识别用户来源
    • 在本地联表 Authing 用户与你的业务数据
    • 禁用第三方 Cookie 对 Authing 的影响
    • 如何部署中转代理服务器
    • 如何获取 Authing 服务器集群 IP
    • 同步中心常见问题
    • Pipeline 常见问题
    • 企业微信扫码登录常见问题
  1. 使用指南
  2. /
  3. 常见问题 FAQ

  4. /
  5. 禁用第三方 Cookie 对 Authing 的影响

¶ 禁用第三方 Cookie 对 Authing 的影响

更新时间: 2022-11-18 20:50:35
编辑

本文讲述浏览器阻止第三方 Cookie 时产生的影响,解释其原因以及给出解决方案。

¶ 产生影响的原因

从 13.1 版本开始,Safari 默认会阻止第三方 Cookie,会影响 Authing 的某些单点登录功能。其他类似的更新,从 Chrome 83 版本开始,隐身模式下默认禁用第三方 Cookie。其他浏览器也在慢慢进行此类更新以保护用户隐私。很多浏览器将禁用第三方 Cookie 作为了一个安全配置功能。

如果你使用 Authing 托管的登录页面的话不会受此类问题影响。自行托管登录页面以及使用 trackSession 功能的用户会受到影响。因为请求 Authing API 的时需要跨域携带 Authing 相关的 Cookie。

在浏览器发送需要携带 Cookie 的跨域请求时,浏览器会拦截 Cookie,因为用户访问的域名和 Authing 的域名不同源 (opens new window)。

¶ 这些影响是什么时候发生的?

Safari 在 13.1 版本中首先引入这个功能,在 2020 年 3 月发布更新。Chrome 83 版本的隐身模式下默认启用这个功能。Firefox 会在不久的将来引入这个功能。Safari 将这个特性称为防止智能跟踪 (opens new window),Firefox 将这个特性称为跟踪增强保护 (opens new window)。

¶ 主要影响那些 Authing 功能?

¶ trackSession

trackSession 是 Authing 自研的单点登录功能。可以在任意网站通过请求 Authing 的 Session 端点拿到当前用户的会话 Session 信息和用户资料。

当用过 Ajax 跨域请求 Authing API 接口时,例如 /cas/session,会自动携带 Authing Cookie。浏览器会将这个 Cookie 阻止,因为请求地址与当前 URL 不同源 (opens new window)。那么 Cookie 无法传到 Authing,Authing 便无法取出当前用户的会话信息,完成响应。最终的结果是 Authing 会返回尚未登录的响应。

¶ 如何解决?

除了使用 trackSession,你还有很多其他选择,例如自行维护应用的登录态,而不仅仅依赖于中央认证服务器,以及 使用 OIDC 完成单点登录,或者使用 Web SDK (opens new window) 完成单点登录。

如果希望使用 trackSession,你可以在浏览器的角度上,将应用的域名变成你的自定义域名。配置自定义域名请查看文档。这样一来,原来的三方 Cookie 就变成了一方 Cookie。请求 Authing 的 Ajax 请求域名将与应用域名同源 (opens new window),不会触发浏览器阻止三方 Cookie 的机制。

例如,你的 Authing 应用域名为 app1.authing.cn,你的应用服务器域名为 myapp.mysite.com。你需要使用 login.mysite.com 来代理 app1.authing.cn。这样就可以将 Authing 服务与你的应用服务放在同一个域下。

只要主域名相同即可,上例中子域名不同不会影响 Cookie 的同源策略 (opens new window)。

当配置了自定义域名后,你需要修改 Authing 相关 SDK 的配置信息,将请求端点域名填写为你的自定义域名。如果你直接调用 Authing API,你也需要修改这些请求地址为你的自定义域名。

上一篇: 在本地联表 Authing 用户与你的业务数据 下一篇: 如何部署中转代理服务器
  • 产生影响的原因
  • 这些影响是什么时候发生的?
  • 主要影响那些 Authing 功能?
  • 如何解决?

用户身份管理

集成第三方登录
手机号闪验 (opens new window)
通用登录表单组件
自定义认证流程

企业内部管理

单点登录
多因素认证
权限管理

开发者

开发文档
框架集成
博客 (opens new window)
GitHub (opens new window)
社区用户中心 (opens new window)

公司

400 888 2106
sales@authing.cn
北京市朝阳区北辰世纪中心 B 座 16 层(总)
成都市高新区天府五街 200 号 1 号楼 B 区 4 楼 406 室(分)

京ICP备19051205号

beian京公网安备 11010802035968号

© 北京蒸汽记忆科技有限公司