【发布时间】:2016-08-07 22:42:48
【问题描述】:
过去几天我一直在使用 simplesamlphp 测试 SAML 2.0。我让 SP 端连接到我公司的 IdP。我处于一种可以正常工作的情况……大多数时候,这是令人困惑的部分。事实:
- 在 RHEL 7 上使用 simplesamlphp 1.14.2 和 apache 2.4
- 我正在多次登录和退出测试
- 我的站点/服务正在通过 https 运行。这同样适用于 simplesamlphp。 IdP 是 http
- IdP 配置是通过内置 XML 解析器自动生成的。我们正在使用 SHA256 并使用自签名证书发出注销消息
- 有效! 95% 的时间在 Firefox 和 Chrome 中,这对我来说已经足够了,但它使我的服务无法投入生产......
-
另外 5% 会抛出类似于 this: "Unable to find the current binding." 的错误。不同的是,在我的日志中它显示为:
Oct 21 17:30:15 simplesamlphp WARNING [6b6e3c270f] Unable to find the SAML 2 binding used for this request.array (\n) Oct 21 17:30:15 simplesamlphp WARNING [6b6e3c270f] Request method: 'GET'array (\n)以上只是上一篇文章修改的一个例子。请注意,我确实在两行中都看到了
array。我查看了记录此错误的源代码,但我无法弄清楚它为什么会出现(不确定这是否重要 - 似乎是由日志记录工具引入的) -
这就是事情变得奇怪的地方!我有时会遇到通常的(无限递归左右)PHP 错误:
Allowed memory size of X bytes exhausted (tried to allocate Y bytes)。在我的情况下,X 是 256M 但 Y 是 2+G !!!这种情况很少见,但它会发生。当它发生时,PHP 没有多大帮助,它说它发生在“未知的第 0 行”:[18-Apr-2016 12:07:18 Europe/London] PHP Fatal error: Allowed memory size of 262144000 bytes exhausted (tried to allocate 2480381656 bytes) in Unknown on line 0 有时日志显示没有错误,但浏览器抱怨空响应
Edge/IE 浏览器似乎更容易混淆(这并不奇怪 :))但它会产生相同的日志。例如,空响应显示为“无法加载页面”错误,进而表明 DNS 故障。
大多数情况下,使用后退按钮可以让一切正常工作。并非所有时候...有时会卡住,在这种情况下会出现 simplesamlphp 错误页面并且错误可能会有所不同(
SimpleSAML_Error_Error: SLOSERVICEPARAMS)。 URL 指向 simplesamlphp 而不是服务或 IdP,因此刷新会再次导致错误页面。刷新后,回击是没有意义的,会导致循环回到错误页面
我的想法:
- 这似乎不是配置错误。如果它是可复制的...... IdP 很乐意让我们登录和退出
- 它不应该是特定于浏览器的
- PHP 分配大量内存让我相信某处存在错误,但 1.14 是最新的稳定版本
更新 1:
相关(相同错误)-https://groups.google.com/forum/#!topic/simplesamlphp/C8XAQblAECU
更新 2:
经过大量阅读和大量日志,我认为我的 SSP 和我的应用程序之间存在会话冲突。从应用程序中删除所有与会话相关的代码,使 SSP 像魅力一样工作。使用我的会话代码,我看到以下错误:
PHP Warning: Unknown: Could not call the sapi_header_callback in Unknown on line 0PHP Notice: Trying to get property of non-object in �5� on line 352Unsuccessful logout. Status was: exception 'sspmod_saml_Error' with message 'Requester' in
我相信上述大多数(如果不是全部)错误是由于 SSP 和会话中的一些奇怪状态造成的,通常不会出现。所以我的新问题更简单:
有人用store.type = 'sql' 和 SQLite 成功配置了 SSP 1.14.2 吗?我可以看到正在创建的sqlite 文件以及其中的几个表,但 SSP 总是返回“无状态”错误。相信把store改成SQL就可以解决我的问题了……
干杯
【问题讨论】:
标签: php saml simplesamlphp