9

Windows の認証方法とプロトコルを検索した結果、単純な実行可能ファイルで使用される Negotiate、Kerberos、および NTLM の正確な違いを理解してから、IIS と Web 認証を使用することにしました。

良い結果が得られましたが、Negotiate と Kerberos についてはまだ詳細が必要です。

次のシナリオがあります。

メッセージボックスに次の値を表示する、非常に単純な C# Windows フォームアプリケーションを作成しました。

System.Security.Principal.WindowsIdentity.GetCurrent().AuthenticationType

私はローカル マシンの管理者権限を持つドメイン ユーザーであることに注意してください。次の結果が得られました。

  1. DCにアクティブに接続しているときにexeファイルを実行(ダブルクリック)すると、「ネゴシエート」が表示されました。

  2. DCにアクティブに接続しているときにexeファイルを実行すると(differnetユーザーとして/ローカルユーザーを使用して実行)、「NTLM」が発生しました。

  3. 「管理者として実行」または「別のユーザーとして実行」を使用してexeファイルを実行すると、「Kerberos」が発生しました。

  4. ローカルアカウントを使用してローカルにログインしているときにexeファイルを実行すると、「NTLM」が表示されます。

LSA がローカル アカウントにNTLMを使用することを理解しています。また、Active Directory がKerberosを使用してドメイン ユーザーとコンピューターを認証することも理解しています。

私の質問は、(ダブルクリック)、または同じアカウントを使用して「別のユーザーとして実行」することにより、アカウントを使用してexeを実行すると、ネゴシエート認証タイプを取得するのはなぜですか?

更新:次のことに気付きました:

-ローカルユーザーがexeを実行している場合、それはNTLM
です -ドメインユーザーがexeを実行している場合、それはネゴシエート(そのユーザーがローカル管理者である場合)ですが、Kerberos(そのユーザーがローカル管理者でない場合)です)
-ドメイン管理者が exe を実行する場合、それはKerberosです

この動作について説明します。

4

1 に答える 1