将SimpleSAMLPHP集成到应用程序中

时间:2012-09-18 06:45:07

标签: symfony1 single-sign-on saml federated-identity

我正在尝试将simpleSAMLphp与我的symfony应用程序集成。我的服务提供商是外部应用程序。我的应用程序是身份提供者。

我配置simpleSAMLphp以返回一些属性而不检查身份验证。 我不知道如何从我的应用程序启动idp请求,所以我只是从saml2 / idp / SSOService.php复制了以下副本。

require_once('ServiceProvider/ssp/www/_include.php');

\SimpleSAML_Logger::info('SAML2.0 -...e');


$metadata = \SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler();

$_GET['spentityid']='https://saml.serviceprovider.example.com';

$idpEntityId = $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted');

$idp = \SimpleSAML_IdP::getById('saml2:' . $idpEntityId);

\sspmod_saml_IdP_SAML2::receiveAuthnRequest($idp);


assert('FALSE');

但它给出了错误

in /lib/SAML2/Binding.php at line 95        
            throw new Exception('Unable to find the current binding.');

at SAML2_Binding ::getCurrentBinding () modules/saml/lib/IdP/SAML2.php at line 285 
at sspmod_saml_IdP_SAML2 ::receiveAuthnRequest (object(SimpleSAML_IdP))

有人知道如何从应用程序启动idp请求吗?

1 个答案:

答案 0 :(得分:2)

API记录在the SP API reference

我们首先加载一个用自动加载器注册simpleSAMLphp类的文件。调整路径以指向您的ssp目录(取决于您的应用程序的位置)

require_once('../../lib/_autoload.php');

我们选择我们的身份验证来源。将ldap-auth替换为您选择的身份验证来源。

$as = new SimpleSAML_Auth_Simple('ldap-auth');

然后我们要求身份验证:

$as->requireAuth();

并打印属性:

$attributes = $as->getAttributes();
print_r($attributes);

也可以使用其他选项。 请查看the SP API reference的文档以获取所有参数的列表。