ドキュメントによると、両方のモジュールがIClaimsPrincipalのインスタンスを作成するために使用されます。WIFがわざわざ1つではなく2つのHttpModuleを使用する理由がわかりません。申し訳ありませんが、私はWIFを初めて使用します
2 に答える
大きな違いは、WSFederationAuthenticationModuleがリクエストをインターセプトし、STSによって認証されるようにユーザーをリダイレクトするのに対し、SessionAuthenticationModuleはWIFトークンCookieを使用して後続のリクエストでユーザーを承認することです。
SessionAuthenticationModuleはパイプラインの最初に起動するため、セッションCookieが既にある場合(つまり、すでに認証されている場合)、セッションモジュールはアクセスを許可します。
MSDNのドキュメントは、これを適切に説明しています。
IClaimsPrincipal
パイプラインに両方を含める必要はありません。後者が必要ですSessionAuthenticationModule
。これは、WIF Cookieをプリンシパルオブジェクトに変換する役割を果たします(FormsAuthenticationModuleがフォームCookieで行うのと同様です)。
前者WSFederationAuthenticationModule
は、インデントプロバイダーからアプリケーションへの最初のSAML投稿のみを担当します。モジュールは投稿を消費し、WIFCookieを発行します。wif:FederatedPassiveSignIn
または、ログインフォームに配置されたコントロールを使用して実行することもできます。
WIF対応のアプリケーションをコーディングする場合、通常はSAMモジュールしかなく、ログインコントロールを使用してCookieを発行します。