現在、IIS Web サーバーで kerberos 委任をセットアップしています。
ユーザーは Web サーバー上の Web サイトに接続し、Web アプリケーション内で生成される SSRS レポートを呼び出すことができます。Web アプリケーションは、SSRS Web サービス ReportExecution2005.asmx を呼び出してレポートを生成し、レポートを pdf バイナリ配列として返し、画面に表示することでレポートを生成します。
IIS Web サイトは、サービス アカウントを使用するアプリケーション プールに対して実行されています。IIS サーバーとサービス アカウントの両方が委任に対して信頼されています。
IE でサイトを表示してレポートを要求すると、すべてうまくいきます。Chrome または FireFox 経由で同じ呼び出しを行うと、ケルベロス チケットが正常に発行されているにもかかわらず、SSRS サーバーへの呼び出しが 401 で失敗します。
SSRS サービスを呼び出すときに、System.Net.CredentialCaceh.DefaultCredentials と System.Net.CredentialCaceh.DefaultNetworkCredentials の両方を使用するように呼び出しを設定しようとしました
ブラウザーが IE でない場合に kerberos 委任が失敗する理由を誰かに説明してもらえますか?
- アップデート
すべてのブラウザーでサイトにアクセスすると Kerberos チケットが発行されるという私の最初の声明は誤りでした。IE を使用してサイトにアクセスした場合にのみ、チケットが生成されます。Chrome / Firefox は NTLM にのみ解決されます。
-- 更新 2
私は、Firefox と Chrome の両方がデフォルトで Negotiate プロトコルを使用していないと判断しました。私のサイトで kerberos ベースの認証を許可するには、about:config 領域を使用して、両方のブラウザーで信頼できるサイトであることを明示的に述べる必要がありました。
他の誰かが同じ問題を抱えている場合は、http://blog.webonweboff.com/2010/12/integrated-windows-authentication-and.htmlを参照してください。