SimpleSAMLphp 在使用 SAML2 与 Microsoft Azure 目录 SSO 集成时显示未找到 saml2-acs.php(错误 404)

SimpleSAMLphp shows saml2-acs.php not found (error 404) when integrating with Microsoft Azure Directory SSO using SAML2

我从我的网站目录创建了一个 link,这样 https://resolute.organization.in/sso 指向 simplesaml 目录 /var/www/simplesamlphp/www

我的simpleSAML配置页面:

完整的 link https://resolute.organization.in/sso/module.php/saml/sp/saml2-acs.php/default-sp 在测试 身份验证源时显示 404 Not Found --> default-sp.

我的config.php:

$config = ['baseurlpath' => 'https://resolute.organization.in/sso/',
          'secretsalt' => 'my_secret_salt',
          'auth.adminpassword' => 'my_admin_pass',
          ];

其余均为默认值 config.php

我的authsources.php:

$config = [
    'admin' => [
         'core:AdminPassword',
    ],
    'default-sp' => [
        'saml:SP',
        'entityID' => 'https://resolute.organization.in/',
        'idp' => 'https://sts.windows.net/{some-unique-key}/', //From metadata.xml for the app with entity ID in AD as *https://resolute.organization.in/*
        'discoURL' => null,
        'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',
        'simplesaml.nameidattribute' => 'eduPersonTargetedID',
    ],
]

我的元数据数组在 saml20-idp-remote.php:

 $metadata['https://sts.windows.net/{some-unique-key}/'] = array (
   'entityid' => 'https://sts.windows.net/{some-unique-key}/',
   'contacts' =>
   array (
   ),
   'metadata-set' => 'saml20-idp-remote',
   'SingleSignOnService' =>
   array (
     0 =>
     array (
       'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
       'Location' => 'https://login.microsoftonline.com/{some-unique-key}/saml2',
     ),
     1 =>
     array (
       'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
       'Location' => 'https://login.microsoftonline.com/{some-unique-key}/saml2',
     ),
   ),
   'SingleLogoutService' =>
   array (
     0 =>
     array (
       'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
       'Location' => 'https://login.microsoftonline.com/{some-unique-key}/saml2',
     ),
   ),
   'ArtifactResolutionService' =>
   array (
   ),
   'NameIDFormats' =>
   array (
   ),
   'keys' =>
   array (
     0 =>
     array (
       'encryption' => false,
       'signing' => true,
       'type' => 'X509Certificate',
       'X509Certificate' => '{really_long_key}',
     ),
   ),
 );

我的联盟页面:

[显示元数据] link 也显示 404,在这种情况下 URL 栏中的 link 是:

https://resolute.organization.in/sso/module.php/saml/sp/metadata.php/default-sp?output=xhtml

IdP 元数据 link 正确显示元数据数组。

请帮助我解决我在这里遗漏的问题,因为我已经为此伤脑筋好几天了。

找出问题所在,它与 Nginx 服务器配置有关,无法在一个 link 中处理多个 php 页面。切换到 Apache,一切正常。

这取决于 php 如何处理 url 参数,并在将 php-fpm 与 NGINX 或 Apache mpm_worker/event 一起使用时发生。 为了解决这个问题,设置 cgi.fix_pathinfo=1 在 php.ini