我已经开发了一个使用tableau-api嵌入图形的react应用程序。我已经使用Auth0作为单点登录为tableau配置了SAML身份验证。当我使用相同的电子邮件id登录Auth0时,可以访问tableau,tableau允许我访问图形。到目前为止,一切都很好。现在的问题是,当我注销auth0时,Auth0会话将终止,但tableau会话仍保持活动状态。因此,即使在退出Auth0之后,我仍然可以访问tableau图。我怎样才能从在线的tableau注销?
发布于 2021-06-30 02:21:38
Quote :Quote“现在的问题是,当我从auth0注销时,Auth0会话被终止,但tableau会话仍然处于活动状态。因此,即使我从Auth0注销,我仍然可以访问tableau图。我如何也从tableau online注销?”
应答
在您的单点登录用例中,tableau是SAML服务提供者(或依赖方),Auth0是SAML身份提供者。
tableau利用Auth0执行身份验证(或登录验证)。作为SAML身份提供者,Auth0为tableau建立身份验证会话,然后将用户身份(或用户信息)联合到tableau。作为SAML服务提供商和web应用程序,tableau建立登录会话以在不确定的时间段(例如1小时或8小时)保持会话活动。一旦会话处于活动状态,您仍然可以访问tableau图。
SAML身份提供程序Auth0无法撤消由tableau建立的会话。因此,引用“当我注销auth0时,Auth0会话将终止,但tableau会话仍保持活动状态。”
解析
(1)您需要为tableau创建一个注销按钮来执行以下两个任务:
(I)删除tableau建立的会话。
(II)向Auth0 SLO API发布单次注销请求,以删除tableau的身份验证会话。(或者,如果您不想开发SLO请求功能,您只需注销Auth0即可删除所有web应用程序的所有会话,包括tableau。)
您可以从Auth0 SAML身份提供者的元数据中找到Single (SLO)服务API,例如
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://tableau.auth0.com/idp/profile/SAML2/Redirect/SLO"/> 可以在下面的GitHub链接中找到的元数据示例。
(2)以下Shibboleth Logout Discussion提供了从SAML IdP中完全移除SAML SP应用的会话(如tableau)的典型解决方案。
从Shibboleth注销是很复杂的,因为您必须考虑删除至少三个级别的会话:
此外,用户可能已使用其IdP会话向其他SP进行身份认证。这些SP将有自己的SP会话,也可能有其他应用程序会话。
对于注销,您最多只能执行以下操作:
对于给定的application.
发布于 2021-06-30 16:04:53
您需要做的是实现单点注销服务,并将其配置为支持idp发起的注销。
然后,当idp注销发生时,它将回调到您的注销服务,并向您提供有关成功从idp注销的信息。
然后,您需要根据从idp收到的信息进行本地注销。
您需要在您的单次注销服务中包含整个内容,并且需要在idp(Auth0)中注册它。
https://stackoverflow.com/questions/68114132
复制相似问题