2009-04-09 25 views
14

ローカルホストのIIS上でWebサイトを実行しています。このWebサイトには、Windowsの統合認証のみを許可するようにディレクトリセキュリティが設定されています。これはイントラネットの一部で、ドメインアカウントで認証する必要があります。IIS、Firefox、SQL Serverとの統合Windows認証

次に、接続文字列に統合セキュリティ= SSPIを使用してSQL Serverに接続します。

これはMicrosoft Internet Explorerで正常に動作し、ドメインにログインしているときに自動的に認証され、logon_userが自分のドメインアカウントであり、SQL Server接続文字列が正常に機能することがわかります。

ただし、Firefoxを使用してログインすると、状況が異なります。

最初に、Firefoxが自動的に資格情報を送信するのに十分なローカルホストを信頼するように設定されていないため、正しく認証されています(実際にこの信頼を導入する方法を認識しています。 )。私はそれからログインします。ドメインアカウントの詳細を入力すれば、もう一度うまくいきます。確かに、デバッグステートメントまたは2つは、logon_userがまだ私のドメインアカウントであり、すべてが正常であることを示しています。私は(私のドメインアカウントがフルシステム管理者権限を持つリモートサーバーボックスで実行されている、)SQL Serverに接続するために来たときに

はしかし、私は次のエラーを取得する:

Microsoft OLE DB Provider for SQL Server (0x80040E4D) 
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. 

このことは私には何かが認証スタックに間違っている、何らかの理由で、私はfirefoxからWindows認証を使用して認証するときにIISが認証されたアカウントとして実行されていません。

Google Chromeを使用している場合でも、これは正常に機能します。

提案がありますか? :

+0

SQLとIISを同じマシンで実行していますか? – Tomalak

+0

いいえ、SQL Serverはリモートの安全なサーバー上にあります。 – THEMike

答えて

27

notedPontus Gaggeの場合、IISはKerberosのチケットをSQL Serverに渡す必要があります。それは私のGoogle-fuを正しい方向に向けるのに十分だった。

FirefoxはKerberosをサポートしていますが、Kerberosトークンを送信するために信頼するドメインを指定する必要があります。 :

    アドレスバータイプでFirefoxを開き
  1. 設定
  2. Firefox3.x以降あなたは慎重に進めることに同意する必要があります。設定ページをロードした後
  3. 、フィルタボックスタイプで:network.negotiate-AUTH
  4. 行をダブルクリックすることによってnetwork.negotiate-auth.trusted-URIを変更し、入力yourdomain.com
  5. 複数のドメインをすることができyourdomain.comのようなそれらを区切るカンマで追加された、yourotherdomain.com

注:これがないで同じgbnsolutionだけのドメインアカウントの詳細を入力するプロンプトを表示しないようにFirefoxのを構成しているとして、ログn。

また、現在のFirefoxセッションでスタックから認証しようとしている場合は、Firefoxを再起動する必要があります。

+0

記録として、http:// localhostをドメインとして使用して、Firefox Developer Editionでこれらの変更を行った後、引き続き問題を解決しました。また、「ログインに失敗しました...」というメッセージが表示されないようにするには、gbnの解決策を次に実行する必要がありました。それは最終的に働いた2つの場所にURIを追加する組み合わせでした。私は、どちらか一方を取り除くと問題が戻ってくることを確認しました。 – PhilDearmore

+0

申し訳ありませんが、私はあまりにも早く話しました。それを二重チェックした後、設定が必要なのはnetwork.automatic-ntlm-auth.trusted-urisだけです。 – PhilDearmore

5
    アドレスバータイプでFirefoxを開き
  1. 設定
  2. Firefox3.x以降あなたは慎重に進めることに同意する必要があります。設定ページをロードした後
  3. 、フィルタボックスタイプ:
  4. が行をダブルクリックすることによってnetwork.automatic-NTLM-URIのauth.trustedを変更しhttp://www.replacewithyoursite.com
  5. 複数部位により添加することができる入力network.automaticこのようhttp://www.replacewithyoursite.comとしてそれらを区切るカンマは、http://www.replacewithyourintranetsite.com

私もIEtabアドオンをイントラネットサイトに使用

+0

私はこれを行う方法を知っています、私はそれを渡すには余裕がない、これは問題ではありません。私が認証したときに、それがSQL Serverに渡されないという事実は問題です。 – THEMike

5

IISは、このシナリオが機能するためにSQL ServerにKerberosチケットを渡す必要があります。 MSIEはワークステーションのセッションチケットを取得していますが、FirefoxはKerberosではなく独自の認証をネゴシエートしています。

this dense blog postは、何が必要なのかを理解するための出発点です。 FFがMS-Kerberosをサポートしているかどうかはわかりません。

間違ったバージョンや信頼の設定があると、MSIE-> IIS-> SQL Server認証を取得することも厄介なことに注意してください。