0

我所有来自 simplesamlphp IdP 的注销响应都是加密的。我查看了 simplesamlphp 文档,但找不到任何关闭加密的选项。

(我有注销登录;但签名应该独立于加密,并使用重定向绑定)

是否可以通过未加密的重定向绑定发送注销响应?或者由于某种原因默认情况下总是打开?

4

2 回答 2

0

在 IdP 远程元数据上定义的参数“assertion.encryption”

从该 IdP 收到的断言是否必须加密。默认值为假。如果此选项设置为 TRUE,则来自 IdP 的断言必须加密。未加密的断言将被拒绝。

请注意,此选项会覆盖 SP 配置中具有相同名称的选项。

参考:http ://simplesamlphp.org/docs/stable/simplesamlphp-reference-idp-remote

saml20-idp-hosted.php 中的参数“assertion.encryption”

是否应加密从此 IdP 发送的断言。默认值为假。

请注意,可以为 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;
            }
于 2013-09-13T00:02:54.923 回答
0

问题出在别的东西上。我只是重用了处理 POST 绑定的代码来处理重定向绑定;但是使用 Redirect 绑定,payload 被压缩了,所以 POST 的代码不能直接重用。

于 2013-09-16T09:36:19.503 回答