LDAPはインターネットプロトコルであり、サーバーからデータを検索するために使用されます。このプロトコルは、階層ディレクトリ構造から情報を保存および取得するために使用されます。LDAPは、階層型のデータモデルにも準拠しています。簡単に言えば、リーフノードが実際のデータを保持するツリーのような構造にデータが格納されている階層型データベースと言えます。
LDAPは、プログラムがクライアントまたはサーバーでどのように機能するかを定義することはありませんが、クライアントとサーバー間の通信に使用されるメッセージのタイプについて詳しく説明しています。メッセージは、クライアントが要求した情報、サーバーの応答、およびデータの形式にすることができます。これらのメッセージは、TCP/IPプロトコルを介して渡されます。したがって、セッション接続を確立し、クライアントとサーバー間の操作の完了後にセッション接続を切断する操作が存在する必要があります。LDAPは、必要な読み取り操作の数が多く、書き込み操作の数が少ない場合に使用できます。たとえば、ユーザー名とパスワードはそれほど頻繁に変更されないことがわかっているため、ユーザー認証。
LDAP操作プロセス
通信を開始するには、クライアントはサーバーとのセッションを作成する必要があります。このプロセスはバインディングと呼ばれます。サーバーにバインドするには、クライアントはIPアドレスまたはホスト名とTCP/IPポートを指定する必要があります。サーバーが参加している場所はありません。クライアントは、サーバーとの適切な認証を確実にするために、ユーザー名やパスワードなどの資格情報を提供することもできます。または、クライアントはデフォルトのアクセス権を使用して匿名セッションを作成することもできます。または、両方の当事者が、データ暗号化などのより強力なセキュリティプロセスを使用するセッションを確立できます。セッションが確立されると、クライアントはディレクトリデータに対して目的の操作を実行します。LDAPでは、ディレクトリ情報は読み取り機能と更新機能を提供するため、管理および照会できます。クライアントは、リクエストの作成が終了するとセッションを閉じます。このプロセスは、バインド解除と呼ばれます。LDAPモードLDAPは、主に次のようなデータモデルに依存しています。
情報モデルディレクトリには情報の基本単位が含まれており、エントリと呼ばれ、サーバーや人などの実世界のオブジェクトを表します。エントリには、オブジェクトに関する情報を定義する属性のコレクションが含まれます。各属性には、構文に関連付けられたタイプと1つ以上の値が含まれます。次の図は、エントリとその属性、およびそれらのタイプと値の関係を示しています。
ネーミングモデルLDAPのネーミングモデルは、エントリがどのように認識および編成されるかを示します。LDAPでは、エントリはDIT(ディレクトリ情報ツリー)と呼ばれる階層構造またはツリーのような構造で編成されます。エントリは、DN(識別可能な名前)に従ってDIT内で順序付けられます。これは、単一のエントリを明確に識別する一意の名前です。
機能モデル
LDAPは、クライアントによって要求される操作を定義し、3つのカテゴリに分類できます。彼らです:
1. Query which is used to fetch information from a directory. Include operations like search and compare.
2. Update which is used to update the information stored in the directory. Include operations like add, modify and delete.
3. Authentication which is used to connect and disconnect with a server, create access rights and preserve information. Include operations like bind, unbind and abandon.
セキュリティモデル
In LDAP, the security model relies on the bind operation. Three different bind operations are possible according to the security mechanisms applied. They are:
認証なし
最も単純な方法ですが、データセキュリティに問題がなく、アクセス制御のアクセス許可が絡んでいない場合にのみ適用できます。たとえば、ディレクトリには、誰でも閲覧できるアドレス帳が含まれています。バインドAPI呼び出し中にユーザーがDNとパスワードのフィールドを空のままにした場合、サーバーは自動的に匿名ユーザーセッションを採用し、このタイプのアクセスについて説明されている対応するアクセス制御とともにアクセスを許可します。
基本認証
基本認証は、LDAPで使用される代替の単純なセキュリティメカニズムであり、HTTPなどの他のいくつかのWeb指向プロトコルで使用されます。このアプローチでは、クライアントは、ネットワークを介してクリアテキストで転送されるパスワードとDNを入力することにより、LDAPサーバーに対して自身を認証する必要があります。一方、サーバーはDNとパスワードをディレクトリ内のエントリと比較します。また、パスワードが一致した場合にアクセスを許可します。さらに、クリアテキスト形式のパスワードは機密性を保証することはできません。したがって、許可されていない第三者にパスワードが開示される可能性があります。
SASL(Simple Authentication and Security Layer)
このフレームワークはLDAPV3に追加され、コネクション型プロトコルに追加の認証方法が追加されています。このメカニズムは、クライアントとサーバーが認証を保証し、後続の通信が実行されるセキュリティ層を確立するためにデータを交換するチャレンジ&レスポンスプロトコルを指定します。SASLを使用すると、LDAPプロトコルは、LDAPクライアントおよびLDAPサーバーによって承認されたあらゆる種類の認証をサポートできます。