質問

注意:以下で説明する各ステップでは、同じドメインユーザーアカウントとしてログインしています。

リモートマシン上のサービスを制御するWebアプリケーションがあります( ServiceController )。 Webサイトにリモートで接続してサービスを制御しようとすると、InvalidOperationException:Access is deniedが表示されます。

CAN が機能することがわかっています。WebサーバーからWebサイトに接続すると(リモートデスクトップで、ドメインユーザーとしてログインし、Webページを開く)、期待どおりに機能します。

Windows認証と偽装を要求するようにIISとASP.NETを構成しました。これが失敗した場合、現在のスレッドのプリンシパルをログに記録します。リモートまたはサーバー自体から接続しているかどうかにかかわらず、スレッドが自分のIDで実行されていることがわかります。

IISにKerberos認証、NTLM認証、およびその両方を同時に使用するように強制しました。プリンシパルがAuthenticationTypeを「Negotiate」として報告するかどうかまたは「NTLM」関係ありません。 (ローカルマシンから)リモートで接続した場合、いずれも機能しません

これに関する別の奇妙なことは、ローカルマシンからデバッグしている場合、またはリモートサーバーに接続している場合、毎回動作することです!しかし、私はデバッグしていません、毎回失敗します!

ここで何が起きているのでしょうか?

役に立ちましたか?

解決

あなたのシナリオは委任であり、なりすましではありません。委任を達成するのは難しく、正しく行われる多くのことに依存します。

開始する場所は Kerberos認証と委任問題のトラブルシューティング

David Wangブログは、さまざまな問題に関する非常に役立つリソースです。

他のヒント

"これに関する別の奇妙なことは、ローカルマシンからデバッグしている場合、またはリモートサーバーに接続している場合、毎回動作することです!しかし、私はデバッグしていません、毎回失敗します!"

これは、アクセス許可の問題があることを明確に示しています。ログオンしているユーザーとして実行しているデバッガーで実行しているとき、デバッグしていないときは、IISが使用するように設定されているものとして実行されます(デフォルトではNETWORK SERVICE)。ドメインアカウントをユーザーとして使用して(匿名アクセスを有効にする)を(一時的に!)設定し、それが機能するかどうかを確認してください。存在する場合、IISが偽装するように適切にセットアップされていないことを意味します(おそらく、NETWORK SERVICEとして実行されています)。

IISの権限は、適切に微調整するために少し c hすることができます... がんばって!

P / S:これは、プログラミングの質問よりもネットワーク管理の質問のように見えます( https://stackoverflow.com/questions/321618/stackoverflow-is-for-programming-questions-here-are-some-better-forums-for-your #321756

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top