Windowsの認証方法とプロトコルを検索して、IISとWeb認証で好きになる前に、単純な実行可能ファイルで使用されるNegotiate、Kerberos、およびNTLMの正確な違いを理解することにしました。Windows実行可能ファイル認証
私は良い結果に達しましたが、引き続き交渉とケルベロスに関する詳細が必要です。私は次のシナリオいる
:私は管理者を持つドメインユーザーだ
System.Security.Principal.WindowsIdentity.GetCurrent().AuthenticationType
注:
は、私は非常に単純なC#ウィンドウを作成したメッセージボックスを示していたアプリケーションは、の値を表示する構成します私のローカルマシン上の権限は、私は次のような結果を持っている:私は積極的にDCに接続されていながら、私はexeファイル(ダブルクリック)を実行すると、私が得た
」交渉する "。
私はDCに積極的に接続しているうちにexeファイル(differentnetユーザー/ローカルユーザーを使用して実行します)を実行すると、 "NTLM"が取得されます。
「管理者として実行」または「別のユーザーとして実行」を使用してexeファイルを実行すると「Kerberos」が表示されます。
ローカルアカウントを使用してローカルにログインしているときにEXEファイルを実行すると、「NTLM」が表示されます。
私は、LSAは、ローカルアカウントのNTLMを使用することを理解しています。また、私はActive DirectoryがKerberosを使用してドメインユーザーとコンピュータを認証することを理解しています。
ネゴシエート認証タイプは、自分のアカウントを使用して(ダブルクリック)実行するか、同じアカウントを使用して「別のユーザーとして実行する」ですか?
アップデート:私は、次のように気づいた:
- ローカルユーザーは、exeファイルを実行している場合、それは、NTLM
ある - ドメインユーザーは、exeファイルを実行すると、それはをネゴシエートです(そのユーザーがローカル管理者の場合)Kerberos(そのユーザーがローカル管理者でない場合)
- ドメイン管理 exeを実行すると、Kerberos
この動作についてはっきりとわかります。
質問は不明である:
は、ここですべての認証は、Windowsで一緒にどのように適合するかを示し古いがまだ関連図です。ユーザを認証するために使用される認証パッケージは、ユーザを認証するために使用されるプロトコルとは異なり、それぞれが認証を実行するエンティティとは異なる。 1対1(対1)の関係はありません。 NTLMとKerberos(およびネゴシエート)は、リモートコンピュータへの認証時にのみ関係します。非ドメイン環境のリモートコンピュータへの認証ではNTLMが使用され、ドメイン内のリモートコンピュータに対する認証ではKerberosまたはNTLMが使用されます。あなたは正確に何を見つけようとしていますか? – conio
これは当てはまりません。また、ローカルマシンは、認証パッケージを使用して、GINA経由でWinlogonによって収集されたログオン資格情報を認証します。 Winlogonは、認証パッケージを使用してログオンセッションを作成するLsaLogonUserを呼び出します。 LSAはローカルログオンの場合、ローカルマシンSAMのアカウントを検索するためにNTLM(Msv1_0.dll)を使用します。リモートコンピュータは必要ありません。 – codekaizen
あなたは近くにいません。 MSV1_0が「NTLM」と誤って記述されているようないくつかのページ(回答でリンクしたページなど)が、[MS-NLMP]で説明されている** NTLM **プロトコル**を使用しているわけではありません。 (正しい記述は[Microsoft認証](http://i.stack.imgur.com/k6rdD.png)[パッケージv1.0](http://i.stack.imgur.com/313Y3.png)、 btw。)私はこの点について、私がどのようにしてもっと明確になるかわかりません。ローカルSAMに対して認証すると、誰もチャレンジを作成せず、パスワードのLMハッシュまたはNTハッシュに基づいてそのチャレンジに対するレスポンスを作成しません。 – conio