我正在尝试将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请求吗?
答案 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的文档以获取所有参数的列表。