2017-04-19 19 views
0

エラーが発生しました状態情報が失われましたSimpleSamlphpで「状態情報が失われました」。 SPとしてsprint-securityを使用し、SimplesamlphpでIdpを設定します。 それでは、ブラウザでSP WebページをIdpにリダイレクトするのはいいですが、ログイン後にユーザー名とパスワードを入力すると、 "状態情報が失われました"というエラーが表示されます。 `` `SimpleSamlphpで「状態情報が失われました」

Apr 19 08:52:28 simplesamlphp DEBUG [bc5df4b2c1] array (
    'id' => 'a3a41e7aia439d7371j5e742e35jhi', 
    'url' => NULL, 
) 
Apr 19 08:52:28 simplesamlphp DEBUG [bc5df4b2c1] Ron====sid===end 
Apr 19 08:52:28 simplesamlphp DEBUG [bc5df4b2c1] NULL 
Apr 19 08:52:28 simplesamlphp DEBUG [bc5df4b2c1] Ron====url===end 
Apr 19 08:52:28 simplesamlphp DEBUG [bc5df4b2c1] Ron====state:NULL 
Apr 19 08:52:28 simplesamlphp ERROR [bc5df4b2c1] SimpleSAML_Error_NoState: NOSTATE 
Apr 19 08:52:28 simplesamlphp ERROR [bc5df4b2c1] Backtrace: 
Apr 19 08:52:28 simplesamlphp ERROR [bc5df4b2c1] 2 /var/simplesamlphp/lib/SimpleSAML/Auth/State.php:274 (SimpleSAML_Auth_State::loadState) 
Apr 19 08:52:28 simplesamlphp ERROR [bc5df4b2c1] 1 /var/simplesamlphp/modules/saml/www/sp/saml2-acs.php:91 (require) 
Apr 19 08:52:28 simplesamlphp ERROR [bc5df4b2c1] 0 /var/simplesamlphp/www/module.php:137 (N/A) 
Apr 19 08:52:28 simplesamlphp ERROR [bc5df4b2c1] Error report with id f9c150bb generated. 

` `` 私はSTATEIDがSPによって送信されたい。 Idp側では、ログには、セッションにphpsession用の2つの有効なCookieとauthtokenが含まれていることが示されました。しかし、これらのIDの両方は、応答の "RequestId"または "InResponseTo"と一致できませんでした。 私はちょうどここで立ち往生しています。それはどうやって起こるの?誰でも助けることができますか?前もって感謝します。

答えて

0

私のケースでは、PHPのロジックがSP PHPスクリプトに従っていたことがわかりました。もっと正確には、私が "stateId"を手作業で変更したとき、私は次のようなエラーが出ました: SimpleSAML_Error_Exception: https://domainname/simplesaml/module.php/saml/sp/metadata.php/default-sp]はアサーションの有効なオーディエンスではありません。候補者は:[com:vdenotaris:spring:sp]

これは非常に奇妙で、私の期待外です。それから、SimpleSAMLphp DocumentationがIdp設定にSPメタデータを追加するためのメッセージである "metadata/saml20-sp-remote.php"を確認しました。 最後に、間違ったSPメタデータをここに入れたことがわかりました。 それはそれであれば、このようなうまくいかない:彼らはSP上のサービスをしているので、

$metadata['com:vdenotaris:spring:sp'] = array(
     'AssertionConsumerService' => 'https://domainname/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp', 
     'SingleLogoutService' => 'https://domainname/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp', 
); 

AssertionConsumerServiceとSingleLogoutServiceは、あなたのSPにURLを割り当てる必要があります。 だから、このようにする必要があります:あなたは、ブラウザのアドレスバーに「https://SPonRonSever:8443/prj」と入力すると次に、それはIdpのが提供するログインページにジャンプすることができ

$metadata['com:vdenotaris:spring:sp'] = array(
     'AssertionConsumerService' => 'https://SPonRonSever:8443/prj/saml/SSO', 
     'SingleLogoutService' => 'https://SPonRonSever:8443/prj/saml/SingleLogout', 
); 

、認証後は、Webページにアクセスすることができましたあなたは欲しかった。

関連する問題