我第一次设置simpleSAMLphp服务提供商时遇到了一些麻烦。
我按照以下方式配置了服务提供商:
'***' => array(
'saml:SP',
'redirect.validate' => true,
'redirect.sign' => true,
'privatekey' => '***.key',
'certificate' => '***.crt',
'entityID' => 'https://***',
'idp' => 'https://***',
'attributes' => array(
'eduPersonTargetedID',
'GivenName',
'SurName',
'mail',
'eduPersonScopedAffiliation',
'schacHomeOrganization',
),
'attributes.required' => array (
'eduPersonTargetedID',
'GivenName',
'SurName',
'mail',
'eduPersonScopedAffiliation',
'schacHomeOrganization',
),
),
我还配置了身份提供程序,它似乎工作正常。但是当用户从idp重定向回simpleSAMLphp时,会显示simpleSAMLphp安装页面(具有一些测试工具的页面)。
我的测试使用此代码:
require_once('../../lib/_autoload.php');
$simpleSaml= new SimpleSAML_Auth_Simple("***");
$simpleSaml->requireAuth(array(
'ReturnTo' => 'https://***/test.php',
'KeepPost' => FALSE,
));
$attributes = $simpleSaml->getAttributes();
当我尝试使用“测试配置的身份验证源”工具登录时,我还会发回安装首页,而不是我应该获得的属性概述。
我尝试检查从idp发送的POST,并且能够使用此工具进行检查:http://www.ssocircle.com/en/1203/saml-request-online-decoder-encoder/
据我所知,该服务没有返回任何错误和用户属性。
那么我做错了什么?
答案 0 :(得分:1)
我不是SimpleSAMLphp的wiz,虽然你测试了断言,但我没有看到一个示例authnRequest,也没有一个示例断言......所以,基本上我所说的是我的回答都是猜测工作
我看到你传递的属性和内容列表......但SP是否通过了RelayState?
来自SimpleSAMLphp Doc:
的的RelayState 强>
在IdP发起SSO之后,用户应该重定向到的页面。
注意:SAML 2具体。对于SAML 1.1 SP,您必须在身份验证响应中指定TARGET参数。如何设置该参数取决于IdP。对于simpleSAMLphp,请参阅IdP-first flow的文档。
答案 1 :(得分:0)
我最终自动生成了SP元数据,这解决了问题,不确定元数据中的错误在哪里。