サービス プロバイダーとして機能する SimpleSamlPHP 実装があるため、ワークフローは次のようになります。
IdP がアサーションを ACS URL に送信します。
/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp
しかし、その後、彼は認証され、リダイレクトされるように見えます
/simplesaml/module.php/saml/sp/saml2-acs.php
authsource (/default-sp 部分) が指定されていないため、エラーがスローされます。
SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
Backtrace:
0 *\simplesamlphp\www\module.php:180 (N/A)
Caused by: SimpleSAML_Error_Exception: No authentication source with id false found.
Backtrace:
2 *\simplesamlphp\lib\SimpleSAML\Auth\Source.php:242 (SimpleSAML_Auth_Source::getById)
1 *\simplesamlphp\modules\saml\www\sp\saml2-acs.php:8 (require)
0 *\simplesamlphp\www\module.php:135 (N/A)
ただし、ページにも一連の PHP エラーが出力されます。
Warning: array_key_exists(): The first argument should be either a string or an integer in *\simplesamlphp\lib\SimpleSAML\Configuration.php on line 314
Warning: Cannot modify header information - headers already sent by (output started at *\simplesamlphp\lib\SimpleSAML\Configuration.php:314) in *\simplesamlphp\lib\SimpleSAML\Error\Error.php on line 191
Warning: Cannot modify header information - headers already sent by (output started at *\simplesamlphp\lib\SimpleSAML\Configuration.php:314) in *\simplesamlphp\templates\includes\header.php on line 40
(ディレクトリパスを取り出して*に置き換えました-通常はそうではありません)
それが SimpleSamlPHP のバグなのか、それとも (はるかに可能性が高い) 不適切なセットアップなのか、私にはわかりません。私のauthsourcesとメタデータは次のとおりです。
saml20-idp-remote.php:
$metadata['https://app.onelogin.com/saml/metadata/391645'] = array(
'name' => 'FSSO',
'SingleSignOnService' => 'https://app.onelogin.com/trust/saml2/http-post/sso/391645',
'AssertionConsumerservice' => 'https://www.fbjni.com/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',
'SingleLogoutService' => 'https://www.fbjni.com/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp',
'certData' => '[rawCertificateData]'
);
authsources.php:
'default-sp' => array(
'saml:SP',
'RelayState' => 'https://www.fbjni.com/',
'entityID' => 'https://app.onelogin.com/saml/metadata/391645',
),