将simpleSAMLphp(SAML 2.0)与CMS Made Simple(CMSMS)集成

时间:2012-10-31 21:58:53

标签: php saml saml-2.0 cmsmadesimple

我正在尝试使用基于SAML2.0的用户ID系统为客户端构建服务提供商(SP)站点。

我已经能够在我的服务器上安装simpleSAMLphp并使用开放的IdP身份验证网络进行测试 - 如果我只是创建需要针对此IdP进行身份验证的php文件,那么一切正常。简单地将其添加到任何页面都可以使用。

require_once('../simplesamlphp/lib/_autoload.php');
$auth = new SimpleSAML_Auth_Simple('default-sp');
$auth->requireAuth();
$attributes = $auth->getAttributes();

在CMSMS中,如果我将上面的内容添加为用户定义的smarty标签(通常包含php的方式),我会收到“状态丢失”错误。我已经尝试将它添加到页面元数据(通过内容界面)以及简单地在页面正文或模板的头部。

我总是得到:

State information lost
State information lost, and no way to restart the request

有没有人有任何想法会出现什么问题?我已经尝试了这个错误消息的常规修复(调整cookie在php.ini中分配的域等)。没有快乐。

2 个答案:

答案 0 :(得分:4)

这似乎是simpleSAMLphp和CMSMS之间冲突的会话管理。

一个简单的方法是安装memcached,并在simplesamlphp中使用memcache会话处理程序而不是php会话处理程序。

答案 1 :(得分:0)

类似的会话冲突也与eZ发布(4.x)和Symfony2(2.3+)有关。 SQL会话存储解决了这个问题