Php SimpleSAML-找不到实体ID为的IdP的元数据

Php SimpleSAML-找不到实体ID为的IdP的元数据,php,saml,saml-2.0,simplesamlphp,Php,Saml,Saml 2.0,Simplesamlphp,我正在使用SimpleSAMLPHP,并已成功设置了>40个SSO连接。就在最近,我的一个SSO连接在用户进行身份验证时开始抛出以下错误: Backtrace: 1 www/_include.php:45 (SimpleSAML_exception_handler) 0 [builtin] (N/A) Caused by: SimpleSAML_Error_Exception: Could not find the metadata of an IdP with entity ID 'urn:c

我正在使用SimpleSAMLPHP,并已成功设置了>40个SSO连接。就在最近,我的一个SSO连接在用户进行身份验证时开始抛出以下错误:

Backtrace:
1 www/_include.php:45 (SimpleSAML_exception_handler)
0 [builtin] (N/A)
Caused by: SimpleSAML_Error_Exception: Could not find the metadata of an IdP with entity ID 'urn:company.com:spfed:1.0:entityid:MANPROD:test'
Backtrace:
6 modules/saml/lib/Auth/Source/SP.php:134 (sspmod_saml_Auth_Source_SP::getIdPMetadata)
5 modules/saml/lib/Auth/Source/SP.php:327 (sspmod_saml_Auth_Source_SP::startSSO)
4 modules/saml/lib/Auth/Source/SP.php:430 (sspmod_saml_Auth_Source_SP::authenticate)
3 lib/SimpleSAML/Auth/Source.php:193 (SimpleSAML_Auth_Source::initLogin)
2 lib/SimpleSAML/Auth/Simple.php:147 (SimpleSAML_Auth_Simple::login)
1 modules/core/www/authenticate.php:36 (require)
0 www/module.php:135 (N/A)
我的
saml20 idp remote.php
文件如下所示:

$metadata['urn:company.com:spfed:1.0:entityid:MANPROD:test'] = array (
    'name' => [
        'en' => 'company1'
    ],
    'entityid' => 'urn:company.com:spfed:1.0:entityid:MANPROD:test',
    'description' => 
    array (
      'en' => 'Company 1',
    ),
    'OrganizationDisplayName' => 
    array (
      'en' => 'Company 1',
    ),
    'url' => 
    array (
      'en' => 'http://www.company.com/',
    ),
    'OrganizationURL' => 
    array (
      'en' => 'http://www.company.com/',
    ),
    'metadata-set' => 'saml20-idp-remote',
    'expire' => 1403713599,
    'sign.authnrequest' => true,
    'SingleSignOnService' => 
    array (
      0 => 
      array (
        'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
        'Location' => 'https://company.com/saml2sso',
      ),
    ),
    'SingleLogoutService' => 
    array (
    ),
    'ArtifactResolutionService' => 
    array (
    ),
    'NameIDFormats' => 
    array (
      0 => 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified',
    ),
    'keys' => 
    array (
      0 => 
      array (
        'encryption' => false,
        'signing' => true,
        'type' => 'X509Certificate',
        'X509Certificate' => '...',
      ),
    ),
  );
我应该注意,我屏蔽了x509证书,元数据是直接从元数据转换器转换而来的

我的
authsources.php
文件如下所示:

'company1' => [
        'saml:SP',
        'privatekey' => 'server.pem',
        'certificate' => 'server.crt',
        'entityID' => null,
        'idp' => 'urn:company.com:spfed:1.0:entityid:MANPROD:test',
        'discoURL' => null,
],
您可以清楚地看到我的
$metadata
键与
entityid
和authsources
idp
相匹配,请参见说明


更奇怪的是,当我查看我的idp列表时,
company1
idp甚至没有出现在下拉列表中,很可能是因为它找不到元数据。我想我想知道为什么它找不到元数据?这是冒号和句号的问题吗?我的元数据有什么奇怪的地方吗?我运行了一个php语法检查程序,它在两个文件中都没有发现任何问题。

只是找到了错误。如果
'expire'=>1403713599,
已设置且未更新,则它将抛出元数据未找到错误

通过注释掉
saml20 idp remote.php中的
expire
数组索引,我能够解决这个问题