IIS7にサイトマインドをインストールしていて、サーバーでASP.NETサイトを実行しています。サイトマインドSSOはASP.NETMVC要求の保護に失敗しているようです。すべてのASP.NET要求はASP.NETisapiフィルターによって処理され、Siteminderisapiフィルターの実行を妨げているようです。ASP.NET MVCサイトを保護するためにsiteminderSSOを機能させるにはどうすればよいですか?ASP isapiフィルターの前にSiteminderSSOのisapiフィルターを強制的にロードする方法はありますか?
4 に答える
私たちにとっての解決策は、SiteMinder Web エージェント ISAPI ハンドラーの後に MVC ISAPI ハンドラーをこの順序でweb.configファイルにリストすることでした。
ここにコードフラグメントを投稿しました。
IIS で ISAPI フィルターを注文してみましたか? Win2008 IIS7 では実行していませんが、Windows 2003 では SiteMinder エージェント インストーラがフィルタを並べ替えます。IIS マネージャーで確認して並べ替えることができるはずです。SiteMinder フィルタが一番上にある必要があります。
IIS7 の MVC3 にも同じ問題があり、統合モードを使用する必要があります。私たちの解決策は、IHttpModule と Handler (.axd) の組み合わせを使用することですが、siteminder の新しいバージョンには、ISAPI フィルター (ISAPI6WebAgent.dll) の代わりに統合モジュールである IIS7WebAgent.dll があるため、不要になりました。これをテストして動作を確認したところ、すべての MVC URL を保護でき、SM_USER などの siteminder によって作成された HTTP ヘッダーを MVC パイプラインから読み取ることもできました。
私がテストしたサイトマインダーのバージョンは R12 SP 3 です。複雑ではないことを確認してください。
仮想フォルダーが siteminder によって保護されていたにもかかわらず、MVC-2 サイトでも同じ問題が発生しました。
最後に、問題が何であるかを理解しました。
アプリケーションプールモードを統合からクラシックに変更し、ほら!問題が解決しました。