複数の WCF サービスを呼び出す asp.net Web アプリケーションがあります。Web アプリは www.mydomain.com にあり、サービスは services.mydomain.com にあります。それらは同じサーバーからホストされています。
トランスポート セキュリティ (https) と Windows 認証を使用するサービスに、セキュリティで保護されたエンドポイント (bassicHttpBindings) を追加しました。
<binding name="WindowsSecuredBinding">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
これらの新しい安全なエンドポイントを使用するようにクライアント Web アプリを構成しました。次のステップでは、Web アプリにコードを記述して、Windows 認証に合格するためにクライアントの資格情報を設定することを期待していました。驚いたことに、クライアント資格情報を設定せずにサービス呼び出しが成功しています。Web アプリが実行されているアカウントを送信しているに違いないと思いますが、それを確認する方法がわかりません。他のシナリオでは、クライアント資格情報に暗黙的なデフォルトがないことがわかったと思います。
だから私は2つの質問があります:
- 認証はどのように成功していますか? アプリを実行するユーザー、ブラウザー ユーザーの資格情報、資格情報なしで送信しますか?
- 認証プロセスをデバッグ/ログ/トレースするにはどうすればよいですか? セキュリティを検証できるように、少なくとも認証されているユーザー名を確認したいと思います。