LDAP(Lightweight Directory Access Protocol)は、ディレクトリサービスに格納された情報を検索・参照・更新するための通信プロトコルです。ユーザー、グループ、端末、組織、アプリケーション設定など「識別情報や属性情報」を一元管理し、必要なときに取り出す用途で広く使われています。

LDAPは、ディレクトリサービス(Directory Service)を問い合わせ・操作するためのプロトコルです。ディレクトリサービスは、情報を階層的(ツリー構造)に整理し、主に検索(参照)を高速に行うことを目的とした仕組みです。
たとえば、企業の従業員情報(氏名、メールアドレス、所属、役職)、グループ情報(所属メンバー、権限)、ネットワーク機器の管理情報などを一元化し、アプリケーションや認証基盤から参照できるようにします。
LDAPは、もともとX.500(ディレクトリサービスの国際標準)に由来するデータモデルを背景に、TCP/IPネットワークで扱いやすいように設計されたディレクトリアクセス手段として普及してきました。X.500は包括的で強力である一方、実装や運用のハードルが高い場面がありました。LDAPは必要な考え方を取り込みつつ、インターネット環境で実用的に使える形として発展しました。
LDAPの「軽量」は、「機能が少ない」という意味ではなく、ネットワーク越しにディレクトリへアクセスする際に、比較的シンプルな手順とデータ表現で扱えるよう設計されている、というニュアンスです。一般にディレクトリは参照が多く更新が少ない(read-heavy)ユースケースと相性が良く、利用者側は検索条件を指定して必要な属性だけを取得できます。
LDAPの情報は、DIT(Directory Information Tree)というツリー構造で表現されます。ツリー上の各ノードが「エントリ(Entry)」で、エントリは属性(attribute)と値(value)の集合で構成されます。
また、エントリはDN(Distinguished Name)という一意の名前で識別されます。DNはツリー上の位置関係(階層)を含むため、どこに属する情報かを表現できます。
LDAP検索は、一般に「検索ベース(どの枝から探すか)」と「検索フィルタ(条件)」を指定します。条件は属性名と値の組み合わせで表現され、必要なエントリだけを効率よく絞り込みます。認証や権限管理の場面では、ユーザーIDやグループ所属を引く用途で頻繁に利用されます。
LDAPはX.500由来の考え方(階層構造、エントリ、属性、スキーマなど)を継承しています。重要なのは「LDAP=製品」ではなく「LDAP=アクセス手順(プロトコル)」である点です。ディレクトリの実体(サーバー製品)は複数存在し、それぞれがLDAPでアクセス可能、という関係になります。
LDAPはエントリを「属性と値」で表現します。たとえばユーザーエントリには、氏名・メールアドレス・所属・電話番号などが属性として含まれます。これらの属性をどう定義し、どの属性を持つエントリをどう扱うかを決めるのがスキーマ(schema)です。
スキーマは「どのオブジェクト(エントリ種別)が、どの属性を持てるか」を定義します。組織の要件に合わせて属性を追加する、といった拡張も可能ですが、むやみに独自拡張を増やすと運用が複雑化しやすいため、設計段階での整理が重要です。
LDAPは、ユーザーやグループ、各種リソース情報を一元管理する「参照元」として機能します。アプリケーション側が個別にユーザーDBを持つのではなく、ディレクトリを参照することで、アカウント管理の重複や更新漏れを減らしやすくなります。
LDAPは「認証方式そのもの」というより、認証のための情報参照先として使われることが多いプロトコルです。アプリケーションはLDAPサーバーに対して、ユーザーの存在確認や属性取得、パスワード照合(バインド)などを行い、アクセス制御の判断材料にします。
大規模環境では、ディレクトリを基点にしてSSO(シングルサインオン)やMFA、ID管理と連携し、アカウント運用を整理する設計も一般的です。
LDAPはクライアント/サーバー型のプロトコルで、検索(Search)、追加(Add)、更新(Modify)、削除(Delete)などの操作をサポートします。通信はTCP上で行われ、デフォルトのポート番号は389です。
クライアントはサーバーに接続し、必要に応じて認証(バインド)を行ったうえで各種操作を実行します。なお、検索だけを許可する設計や、更新は限定管理者のみ許可する設計など、権限分離が行われるのが一般的です。
多くのプログラミング言語・ミドルウェアにはLDAPクライアントライブラリが用意されています。これにより、アプリケーション内でユーザー属性の取得、グループ所属の参照、認証連携などを実装できます。
LDAPは平文のままでも通信できるため、認証情報や検索内容が漏えいしないよう、通常はTLSで暗号化して利用します。代表的には次の2つの方式があります。
また、パスワードを用いるバインド(Simple Bind)は、TLSなしで使うと危険です。運用では「TLS必須」「弱い認証方式の無効化」などの方針が重要になります。
LDAPは複数の認証方式を扱えます。環境によってはSASLなどの仕組みを用いる場合もあります。さらに、アクセス制御リスト(ACL)により「誰が何を読める/書けるか」を細かく制御できます。個人情報を扱う場合は、属性ごとの公開範囲(例:電話番号は限定公開)まで含めた設計が必要です。
LDAPは基盤として参照されやすいため、停止すると影響範囲が広がります。冗長化、バックアップ、変更手順(スキーマ変更・属性追加の手順)などを整備して、安定運用できる形にしておくことが重要です。
クラウド利用が進む現在でも、オンプレミスにあるディレクトリ情報をクラウド側の認証・権限管理と連携させたい需要は継続しています。ただしクラウド側のID基盤は、LDAP以外の方式(例:SAML/OIDC、SCIMなど)も含めて選択肢が広いため、要件に応じて「LDAPをどこまで残すか/橋渡しするか」を設計するのが現実的です。
「大量の主体情報を管理する」という観点ではディレクトリの考え方が役立つ場合がありますが、IoTの管理はデバイス証明書、鍵管理、ゼロトラスト設計など周辺要素も絡みます。LDAPだけで完結する話ではないため、適用可否は要件(スケール、更新頻度、証明書運用、認証方式)に応じて判断するのが適切です。
LDAP(Lightweight Directory Access Protocol)は、ディレクトリサービスに格納された情報を検索・参照・更新するためのプロトコルで、ユーザーやグループなどの情報を一元管理する基盤として広く利用されています。DIT(ツリー構造)、エントリ(属性と値)、スキーマ(構造定義)といった要素を押さえることで、LDAPが「なぜ運用効率と認証連携に強いのか」を理解しやすくなります。
一方、運用ではTLS(StartTLS/LDAPS)を前提とした暗号化、認証方式の選定、ACLによる最小権限設計、冗長化や変更管理などが重要です。LDAPは今後も、環境に応じてクラウド側ID基盤と連携しながら、情報の集約・提供の基盤として使われ続けるでしょう。
LDAPはプロトコル(通信規約)です。LDAPでアクセスできるディレクトリサーバー製品(実装)は複数存在し、LDAPはそれらに共通して使えるアクセス手段です。
ユーザー、グループ、所属、連絡先、権限付与のための属性など、識別情報や参照されやすい情報の管理に向いています。一般に「参照が多く更新が少ない」用途と相性が良いです。
DIT(Directory Information Tree)は、LDAPの情報をツリー構造で表現したものです。各ノードがエントリで、階層構造により所属関係や管理単位を表現できます。
エントリは属性(attribute)と値(value)の集合で構成されます。ユーザーなら氏名、メールアドレス、所属などが属性として格納されます。
スキーマは「どの種類のエントリが、どの属性を持てるか」を定義するルールです。拡張も可能ですが、運用が複雑化しやすいため設計段階での整理が重要です。
LDAPは認証情報の参照先として利用されます。アプリケーションがユーザーの存在確認や属性取得、バインドによる照合などを行い、アクセス制御に利用します。
はい。平文通信だと認証情報や検索内容が漏えいし得ます。通常はTLSで暗号化し、StartTLS(389→TLS)またはLDAPS(一般に636)を利用します。
運用上はTLSを前提に考えるのが基本です。暗号スイートや証明書管理を含め、現行のセキュリティポリシーに沿って設定します。
ACL(アクセス制御)により「誰がどの属性を読める/書けるか」を制御します。個人情報を扱う場合は、属性ごとの最小権限設計が重要です。
ケースによります。オンプレのディレクトリを基点に運用している組織では依然として重要です。一方、クラウド側ではSAML/OIDCやSCIMなど別方式も一般的なため、要件に合わせて連携設計します。