错误的SAML请求

我正在尝试在Domino服务器上设置Web SAMLlogin。 我从身份提供者(Oracle身份联合会11g)收到了SAML 2.0元数据XML文件。

我将元数据导入到IdPconfiguration文档,并使login的第一阶段工作,以便将用户redirect到IdP服务器进行login。

在IdPlogin完成后,我被redirect回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 

我用上面提到的错误400结束了URL http://mytestsite.fi/names.nsf?SAMLLogin 。 作为“单点login服务url”我有:

https://oracle-idp-site.net/fed/idp/initiatesso?providerid=http://mytestsite.fi&returnurl=http://mytestsite.fi/dev/ph/xp.nsf/test.xsp

这是与Oracle产品一起使用的URL结构。 当我导入元数据时,IdPconfiguration文档中的Federation产品被设置为ADFS ,但我也尝试过使用TFIM

失败的原因似乎是“继电器状态不平等”“无法解码cookie”,但是可以做些什么呢?

编辑2013-09-26

IBM支持拒绝帮助我,因为Domino只支持MS AD和IBM TFIM作为IdP。 我认为SAML是一个标准。

我们有同样的错误,发现IdP Config中的x509证书没有正确导入或复制。 我们直接从XML文件复制到记事本,删除任何空格或换行符,并粘贴回configuration文件。 重新启动HTTP并parsing。

我不知道如果你得到了这个解决scheme,但我终于设法解决了我设立的联盟的这个错误。 如果您告诉Domino将联邦设置为针对ADFS,那么它将设置一个名为DOMSTATE的cookie,这个cookie需要一直设置。

还要注意的是,如果您将samlpost中的Relaystate标志设置回多米诺骨牌服务器,那么多米诺骨牌服务器将采用指定的值,并将其与domstate cookie进行匹配。 所以我通过不发送relaystate标志回到多米诺服务器来解决这个问题。