使用Auth0作为身份提供商时Tableau Online SAML登出异常问题咨询
解决方案
最优方案:切换为Tableau Connected Apps嵌入式集成
你当前用SAML SSO做嵌入式报表的身份验证本身就不符合Tableau的嵌入式场景设计规范,才会出现全局会话残留的问题。Tableau官方提供的Connected Apps方案专门面向内嵌报表到第三方站点的场景:
- 无需用户感知Tableau账号,所有身份校验由你自有系统生成的JWT完成
- 不存在全局浏览器会话残留问题,每次打开报表都会重新校验JWT有效性,用户在你自有站点登出后,下一个用户访问时会生成对应新用户的校验凭证,完全不会复用旧会话
- 会话有效期可自定义,完全由你自有系统控制,不需要调用任何Tableau侧的登出接口
过渡方案:静默触发Tableau浏览器会话清除
如果暂时无法切换集成方案,可以按以下步骤修改现有登出逻辑,解决会话残留问题:
- 你之前调用的Tableau REST API登出接口仅能清除API调用生成的凭证,无法清除浏览器侧的SSO会话,手动清理Cookie的操作因为跨域权限问题也不会生效(你自有站点的JS没有权限修改tableau.com根域下的Cookie)
- 你配置的SAML SLO回调不生效是因为Tableau Online默认忽略IdP发起的SLO请求,即使完成签名校验也存在大量兼容性问题,不建议继续尝试
- 正确操作:在自有站点的登出逻辑中,新增一个隐藏的iframe,src设置为你的Tableau站点通用登出地址
https://[你的Tableau站点域名]/v2/signout,等待iframe加载完成后再执行自有站点的登出跳转即可,全程不需要用户操作,可静默清除浏览器侧的Tableau全局会话
兜底方案:iframe沙箱会话隔离
如果上述两个方案都无法落地,可以给内嵌Tableau报表的iframe添加沙箱属性:sandbox="allow-same-origin allow-scripts allow-popups allow-forms",让Tableau的会话仅在iframe沙箱环境内生效,用户登出自有站点时直接销毁iframe节点即可清除对应会话,不会残留到全局浏览器环境。
内容的提问来源于stack exchange,提问作者Dmytro Kriat
相关产品推荐
相关产品推荐

