来自simplesamlphp IdP的所有注销响应均已加密。我查看了simplesamlphp文档,但找不到任何关闭加密的选项。
(我已注销登录;但签名应独立于加密,并使用重定向绑定)
是否可以通过未加密的重定向绑定发送注销响应?或者由于某种原因始终默认开启?
答案 0 :(得分:0)
在IdP远程元数据上定义的Paramenter 'assertion.encryption'
是否必须加密从此IdP收到的断言。默认值为FALSE。如果此选项设置为TRUE,则必须加密来自IdP的断言。未加密的断言将被拒绝。
请注意,此选项会覆盖SP配置中具有相同名称的选项。
参考:http://simplesamlphp.org/docs/stable/simplesamlphp-reference-idp-remote
saml20-idp-hosted.php中的参数'assertion.encryption'
是否应该加密从此IdP发送的断言。默认值为FALSE。
请注意,可以为SP远程元数据中的每个SP设置此选项。
参考:http://simplesamlphp.org/docs/stable/simplesamlphp-reference-idp-hosted
编辑添加解释
simpleSAMLphp使用函数encryptAssertion(modules / saml / lib / IdP / SAML2.php)来决定是否加密它处理的所有断言。此函数检查IdP / SP元数据文件上定义的'assertion.encryption'的值(如果未定义此参数,则断言未加密
private static function encryptAssertion(SimpleSAML_Configuration $idpMetadata,
SimpleSAML_Configuration $spMetadata, SAML2_Assertion $assertion) {
$encryptAssertion = $spMetadata->getBoolean('assertion.encryption', NULL);
if ($encryptAssertion === NULL) {
$encryptAssertion = $idpMetadata->getBoolean('assertion.encryption', FALSE);
}
if (!$encryptAssertion) {
/* We are _not_ encrypting this assertion, and are therefore done. */
return $assertion;
}
答案 1 :(得分:0)
问题出在其他方面。我只是重用了处理POST绑定的代码来处理Redirect绑定;但是使用Redirect绑定时,有效负载会缩小,因此POST的代码无法直接重用。