2016-01-28 34 views
10

サービスプロバイダがhttps://biz.dev.originsystems.co.zaに設定されています。 IdPはhttp://stage.originsystems.co.zaに設定されています。SimpleSAMLphp状態情報が失われる

https://biz.dev.originsystems.co.za/simplesaml/module.php/core/authenticate.phpでツールを使用して認証をテストすると、すべて正常に動作します。必要な属性を持つDevサイトに戻ってきます。すべてが幸せで楽しいものです。

https://biz.dev.originsystems.co.zaのIdPに実際にアクセスしようとすると、ステージのログインページにリダイレクトされますが、ログイン後に「状態情報が失われました」というエラーが表示されます。

SimpleSAML_Error_NoState: NOSTATE 

Backtrace: 
2 /webdevroot/Updraft/web/external/System/SSO/simplesaml/lib/SimpleSAML/Auth/State.php:225 (SimpleSAML_Auth_State::loadState) 
1 /webdevroot/Updraft/web/external/System/SSO/simplesaml/modules/saml/www/sp/saml2-acs.php:63 (require) 
0 /webdevroot/Updraft/web/external/System/SSO/simplesaml/www/module.php:134 (N/A) 

私はすべてのトラブルシューティングを実行しましたが、状況は変わりません。

ブラウザに開発ツールを開いて、Cookie情報を監視しました。 biz.dev.originsystems.co.zaのクッキーにはSimpleAMLAuthTokenが含まれているので、クッキーが機能しているとわかります。私はIdPのを打つために使用しているコードは次のとおりです。

$as = new SimpleSAML_Auth_Simple("stage-sso-sp"); 
$as->requireAuth(); 
$attributes = $as->getAttributes(); 
print_r($attributes); 

はUPDATE:

ここではいくつかのより多くの情報があります...

私はこの問題は、私が設定する方法とあったかどうかを確認したかったですIdPので、IdPのためにSSO Circleを使い始めました。状態情報は、SSOサークルの認証後も失われます。私はそれがSimpleSAMLのための私のサービスプロバイダの設定のどこかに問題があることを意味すると思います。ここで私はhttps://biz.stage.originsystems.co.za/simplesamlでSimpleSAMLテスト認証ソースページに行くとき

私は... SimpleSAMLAuthToken除く

Name          Value 
SimpleSAMLAuthToken      _a53569c0701dd02832532df14cf10cd0b2d9fcd6b6 
biz.stage.originsystems.co.za    10fc356e0bfbf707af5fa5854c378755 
ccof          RGN002 
xbrF          84aadc624fc51c0c9340d45645c08643 

すべては私たちのアプリケーションから次のCookie値できたとすべきではない...何が起こっているのですSimpleSAMLに影響します。 SSOサークルにリダイレクトされ、認証されたらSimpleSAMLページに戻り、認証トークンの値が_39679e07cb1911e08b2bff3580a9929faddd07e9b6になり、すべての関連情報が正しく返されます。ログファイルには、以下のアクティビティが表示されます。

Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Received SAML2 Response from 'http://idp.ssocircle.com'. 
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] No certificate in message when validating against fingerprint. 
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Found 1 certificates in SAML2_Assertion 
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Has 1 candidate keys for validation. 
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Validation with key #0 succeeded. 
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Filter config for http://idp.ssocircle.com->https://biz.stage.originsystems.co.za/simplesaml/module.php/saml/sp/metadata.php/default-sp: array ( 0 => sspmod_core_Auth_Process_LanguageAdaptor::__set_state(array( 'langattr' => 'preferredLanguage',  'priority' => 90, )),) 
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Deleting state: '_742b094314383407864f56bccc6afd7de3dcb3211e' 
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Session: doLogin("default-sp") 
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Session: Valid session found with 'default-sp'. 
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Session: Valid session found with 'default-sp'. 
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Template: Reading [/OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/dictionaries/status] 
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Template: Reading [/OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/dictionaries/attributes] 
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Template: Reading [/OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/modules/core/dictionaries/frontpage] 

私はhttps://biz.stage.originsystems.co.za?ccof=RGN002に行けば、私はその後、認証SSOサークルにあることを期待して、私がリダイレクトしています。現時点では、Autth Tokenの値は_39679e07cb1911e08b2bff3580a9929faddd07e9b6です。私が認証されるとSimpleSAMLのエラーページ "状態情報が失われました"に送られ、認証トークンはまだ_39679e07cb1911e08b2bff3580a9929faddd07e9b6です。

ログを読み込む...

Feb 02 13:08:31 simplesamlphp DEBUG [8abc64dd04] Loading state: '_498e7d4d75bb7716e5e8cf905e0da5ef1c40cf1b3f' 
Feb 02 13:08:31 simplesamlphp ERROR [8abc64dd04] SimpleSAML_Error_NoState: NOSTATE 
Feb 02 13:08:31 simplesamlphp ERROR [8abc64dd04] Backtrace: 
Feb 02 13:08:31 simplesamlphp ERROR [8abc64dd04] 2 /OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/lib/SimpleSAML/Auth/State.php:225 (SimpleSAML_Auth_State::loadState) 
Feb 02 13:08:31 simplesamlphp ERROR [8abc64dd04] 1 /OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/modules/saml/www/sp/saml2-acs.php:63 (require) 
Feb 02 13:08:31 simplesamlphp ERROR [8abc64dd04] 0 /OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/www/module.php:134 (N/A) 
Feb 02 13:08:31 simplesamlphp ERROR [8abc64dd04] Error report with id dfbb52b0 generated. 
Feb 02 13:08:31 simplesamlphp DEBUG [8abc64dd04] Template: Reading [/OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/dictionaries/errors] 
Feb 02 13:08:31 simplesamlphp DEBUG [8abc64dd04] Template: Reading [/OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/modules/core/dictionaries/no_state] 

それは認証トークンが_498e7d4d75bb7716e5e8cf905e0da5ef1c40cf1b3fあるべきかのように私には見えますが、何らかの理由ではありません。 SimpleSAMLはそのトークンを見つけることができないので、古いものを削除せずに新しいトークンを作成します。たぶん私はそれについて間違っています。私は完全に訂正するつもりです。私の問題は、これを引き起こしていることがわからないということです。設定ファイルのcookie.nameを "biz.stage.originsystems.co.za"に設定しましたが、SimpleSAMLコントロールパネルで正常に動作しているようですが、実際のアプリケーションからSPを使用すると機能しません。誰かがここに正しい方向に向けることができますか?道に迷いました。

+2

生成されたID /トークンが何らかの形で問題を引き起こしています。このエラーを生成する主な理由は次の3つです。1.ドメイン名の変更たとえば、www.example.com上をホッピングしているexample.com上にHTTPSからHTTPSまたはHTTPSからHTTPへのジャンプ、3.セッションが適切に保存されていないこと、さらに詳しくは[こちら](https://simplesamlphp.org/docs/development)をご覧ください。/simplesamlphp-nostate#section_3) –

+0

Multi Thinker:優れた反応です。賞金を得ることができるように、回答として投稿する必要があります。それがあなたのためにうまくいかない場合、Andrew、あなたのSPとIDP設定用のメタデータを投稿してもよろしいですか? –

+0

メタデータを見ることなく、特定の回答を与えるのは難しいですが、FirefoxにはSaml Tracerというアドオンがあります(https://addons.mozilla.org/en-US/firefox/addon/)。 saml-tracer /)は、SSOの問題をデバッグする際に私が常時使っていたものです。デバッグステートメントに依存することなく、前後に送信されている値を追跡するのに役立ちます。 – mounty

答えて

0

2つの完全に独立した環境を定義する必要があります(2つの完全に異なるIDプロバイダを特徴とする)2つの環境を混在させないようにする必要があります(明らかに機能しません。それらをSSO構成に組み込みます(おそらく望ましい結果にはならないかもしれません)。サーバーのホスト名を簡単にチェックし、それに応じて変数を定義することができます。これは、「オンザフライ」または2つの異なる設定ファイルで行うことができます(デプロイメントの最後に設定ファイルをプッシュするのはかなり一般的です)。私にとってこれはSSOの問題よりもはるかに似通った配備の問題(実際のサイトの適切な設定ファイルがないこと)に聞こえます。

関連する問題