SimpleSAMLPHP通过POST绑定

时间:2017-11-13 15:42:23

标签: php saml simplesamlphp

我们当前的SAML设置与SimpleSAMLPHP库提供的或多或少的默认设置一直正常。但是,一个新的IDP专门需要通过POST绑定绑定到SP。

似乎SimpleSAMLPHP将始终使用GET请求重定向到IDP,例如可以清楚地看到:

SimpleSAMLPHP Challenge via GET

似乎也没有明确的配置设置来控制它。

我们尝试使用NameID策略设置但没有成功。 SP在其元数据中列出以下NameID策略:

urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST

我们自己的NameID政策如下:

urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

此处的任何提示都将受到高度赞赏

1 个答案:

答案 0 :(得分:2)

您希望IdP的元数据与urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST具有SingleSignOnService绑定,并且首先在支持的SingleSignOnService选项列表中列出该绑定。这通常位于文件metadata/saml20-idp-remote.php中。这与NameId的不同以及具有相同绑定名称的AssertionConsumerService SP绑定。您的SP将在IdP的元数据中选择为IdP列出的第一个SingleSignOnService选项。

$metadata['https://some.idp.co'] = array (
    'entityid' => 'https://some.idp.co',
    'metadata-set' => 'saml20-idp-remote',
    'SingleSignOnService' =>
        array (
            0 =>
                array (
                    'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
                    'Location' => 'https://some.idp.co/idp/profile/SAML2/POST/SSO',
                ),
            1 =>
                array (
                    'other options, etc'
                ),
        ),