【问题标题】:Nodejs SAML logout not working passport-saml+adfsNodejs SAML注销不起作用护照-saml + adfs
【发布时间】:2016-08-24 10:43:49
【问题描述】:
我正在尝试使用 passport-saml 为我的应用程序进行 SSO 集成,并且目前能够成功使用 ADFS 作为 IDP 进行身份验证。注销无法按预期工作。它会在注销后删除本地 cookie,但不会删除 adfs 特定的 cookie。
如post 中所述完成注销,它成功地从 ADFS 端的元数据 SLO 执行 GET 重定向到应用程序端点。但在 ADFS 中仍然不会发生注销。
还提到了此post 以使 SLO 正常工作,并且默认情况下它正在为 saml 中的注销请求生成 HTTP 重定向绑定。
我面临的问题与post 中提到的相同。
如果在注销时遗漏了某个步骤,请告诉我。
提前感谢您的帮助!
【问题讨论】:
标签:
node.js
cookies
passport.js
saml-2.0
adfs2.0
【解决方案1】:
ADFS 的注销修复如下,
会话索引属性缺失,将作为 passport-saml 注销请求的一部分添加。
使用 ADFS 日志(事件查看器)进行调试并出现以下错误,
SAML Single Logout 请求与登录不对应
会话参与者。请求者:app.yyy.com
请求名称标识符:
格式:urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified,
NameQualifier: SPNameQualifier: , SPProvidedId: 登录会话
参与者:人数:1,[发行人:app.yyy.com,姓名ID:(格式:,
NameQualifier: SPNameQualifier: , SPProvidedId: )]
此请求失败。
这意味着在我的情况下 nameIDFormat 应该留空以注销会话。以前使用为身份验证请求指定的 nameIDFormat,但它不起作用。
没有这个配置,HTTP-POST 绑定没有任何区别。
希望这对尝试相同的其他人有所帮助。