C# で記述された WCF サービスがリモート マシンでホストされ、ローカル管理者アカウントとして実行されています。Active Directory ユーザーとしてログインしているマシンから、ネットワーク上のファイルを開くように単純に指示するコマンドを送信しています。私はファイルにアクセスできますが、ホスト マシンの管理者アカウントにはアクセスできません。偽装が必要なメソッドで [OperationBehavior(Impersonation=ImpersonationOption.Required)] メタ タグを使用しており、資格情報の種類とセキュリティ モードが正しく設定されています。Windows ID を比較することで、アカウントが実際に偽装されようとしていることを確認できますが、それでもアクセス拒否の例外が発生します。なりすましユーザーを認証していないアクティブディレクトリに関係があると思います。足りないものはありますか?
2 に答える
Kerberos セキュリティと 2 つのホップ認証のドメインに入ります。
次の 2 つのオプションがあります。
赤い丸薬を服用してください: 2 ホップ認証を機能させるようにしてください。少なくとも Windows Server 2003 ドメインがあること、すべてのマシン間で時刻が適切に同期されていること、および特定のユーザー/コンピューター アカウントに対して適切な委任が設定されていることを確認してください。本当に「運が良ければ」、SetSPN で SPN を構成する必要があります。
青い薬を飲みましょう: 2 ホップ認証を忘れ、十分な権限を持つアカウントで WCF サービスを偽装し、前の手順で承認を確認します。
私の欲求不満を許してください、しかし私はこのトピックに関する私の短い経験が私の人生の少なくとも10年を犠牲にしたと思います. それが他の誰かに起こったのを見るのは嫌いです。とにかく、勇気があれば、この投稿で十分な Google キーワードが得られるはずです。
イベントログとネットワークモニターはデバッグに役立ちます...
おそらく、Web サーバーからファイル サーバーへの委任も設定する必要があります。これにより、ファイル サーバーは、Web サーバーが検証した資格情報を信頼できるようになります。アプリケーションの委任を設定する方法については、このMSDN の記事、特に AD の構成に関するセクションを参照してください。