kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

WCFサービスからリモートSQL Serverへアクセスする場合にはまること

こんな構成でクライアントからwsHttpBindingを使い、CredentialsはWindowsとします。これで偽装も行っているので、WebサーバーのWorkerProcessがNetworkServiceでもローカルファイルに対してアクセスが行えています。
で、さらにWCFサービスからSQL ServerへWindows認証を行うとNT AUTHORITY\ANONYMOUSEでアクセスしようとして、エラーになるというのが現在の状態。ダブルホップが起きているのかなぁ…一応Active Directoryでの委任は設定しているのですが、NTLMでアクセスしようとしているのかもしれません。とりあえず、NT AUTHORITY\ANONYMOUSEにアクセス許可を設定してしまいましたorz。よい子はマネしちゃダメだぞ!
海外でもこの構成ではまっている人は多くいるようで、「ActiveDirectoryに委任設定しろよ!」「俺管理者じゃないからそんなことできねーよ(涙)」とコメントしている人も多くみられました。といってもダブルホップだと、管理者にやってもらわないとどうしようもないですよねぇ。探してみたところいろいろリソース発見。
You may not be able to connect to an instance of SQL Server by using an anonymous login
patterns & practices: WCF Security Guidance - Home
Testing connection to SQL Server from a service running under Local System Account