身份提供商(salesforce)注销SSO时注销服务提供商(passport-saml)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了身份提供商(salesforce)注销SSO时注销服务提供商(passport-saml)相关的知识,希望对你有一定的参考价值。

我在salesforce端创建了一个连接的应用程序,并使用passport saml为基于expressJs的多个nodeJs应用程序提供SSO。

SSO工作正常。

但是,当我从salesforce注销时,我仍然可以登录到应用程序。

我相信这与cookie有关。有没有办法观察salesforce cookie并在其失效时注销?

或者,当启动注销时,有没有办法从salesforce向我的其中一条路线发送电话?

答案

您可以在提供静态文件之前验证身份验证令牌(salesforce或其他)。

但是,如果要构建SPA,则还需要在前端代码(在浏览器上运行)中验证会话。

否则,当浏览器执行缓存以及从SPA将数据保存到浏览器的本地存储时,您的方法将不起作用。

另一答案

解决方案是在从NodeJs提供Web应用程序之前验证salesforce身份验证令牌。换句话说,NodeJs后端应用程序将使用jsforce.connection.login接口登录时使用salesforce sessionId令牌验证相应的salesforce会话。如果会话不再有效,则应使用req.logout()方法使passportJs会话无效

以上是关于身份提供商(salesforce)注销SSO时注销服务提供商(passport-saml)的主要内容,如果未能解决你的问题,请参考以下文章

Salesforce中的单点登录简介

从SSO中的多个系统注销(单点登录)

Spring Oauth2 SSO - 无法从 Auth 服务器注销

Symfony 自定义身份验证提供程序在请求重叠时注销

phpmyadmin sso 不会在注销时删除现有会话

Spring SAML SSO 不共享会话