8

最近、イントラネットアプリケーションの最新バージョンをリリースしました。これは、Windows認証を標準として使用しており、エンドユーザーのドメイン資格情報を使用して構成済みのSQLサーバーに接続できる必要があります。

最近、いくつかのお客様の展開で、IISはユーザーのドメイン資格情報を確認できますが、これらをSQLサーバーに渡さないことがわかりました。代わりに、匿名アカウントを使用しているようです。これは、すべての正しい手順(ディレクトリセキュリティをWin Authに変更し、Win Authを使用するようにWeb.Configを更新し、匿名ユーザーを拒否する)に従っているにもかかわらずです。

私はKerberosが適切に配置されていることを確認する必要があることを示唆する多くの読書を行ってきましたが、(a)これがどれほど有効であるか(つまり、それは本当に要件ですか?)または(b)どのように行うかはわかりません設定されているかどうか、または設定方法を調査します。

私たちは、IISまたはアプリケーションを顧客のために機能するように構成するか、それを機能させるために何をする必要があるかを顧客に正確に説明できるようにする必要がある状況にあります。

テストSQLサーバーと開発者のIISボックスを使用して、内部ネットワークでこれを再現することができたので、この設定をいじって、解決策を考え出すことができるかどうかを確認します。明るいアイデア、私はそれらを聞いて最も幸せです!

特にKerberosに関する人々の考えやアドバイスを聞きたいです。これは要件ですか。要件がある場合、どのように構成する必要があるかを顧客に説明するにはどうすればよいですか。

ああ、そして私はまた、ドメインの「古典的なワンホップルール」とウィンドウのクレデンシャルの受け渡しについて言及している人もいますが、これが実際にどれほどの重みを持っているのかわかりませんか?

ありがとう!

マット

4

3 に答える 3

4

これはダブルホップ問題と呼ばれ、ユーザーの資格情報を第三者に転送することを禁止します。これは、あるマシンから別のマシンのサイトを参照し(ファーストホップ)、クレデンシャルを3番目のマシンに転送する(セカンドホップ)ときに発生します。

IISとSQLServerを同じマシンでホストしている場合、この問題は発生しません。

これについては、ASP.NETでSystem.DirectoryServices名前空間を使用する方法で、ダブルホップの問題とプライマリトークンとセカンダリトークンについて説明している、より多くの技術的な詳細が公開されています。

于 2010-11-01T19:19:15.063 に答える
1

ユーザーのActiveDirectoryまたはWindowsクレデンシャルでアプリケーションを実行するには、次のことを確認してください。

  • IISアプリケーションは、匿名アクセスを許可しないように設定されています
  • IISアプリケーションは統合Windows認証を使用します
  • 接続文字列はIntegrated Security=SSPI、ユーザーのWindows/ADクレデンシャルがSQLServerに渡されることを確認する必要があります。

    すなわちData Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

于 2010-11-01T18:51:47.713 に答える
0

あなたは、「それが設定されているかどうかを調査する方法、または設定する方法」がわからないと述べています。

このために、DelegConfigと呼ばれるツールを心からお勧めします。これは、Kerberosが適切に設定されているかどうかを確認できる非常に便利なアプリです。

それをディレクトリに解凍し、それを指すようにIISで仮想ディレクトリを構成します。メインページを参照して、アクセスを許可するバックエンドサーバー(UNC、SQL、HTTPなど)を指定すると、セットアップが正しく行われているかどうかが示され、その理由が説明されます。

必要に応じて、問題を修正するためにKerberosを再構成する機能もあります(これは使用していませんが、将来何をしたかを理解するために自分で再構成したいと思います)

これはあなたの特定の問題には遅すぎると思いますが、フォローしている他の人たちと共有する価値があると思いました-特に、委任が機能している理由と機能していない理由を説明するツール機能。私はそれがかけがえのないものだと思った。

于 2010-12-03T10:25:45.463 に答える