軽量ディレクトリアクセスプロトコル (LDAP) とは何ですか?

軽量ディレクトリアクセスプロトコル (LDAP) は、アプリケーションがネットワーク経由でディレクトリ情報にアクセスし、管理するためのオープンなベンダー中立プロトコルです。ディレクトリは、組織のユーザー、グループ、デバイスに関するデータを一元管理するストアで、LDAPは通常、そのディレクトリに対してユーザーを認証するために使用されます。ユーザーが1つのユーザー名とパスワードで業務用メールアカウント、VPN、社内アプリケーションにログインするとき、LDAPはバックグラウンドで機能します。各アプリケーションが独自のユーザー一覧を管理するのではなく、LDAPによって複数のアプリケーションが共有された一元的なディレクトリで認証情報を照合できるため、LDAPは企業システムへのログインを支える基盤技術となっています。

LDAPは、X.500ディレクトリ標準で定義された、旧式でリソース消費の大きいアクセスプロトコルであるディレクトリアクセスプロトコル (DAP) に代わる、よりシンプルで効率的なプロトコルとして設計されました。LDAPは構造化ディレクトリという中核概念を維持しながら、複雑な実装とオーバーヘッドを排除することで、導入しやすいプロトコルを実現しました。

LDAPとActive Directory

LDAPとActive Directoryは競合する代替手段と考えられがちですが、実際にはまったく異なるものです。LDAPは、ディレクトリ情報にアクセスして管理するための標準的なルールセット、いわば共通言語です。LDAP自体はデータを保存せず、アプリケーションがディレクトリと通信するために使用するプロトコルです。

Active Directory (AD) は、ネットワーク上のユーザー、グループ、デバイスに関する情報を保存・管理するMicrosoftのディレクトリサービス製品です。LDAPはActive Directoryが使用するプロトコルであり、アプリケーションはこれを通じてActive Directoryのディレクトリを読み書きできます。簡単に言えば、LDAPはActive Directoryが使用できる言語です。LDAPはオープンなベンダー中立標準であるため、OpenLDAP、JumpCloud、Oracle Internet Directoryなど、さまざまなディレクトリ製品やサービスでサポートされています。組織がどのディレクトリを選択して運用する場合でも、アプリケーションは同じプロトコルを利用できます。この柔軟性が、LDAPが広く採用されている大きな理由です。

LDAPはどのように機能しますか?

LDAPはクライアント・サーバーモデルに基づいて動作します。クライアントはディレクトリ情報を必要とするアプリケーション(ログイン画面やメールアプリなど)で、サーバーはディレクトリそのものを保持します。LDAPディレクトリとの一般的なやり取りでは、クライアントがリクエストを送信し、LDAPサーバーがディレクトリの情報に基づいて処理したうえで、レスポンスを返します。ディレクトリがどのように構成されているかを理解するには、ディレクトリ内に何を保存できるのかを知ることが役立ちます。

  • エントリ: ディレクトリ内の1つのレコードです。通常は、ユーザー、グループ、デバイスなど、1つの対象を表します。
  • 属性: エントリに付随するデータ項目です。名前、メールアドレス、電話番号、部署などが含まれます。各属性には種類と値があります。
  • 識別名 (DN): ディレクトリ内のエントリを識別する一意の「アドレス」です。つまり、同じDNを共有するエントリは2つ存在できません。パス形式で記述され、エントリの名前と、そのエントリが属するカテゴリから構成されます。これにより、ディレクトリはエントリの場所を正確に特定できます。

エントリは、ディレクトリ情報ツリー (DIT) と呼ばれる階層構造に整理されます。会社の組織図のように、DITは大まかなルートから、部門などのより細分化されたグループ、さらにユーザーなどの個々のエントリへと枝分かれします。このツリー構造により、DNをパスとして読み取ることができ、各ユーザーのDNはツリーの最上位からそのエントリまでの経路を示します。

LDAPの主な用途

LDAPのほぼすべての用途は、1つの基本的な考え方に基づいています。つまり、各アプリケーションが独自に管理するのではなく、複数のアプリケーションでユーザーやリソースに関する一元的な信頼できる情報源を共有するという考え方です。組織におけるLDAPの主な用途を以下に示します。

認証と認可

LDAPは主に、認証と認可の両方に利用されます。認証では、ユーザーが誰であるかを確認します。これはLDAPのバインド操作を通じて行われます。アプリケーションがユーザーIDとパスワードを送信し、ディレクトリが認証の可否を判断します。認可では、認証されたユーザーに許可する操作を決定します。LDAPディレクトリではユーザーをグループに分類し、アプリケーションがグループへの所属を確認して、アクセスを許可または拒否します。たとえば、「HR」グループのメンバーだけが給与システム内の情報を編集できます。

ユーザー管理の一元化

従来は、各アプリケーションが独自にユーザーとパスワードの一覧を管理していました。新入社員の受け入れでは、複数の場所にアカウントを1つずつ作成し、オフボーディングでは、それらのアカウントを探し出して1つずつ無効化する必要がありました。1つでも対応を漏らすと、重大なセキュリティリスクにつながります。LDAPを使うと、すべてのアプリケーションが1つのディレクトリに対して認証します。その結果、オンボーディングの迅速化、オフボーディングの円滑化、一貫したパスワードポリシー、誰がどのリソースにアクセスできるかを監査するための一元的な場所が実現します。

シングルサインオン (SSO) の基盤

すべてのアプリケーションが同じディレクトリを参照できるため、LDAPはシングルサインオン (SSO) の基盤となります。1組の認証情報を複数のシステムで使用できるようにするものです。ただし、LDAPはSSOそのものではなく、SSOの基盤となる技術です。ユーザーが1回ログインするだけで、パスワードを再入力せずにアプリケーション間を移動できる完全なSSO環境では、通常、追加のプロトコルも組み合わせます。その基盤となる共有IDソースには、LDAPディレクトリが使われることが多くあります。

連絡先の検索

ディレクトリにはユーザーとその属性が保存されているため、アプリケーションはそれを全社で共有するアドレス帳として照会できます。たとえば、メールクライアントで名前を入力し始めると同僚のアドレスが自動補完されたり、社内ツールの「スタッフディレクトリ」検索で同僚の情報が表示されたりします。これがLDAP本来の用途です。ディレクトリは読み取りに最適化され、大量の高速な検索を処理できるよう設計されているため、このような照会に適しています。

構成情報の保存

ユーザー情報に加えて、ディレクトリには、ネットワークプリンター、サーバー、共有デバイスなどの機器リソースのエントリも保存できます。これにより、アプリケーションやユーザーは、各リソースを手動で設定するのではなく、一元的な場所からリソースを検索して接続できます。たとえば、ワークステーションがディレクトリを通じて近くのプリンターを見つけたり、システムが起動時にデバイス設定を取得したりできます。比較的小規模な用途ではありますが、LDAPの柔軟性を示す一例です。

LDAPのポートとセキュリティ

デフォルトでは、LDAPはポート389で通信します。これはLDAPトラフィックの標準ポートです。ただし、LDAP単体では暗号化されないため、データは平文で送信されます。その通信を傍受できる第三者は、ユーザー名やパスワードなどの機密情報を含め、内容を読み取ることができます。ログイン処理に頻繁に使用されるプロトコルにとって、これは重大なリスクです。そのため、暗号化が強く推奨されます。LDAPを保護する一般的な方法を2つ紹介します。

  • LDAPSはポート636を使用します。接続が確立されるとすぐに暗号化されるため、セッション全体でトラフィックが保護されます。SはSecureの頭文字で、HTTPSと同じです。
  • StartTLSは標準ポート389で動作します。別のセキュアポートを使用するのではなく、通常のLDAP接続として開始し、TLSを使用して暗号化接続に切り替えます。最終的な結果はLDAPSと同様ですが、専用ポートではなく同じポート上でネゴシエートされます。

要点は、ポート389で使用する平文LDAPは、それ自体ではデータを保護しないということです。ポート636のLDAPSでもポート389のStartTLSでも、暗号化は必須と考えるべきです。

LDAPのメリットとデメリット

LDAPの強みは、LDAPが長年にわたって企業のアイデンティティ基盤であり続けてきた理由を示しています。一方、その制限からは、補完的なツールが必要となる場面や、LDAPが最適とは限らないケースがわかります。

メリットデメリット
メリット
  • オープン標準 – 独自仕様の技術ではなく、広くサポートされている標準であるため、アプリケーションは一貫して動作し、組織の柔軟性も高まります。
  • ベンダー中立 – 複数のディレクトリ製品で動作するため、組織はアプリケーションの接続方法を書き換えることなく、基盤となるディレクトリを選択または切り替えられます。
  • 拡張性 – 大量の照会に最適化されているため、ユーザー数やリクエスト量が増えてもパフォーマンスを維持できます。
  • ID情報の一元化 – 複数のアプリケーションが、1つのディレクトリを唯一の信頼できる情報源として利用できます。
デメリット
  • デフォルトでは平文 – ポート389の標準LDAPは暗号化されないため、セキュリティを確保するには、LDAPSまたはStartTLSを使用してTLSを明示的に適用する必要があります。
  • 書き込み負荷の高いワークロードには不向き – ディレクトリは書き込みよりも読み取りを重視して最適化されているため、頻繁な更新が必要なアプリケーションには従来型のデータベースの方が適しています。
  • 構成設定の複雑さ – ツリー構造やアクセスルールの定義には、設定時にも維持管理時にも専門知識が必要になる場合があります。

Cookie を無効にする弊社はお客様のプライバシーを大切にしています

当サイトでは、閲覧体験の最適化、弊社の製品や内容に関する個別広告の表示、ウェブサイトの利用状況の分析のためにクッキーを使用しています。詳しくは、プライバシーポリシーをご覧ください。

無料トライアルにサインアップ

今すぐ購入