NTLM 認証
NTLM は、基本的な Web サーバーでサポートされている最も複雑な認証プロトコルです。
NTLM は、基本的な Web サーバー (HttpClient など) でサポートされている最も複雑な認証プロトコルです。これは Microsoft によって設計された独自のプロトコルであり、公開された仕様はありません。初期のバージョンの NTLM は設計に問題があるため、ダイジェスト認証よりも安全性が低くなります。ただし、この問題は Windows NT 4 用のサービスパックで修正され、現在ではこのプロトコルはダイジェスト認証よりも安全であると見なされています。
NTLM 認証では、サーバーのドメイン名またはデフォルトの認証情報に対して NTCredentials のインスタンスが使用可能である必要があります。NTLM は領域の概念を使用しないため、HttpClient はサーバーのドメイン名を領域の名前として使用します。また、NTCredentials に対して指定するユーザー名には、ドメインのプリフィックスを付けないでください。
- 適切:adrian
- 不適切:DOMAIN\adrian
基本認証およびダイジェスト認証と比較して、NTLM の動作方法にはいくつかの重要な違いがあります。これらの違いは通常、HttpClient によって処理されます。ただし、これらの違いを理解しておくと、NTLM 認証を使用する際の問題を回避するのに役立ちます。
- NTLM 認証は、HttpClient API に関して他の認証形式とほぼ同じように機能します。唯一の違いは、UsernamePasswordCredentials の代わりに NTCredentials を指定する必要があることです (必要に応じて、アプリケーション全体で NTCredentials を使用できるように、NTCredentials は実際に UsernamePasswordCredentials を拡張します)。
- NTLM 認証の領域は、接続されているコンピューターのドメイン名です。サーバーには複数のドメイン名があることが多いため、これは面倒な作業になる可能性があります。認証情報の検索には、HostConfiguration で指定されている HttpClient が接続するドメイン名のみが使用されます。最初に NTLM 認証をテストするときは、デフォルトとして使用される null として領域を渡すことをお勧めします。
- NTLM は要求ではなく接続を認証します。そのため、新しい接続が確立されるたびに認証する必要があり、認証中は接続を開いたままにしておくことが重要です。このため、プロキシサーバーと Web サーバーの両方での認証に NTLM を使用することはできません。また、HTTP キープアライブをサポートしない HTTP 1.0 接続または Web サーバーで NTLM を使用することもできません。
注:
システムプロパティ
[sys_properties] テーブルからこれらのプロパティを設定します。| プロパティ | 説明 | 例 |
|---|---|---|
| glide.http.proxy_ntusername | NTLM 認証でのプロキシサーバー認証に使用するユーザー名を指定します。
|
ユーザー名 |
| glide.http.proxy_ntpassword | NTLM 認証でのプロキシサーバー認証に使用するパスワードを指定します。
|
パスワード |
| glide.http.proxy_nthost | NTLM 認証でのプロキシサーバー認証に使用するホスト名を指定します。
|
nthost |
| glide.http.proxy_ntdomain | NTLM 認証でのプロキシサーバー認証に使用するドメインを指定します。
|
DOMAIN |