8

サイト (SP) の最初のリクエストから URL リクエスト パラメータを記憶し、IdP からの応答後にそれらを使用します。

spring-saml 拡張機能を使用していて、relayState 属性について考えていますが、リクエストからのパラメーターを使用してビルドする方法の例が見つかりません。

sso認証プロセスの後にユーザーをターゲットページ(アプリケーションのモジュール)にリダイレクトするには、最初のリクエストの内容に依存する必要があります。

4

1 に答える 1

24

Spring SAML サンプル アプリケーションは、すぐにこのように動作します。ユーザーが Spring Security によって保護され、認証システムを必要とするページにアクセスした場合:

  • 情報を HTTP セッションに保存することにより、ページを呼び出すために使用されたパラメーターを記憶します (Spring Security 内ExceptionTranslationFilterで andを使用して自動的に行われます)。HttpSessionRequestCache
  • SAMLEntryPointIDP の選択後に可能になる、ユーザーを IDP にリダイレクトするSpring SAML のエントリ ポイント (クラス) を呼び出します。
  • ユーザーは IDP で認証され、アプリケーションにリダイレクトされます
  • Spring SAML は応答を検証し、AuthenticationSuccessHandler を呼び出します。これは (サンプル アプリケーションでは) タイプです。org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler
  • 成功ハンドラーは、保存されたリクエスト (最初のステップでそこに置かれた) があるかどうかを確認し、保存されている場合は、ユーザーのブラウザーに、最初と同じパラメーターのセットで記憶されたページを開くようにします。
  • 認証されたユーザーがページへのアクセスを許可されていれば、セキュリティチェックに合格するはずです

もちろん、意図したとおりにリレー状態を使用してこれを実装できます。リレー状態を設定する正しい方法はSAMLEntryPoint、メソッドを拡張してオーバーライドgetProfileOptionsし、返されたオブジェクトで目的のリレー状態を返すWebSSOProfileOptionsことです。

次に、認証の成功後にリレー状態から返される URL にリダイレクトする make をAuthenticationSuccessHandler変更できます。org.springframework.security.saml.SAMLRelayStateSuccessHandler

于 2014-09-24T09:22:08.537 に答える