我正在尝试在 Domino 服务器上设置 Web SAML 登录。我从身份提供商(即 Oracle Identity Federation 11g)收到了 SAML 2.0 元数据 XML 文件。
我将元数据导入到 IdP 配置文档并使登录的第一阶段正常工作,以便用户重定向到 IdP 服务器进行登录。
当 IdP 登录完成后,我会被重定向回 Domino 服务器并获取“错误 400 HTTP Web 服务器:错误的 SAML 请求”。我尝试了使用不同数字的 DEBUG_SAML notes.ini 设置,最终所有数字组合在一起:DEBUG_SAML=11199。这显示在服务器控制台上:
ProduceSaml2ADFSReply: https://oracle-idp-site.net/fed/idp/initiatesso?providerid=http://mytestsite.fi&returnurl=http://mytestsite.fi/dev/ph/xp.nsf/test.xsp&loginToRp=http://mytestsite.fi
Relay state is not equal [1575470014] - [http://mytestsite.fi/dev/ph/xp.nsf/test.xsp], url decoded/decripted [
http://mytestsite.fi/dev/ph/xp.nsf?$$_vrd2=95ed6770a665e89b35e0a74c03e6b463-b4cea507-ysrLzM3LyMx47oPqJm7hhAT%2FwyC%2BkYQ8GVN1HA%2BVb2FnIek6KcAxlr%2FzuOW018x5SUc5ULLb0zLZs3avb0UaT4t%2FepmI%2FcR29lrkKXIa9lxT9XvViDytNdpVObJG]
Could not decode cookie. Dump post data:
PostFieldName - SAMLResponse - Data -
PHNhbWxwOlJlc3BvbnNlIHhtbG5zOnNhbWxwPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6cHJvdG9jb2wiIERlc3RpbmF0aW9uPSJodHRwOi8vZGV2LnNvdmVsbHVzdGFsby5maS9uYW1lcy5uc2Y/U0FNTExvZ2luIiBJRD0iaWQtcnpaeUlWRmY3a3BLMFR1SGVMeTR5T3RnaGFJLSIgSXNzdWVJbnN0YW50PSIyMDEzLTA5LTE5V
PostFieldName - RelayState - Data - http://mytestsite.fi/dev/ph/xp.nsf/test.xsp
19.09.2013 15:17:19 HTTP Web Server: Bad SAML Request [/names.nsf?SAMLLogin] Anonymous
我最终到了 URLhttp://mytestsite.fi/names.nsf?SAMLLogin与错误 400如上所述。作为“单点登录服务 URL”,我有:
这是与 Oracle 产品配合使用的 URL 结构。IdP 配置文档中的联合产品设置为动态功能分析当我导入元数据时,但我也尝试过时间调制。
失败的原因似乎是“中继状态不一致”或者“无法解码 cookie”但我们可以做些什么呢?
编辑 2013-09-26
IBM 支持拒绝帮助我,因为 Domino 仅支持 MS AD 和 IBM TFIM 作为 IdP。我以为 SAML 是一个标准。
答案1
我们遇到了同样的错误,发现 IdP 配置中的 x509 证书未正确导入或复制。我们直接从 XML 文件复制到记事本中,删除所有空格或换行符,然后粘贴回配置文件。重新启动 HTTP 即可解决。
答案2
我不知道您是否解决了这个问题,但我最终设法解决了我正在设置的联合中的这个错误。如果您告诉 Domino 针对 ADFS 设置联合,它将设置一个名为 DOMSTATE 的 cookie,这个 cookie 需要一直设置。
还要注意,如果您在 saml 帖子中设置 Relaystate 标志并将其发送回 Domino 服务器,Domino 服务器将获取那里指定的值并将其与 Domstate cookie 进行匹配。因此,我通过不将 Relaystate 标志发送回 Domino 服务器来解决这个问题。