2016-12-07 10 views
1

Nginxをリバースプロキシとして使用して認証とUI用のSpringブート+ Spring SAMLを使用して私のrest service(SP)を構築する構造を持っています。 直接URLでreturn/rewriteでサービスを呼び出す場合は、すべて正常に動作しています。IDPを呼び出して認証され、応答が返されます。 proxy_passを使用して同じサービスを呼び出すと、応答のInResponseToFieldが失敗し、送信されたメッセージに対応しません。Springブート+ Spring SAMLがNGINXのために機能していませんproxy_pass

WebサーバーとしてNGINXを使用し、NGINXを呼び出してUIを使用するUIがあります。 LBの下に複数のインスタンスを持つSP コンテキストプロバイダとしてSAMLContextProviderLBを使用しました。

Nginxを使用してこの呼び出しを行うにはどうすればよいですか。

答えて

1

Nginxがスティッキセッションを使用するように設定されていないと思われます。これは、IDPからの応答が、もともと他のサーバから送信された要求を認識していないサーバに到着する可能性があり、したがってそれを検証できないことを引き起こします。春SAMLマニュアルは言う:

あなたのリバースプロキシまたはロードバランサは、スティッキーセッションを使用 に設定されていることを確認してください。

複数の可能な解決策があります応答が(詳細はmanualを参照)、それをInResponseToフィールドの

  • 無効に検証を送信し、同じサーバーに行くよう

    • は、nginxの上でスティッキーセッションを有効にします
    • HTTPセッションの複製を有効にするため、送信された要求を含むHttpSessionがすべてのサーバーに配信されます。 spring-session
  • +0

    ありがとうVladi。あなたの応答は常に助けます。私はあなたの提案に関して次の質問を投稿しました。それらのために提案してください。 – Mahesh

    関連する問題