【问题标题】:How to switch off logout encryption in simplesamlphp如何在 simplesamlphp 中关闭注销加密
【发布时间】:2023-03-23 12:35:01
【问题描述】:

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

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

是否可以通过未加密的重定向绑定发送注销响应?还是出于某种原因默认始终开启?

【问题讨论】:

    标签: encryption single-sign-on logout saml simplesamlphp


    【解决方案1】:

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

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

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

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

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

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

    请注意,可以为 SP-remote 元数据中的每个 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;
                }
    

    【讨论】:

    • 但我当然知道“assertion.encryption”,我告诉过我查看了文档。但它没有任何价值。如果您阅读了这个问题,我问的是注销响应。这些与断言不同(当然,我在其默认 FALSE 值中有 assertion.enctyption)。
    • 所有断言都是由同一个函数 encryptAssertion 处理的,这个函数只检查 'assertion.encryption' 参数。
    • 我不明白“加密注销响应”是什么意思。在消息中,您可以加密 nameID 或断言。
    • 整个消息被加密。这是垃圾,不是 XML(在 base64 解码之后)。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-08-29
      • 2018-12-04
      • 2012-08-03
      • 2014-09-02
      • 1970-01-01
      • 1970-01-01
      • 2022-11-20
      • 2013-09-24
      • 1970-01-01
      相关资源
      最近更新 更多