我有一个Node Bluemix应用程序配置了SSO服务&与云目录连接。我可以成功验证用户身份,但我遇到了成功注销的问题。我已经尝试了req.session.destroy,req.logout和express-passport-logout模块来结束会话。但它们都没有奏效。我也尝试从我的应用程序中删除cookie,但它也没有用。它的唯一工作方式是重新启动浏览器或从浏览器清除cookie。有人知道如何从应用程序中实现SSO注销吗?
答案 0 :(得分:1)
我上次使用该服务时,这是不可能的。问题是:您使用列出的命令执行的操作是关闭应用程序会话,而不是关闭SSO服务。因此,当用户返回(使用相同的cookie)时,您的应用程序将要求SSO服务进行检查,并且它将接受用户(因为会话仍然打开)。目前,没有可用于关闭SSO服务实例上的会话的API。
实际上,当您使用外部IdP时,这会变得更加复杂:即使您在SSO服务器上关闭会话,浏览器仍会与用户登录的真实IdP建立会话,具体取决于您的配置服务实例可以是IBM,Facebook,Google,Linkedin中的一个或多个。其中一些IdP通过持久性cookie提供长期会话,您的应用程序无法强制终止。这意味着下次点击"登录"按钮,特别是在SSO服务实例配置为仅使用一个IdP的情况下,SSO将无缝地发生,无需进一步交互。
查看here以获取更多信息。
答案 1 :(得分:0)