1

我正在尝试将 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 请求吗?

4

1 回答 1

2

该 API 记录在SP API 参考 中

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

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

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

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

然后我们需要身份验证:

$as->requireAuth();

并打印属性:

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

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

于 2012-09-24T06:09:18.767 回答