Cloudflare不同子域共用CF_Authorization cookie故障解决问询
结论
可以实现a.example.com和b.example.com各自使用独立的Cloudflare Access授权cookie,无需跨站复用,具体配置调整如下:
配置步骤
- 调整Access应用的Cookie作用域
进入Cloudflare控制台的Zero Trust → Access → Applications,分别打开a.example.com和b.example.com对应的应用配置页,在「Cookie设置」板块将Cookie 域分别显式指定为各自的完整域名a.example.com、b.example.com,不要留空或者填为父域example.com。显式指定为子域名后,两个站点的CF_Authorizationcookie会被浏览器判定为不同作用域的独立cookie,不会互相覆盖或复用。 - 关闭跨子域会话复用
在同一Access应用配置页的「会话设置」板块,将允许跨子域会话选项设置为关闭状态,避免Cloudflare主动在同根域下的不同子域Access应用之间同步授权会话信息。 - 校验IdP的受众声明规则
检查两个站点绑定的独立IdP配置,确保每个IdP签发的令牌aud声明严格绑定对应站点的Access应用受众标识,不要配置为包含所有子域的通配符规则,避免授权信息被跨站识别为有效。 - 验证配置生效
清除浏览器现有CF_Authorizationcookie后,先访问a.example.com完成授权,再访问b.example.com,此时会触发独立的身份验证流程,不会复用a站点的已有cookie,两个站点会分别生成各自域名下的独立授权cookie。
注意:免费版Cloudflare Zero Trust套餐同样支持上述所有配置项,无需升级付费套餐即可生效。
内容的提问来源于stack exchange,提问作者Venkata Dorisala
相关产品推荐
相关产品推荐

