WS-フェデレーションパッシブリクエスタープロファイルに含まれる手順を検討する1:
上の図は、ユーザー(リクエスター)がブラウザーでWebアプリケーションにアクセスするシーケンス図を示しています。最近のセッションのためにユーザーは認証されなかったため、アプリケーションはユーザーをIDPにリダイレクトしてユーザーログインを行います(1)。 IDPはユーザーから資格情報を収集し、セキュリティトークンサービス(STS)を使用して資格情報を検証し、STSからSAMLトークンを取得します(2)。 STS自体はLDAPデータストアに接続され、ユーザーの資格情報を検証し、ユーザーに関する追加情報(クレーム)を取得します。役割。認証(3)が成功すると、IDPはSTS(4)によって発行されたSAMLトークンをユーザーに返し、ユーザーにアドバイス(auto-submitting form)を返しますこのSAMLトークンを最初に要求されたWebアプリケーションに送信します(5)。 IDPはWebユーザーインターフェイスの提供とURLリダイレクトの処理を担当しますが、STSはSAMLトークンの生成とユーザー資格情報の検証を担当します。 WebアプリケーションはSAMLトークンを検証し(6)、成功すると目的のWebページが返されます(7)。
ステップ4では、自動的に自分自身を送信するフォームをユーザーに返すことができます。 このフォームにはCSRF保護が必要ですか?
確認を探していますが、答えは「いいえ」だと思います。悪意のあるWebサイトがユーザーにPOSTこのフォームを実行させる可能性がある場合でも、セキュリティトークンを正常に偽造する必要もあります。
出典:
CSRFは、クライアントに受動的に送信されるトークンを要求します。クッキー。 「セッションライディング」としても知られるこの攻撃は、パッシブに送信されたトークンを利用する要求を偽造します。偽造された要求は、すでに確立されている正当なセッションに「乗り」ます。
ステップ4では、ブラウザーにはまだSAMLトークンがまだないため、CSRF軽減策は必要ありません。
ステップ6mightはCSRF緩和を必要としますが、それが何らかの効果がある場合のみです。パスワードの変更、送金など。表示目的でWebページを取得することのみが目的の場合、CSRFの軽減は必要ありません。 (CSRF攻撃の目的は、盗聴ではなくコマンドを発行することです。)
おそらく、ユーザーが実際に何かに影響を与えることができるステップ8、9、10などがあるかもしれません。この種のトランザクションには、CSRFの緩和が必要です。
余談ですが、ステップ0では セッション固定 に対する緩和策が必要です。