我使用simplesamlphp测试过去几天的SAML 2.0。我有SP方面连接到我公司的IdP。我处于这样的情况......大多数时候,这是令人困惑的部分。事实:
其他5%抛出类似于this的错误:“无法找到当前绑定。”。区别在于我的日志显示为:
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,因此刷新会再次导致错误页面。刷新后,回击是没有意义的,导致循环回到错误页面
我的想法:
更新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 0
PHP Notice: Trying to get property of non-object in �5� on line 352
Unsuccessful logout. Status was: exception 'sspmod_saml_Error' with message 'Requester' in
我认为上述大多数(如果不是全部)错误都是由于SSP和会话中的一些奇怪状态造成的,通常不会出现。所以我的新问题更简单:
是否有人使用store.type = 'sql'
和SQLite成功配置了SSP 1.14.2?我可以看到正在创建的sqlite
文件以及其中的几个表,但SSP总是返回“无状态”错误。我相信将商店更改为SQL将解决我的问题......
干杯
答案 0 :(得分:4)
我知道这个问题似乎到处都是,非常混乱......想象看日志:)
现在,在 jaimeperez - github上的SSP(SimpleSamlPhp)开发人员的帮助下,我们将其分解为多个“更简单”的问题:
会话共享:当应用程序和SSP都使用$_SESSION
时,您必须:
session_name("XYZ")
之前使用session_start()
,并在SSP的config.php
中为session.phpsession.cookiename
设置一个非默认值。根据我的测试,两者都必须是非默认的(不是“PHPSESSID”)。自动启动会话的php.ini
选项可能会影响该值(即:如果设置为false,则两者中的一个可以使用默认值 - 未经测试)版本5.4.16中的PHP错误引起的错误。这使得PHP SegFault使SSP处于错误状态。这与SSP无关,主要是RHEL / Centos 7和PHP的问题。这解决了错误:
Allowed memory size of X bytes exhausted ... in Unknown on line 0
PHP Warning: Unknown: Could not call the sapi_header_callback in Unknown on line 0
和PHP Notice: Trying to get property of non-object in �5� on line 352
(或类似的!每次都有所不同!但这是指向Session.php
第352行的错误 - 这似乎也完全无关紧要)这个解决方案是升级PHP。根据我的阅读,问题在5.4.20和5.5.2(TBC)
错误Unsuccessful logout. Status was: exception 'sspmod_saml_Error'...
是由于IdP拒绝为我提供服务,因为我登录和退出的次数太多,而且作为测试的一部分太快
我通常用“我希望这会有所帮助”这句话来结束我的回答......但是在这种情况下我真的希望你不会遇到类似的情况:)希望,问题和这个答案包含足够的关键字来使谷歌点在这......
如果您想关注此会话,可以github
执行此操作