クライアントが統合 Windows 認証を必要とするシステムがあります。これは、Sql Server 2005 に接続する ASP.NET 3.5 アプリケーションです。Web サーバーは Server 2003 R2 SP2 です。db サーバーは Server 2003 SP2 (R2 ではありません) です。
dbサーバーで、次のスクリプトを実行しました
exec sp_grantlogin 'myDomain\myUserGroup'
USE myDbName
exec sp_grantdbaccess 'myDomain\myUserGroup'
現在、Windows ユーザー グループ「myDomain\myUserGroup」に 3 人のユーザーがいます。3 人のユーザーのアカウントはすべて、委任に対して信頼済みとしてマークされています。AD の Web サーバー アカウントは、委任に対して信頼できるとマークされています。
Web アプリケーションは、Windows 認証を使用するようにマークされています (その他はすべてオフになっています)。web.config には次の行があります。
<authentication mode="Windows" ></authentication>
<identity impersonate="true" />
<authorization>
<deny users="?"/>
</authorization>
しかし、ユーザー グループに属するユーザーで Web アプリケーションに接続しようとすると、次のエラーが表示されます。
System.Data.SqlClient.SqlException:
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
私の接続文字列は、次のように構築された Sql ConnectionStringBuilder から構築されています。
ConnectionStringBuilder.DataSource = "MYDBSERVER"
ConnectionStringBuilder.InitialCatalog = "MYDBCATALOG"
ConnectionStringBuilder.IntegratedSecurity = True
許可されたアカウントの1つをweb.config <identity /
>行で偽装するようにハードコードすると、機能します。しかし、ハード コードされたアカウントを削除して、クライアントのマシンから ID を渡そうとすると、. エラーが発生します。
そのため、マルチホップ統合ログイン シナリオ用に何かが正しく構成されていないようですが、何がわかりません。
前もって感謝します!