Authentication

Directory Services

ディレクトリサービス(LDAP/AD)

Category: Authentication / Updated: 2026-05-26

📖

Overview

ディレクトリサービスとは、ネットワーク上のユーザー、コンピュータ、プリンター、共有フォルダなどのリソース情報を一元的に管理・検索するための仕組みです。電話帳(ディレクトリ)のように、組織内のあらゆる情報を階層的に構造化し、効率的なアクセスを実現します。

ディレクトリサービスの中核をなすプロトコルがLDAP(Lightweight Directory Access Protocol)です。LDAPは、ディレクトリ情報へのアクセスと管理を行うためのオープンな標準プロトコルであり、TCPポート389(暗号化なし)またはポート636(LDAPS:LDAP over TLS)で通信します。

企業環境で最も広く採用されているディレクトリサービスの実装が、MicrosoftのActive Directory(AD)です。Active Directoryは、LDAPを基盤としつつ、Kerberos認証、グループポリシー(GPO)、DNS統合などの機能を備え、Windows企業環境のID管理・認証基盤として事実上の標準となっています。近年では、クラウド対応としてAzure AD(現Microsoft Entra ID)への移行も進んでいます。

🔬

Details

LDAPプロトコルの基礎

LDAPは、ディレクトリ情報ツリー(DIT: Directory Information Tree)と呼ばれる階層構造でデータを管理します。各エントリはDN(Distinguished Name)で一意に識別され、属性(Attribute)と値(Value)のペアで構成されます。典型的なDNは「cn=Tomoya Murakami,ou=Engineering,dc=example,dc=com」のような形式です。

  • Bind操作:LDAPサーバーへの認証接続を確立する操作。Simple Bind(ユーザー名+パスワード)とSASL Bind(Kerberos等の外部認証機構を使用)がある
  • Search操作:ベースDN、スコープ(base/one/sub)、フィルター条件を指定してエントリを検索する操作。最も頻繁に使用される操作
  • Modify操作:既存エントリの属性を追加・変更・削除する操作。Add(エントリ追加)、Delete(エントリ削除)、ModifyDN(DN変更)もある
  • Compare操作:指定した属性値がエントリの実際の値と一致するかを確認する操作。パスワード検証などに使用

Active Directoryのアーキテクチャ

Active Directoryは、以下の論理構造で組織のリソースを管理します。

  • ドメイン(Domain):AD管理の基本単位。セキュリティ境界として機能し、独自のセキュリティポリシーとユーザーデータベースを持つ
  • OU(Organizational Unit):ドメイン内のオブジェクトを論理的にグループ化する単位。GPOの適用対象となり、管理権限の委任が可能
  • ツリー(Tree):連続した名前空間を共有するドメインの階層構造。親子関係の信頼関係が自動的に構成される
  • フォレスト(Forest):1つ以上のドメインツリーの集合体。ADの最上位のセキュリティ境界であり、スキーマと構成情報を共有する

グループポリシー(GPO: Group Policy Object)は、ドメイン内のユーザーやコンピュータの設定を一括管理する仕組みです。パスワードポリシー、ソフトウェアのインストール、セキュリティ設定、デスクトップ環境などを集中制御できます。GPOはサイト、ドメイン、OUの各レベルに適用でき、継承と優先順位のルールに従って処理されます。

Azure AD / Microsoft Entra ID

Azure AD(2023年にMicrosoft Entra IDに改名)は、クラウドベースのIDおよびアクセス管理サービスです。オンプレミスのActive Directoryとは設計思想が異なり、RESTベースのGraph API、OAuth 2.0/OpenID Connectによる認証、条件付きアクセスポリシーなど、クラウドネイティブな機能を提供します。

Azure AD Connectを使用することで、オンプレミスADとクラウドのEntra IDを同期するハイブリッドID環境を構築できます。パスワードハッシュ同期(PHS)、パススルー認証(PTA)、フェデレーション(AD FS)の3つの認証方式から選択可能です。

LDAPとActive Directoryの違い

LDAPはプロトコル(通信規約)であり、Active Directoryはディレクトリサービスの製品実装です。LDAPはOpenLDAP、Apache Directory Server、389 Directory Serverなど、AD以外の多くの実装で使用されています。ADはLDAPに加えて、Kerberos認証、GPO、DNS統合、レプリケーションなどの独自機能を統合した包括的なソリューションです。

🛡️

Security Measures

  • 01
    LDAPS(LDAP over TLS)の強制:平文のLDAP通信(ポート389)を禁止し、TLS暗号化されたLDAPS(ポート636)またはStartTLSを強制してください。資格情報やディレクトリ情報が平文で流れると、ネットワークスニッフィングにより容易に窃取されます。
  • 02
    LDAPインジェクション対策:Webアプリケーションでユーザー入力をLDAPクエリに組み込む場合、必ず入力値をサニタイズ・エスケープしてください。特殊文字(*, (, ), \, NUL)のエスケープ処理と、パラメータ化クエリの使用が必須です。
  • 03
    特権アカウントの保護(AD Tiering Model):Active Directoryの管理アカウントには階層化モデル(Tier 0/1/2)を導入してください。Domain Adminsなどの特権アカウントは専用のPAW(Privileged Access Workstation)からのみ使用し、日常業務アカウントと分離します。
  • 04
    最小権限の原則に基づくACL設定:ディレクトリオブジェクトへのアクセス制御リスト(ACL)を定期的に監査し、不要な権限を削除してください。特にAdminSDHolder、GPOリンク権限、レプリケーション権限の付与には細心の注意が必要です。
  • 05
    AD監査ログの有効化と監視:Active Directoryのセキュリティ監査ログ(Event ID 4624/4625/4768/4769/4776など)を有効にし、SIEMで一元監視してください。Golden Ticket攻撃、DCSync攻撃、Pass-the-Hash攻撃の兆候を早期に検出できます。
  • 06
    Azure AD条件付きアクセスの活用:Entra IDの条件付きアクセスポリシーを設定し、デバイスの準拠状態、ユーザーのリスクレベル、サインイン場所などに基づいてアクセスを動的に制御してください。レガシー認証プロトコルのブロックも重要な対策です。
⚠️

Incidents

📋 WebアプリケーションへのLDAPインジェクション攻撃

企業のWebアプリケーションにおいて、ログインフォームのユーザー入力がサニタイズされずにLDAPクエリに直接組み込まれていたケースが多数報告されています。攻撃者は「*)(uid=*))(|(uid=*」のような悪意のあるLDAPフィルターを入力することで、認証をバイパスしたり、ディレクトリ内の全ユーザー情報を不正に取得することが可能でした。OWASPはLDAPインジェクションをWebアプリケーションの主要な脆弱性の一つとして分類しており、入力値の適切なエスケープ処理が不可欠です。

📋 NotPetya — Active Directoryを介した大規模拡散(2017年)

2017年6月、ウクライナの会計ソフトウェアの更新を起点として拡散したNotPetyaランサムウェアは、Active Directoryの信頼関係とネットワーク構造を悪用して爆発的に感染を広げました。EternalBlue脆弱性とMimikatzによる資格情報窃取を組み合わせ、AD内のドメイン管理者権限を奪取。その権限でPsExecやWMIを使用して組織内の全Windowsマシンにマルウェアを展開しました。Maersk、Merck、FedExなどのグローバル企業が甚大な被害を受け、被害総額は100億ドルを超えたと推定されています。ADの特権アカウント管理とネットワークセグメンテーションの重要性を世界に示した事例です。

📋 Azure AD / Entra IDのトークン検証脆弱性(2021年)

2021年、セキュリティ研究者によってAzure ADのトークン検証に関する複数の脆弱性が発見されました。特に深刻だったのは、Azure ADのOpenID Connect メタデータエンドポイントの検証不備により、攻撃者が不正なトークン署名鍵を注入できる可能性があった問題です。この脆弱性を悪用されると、攻撃者は任意のAzure ADテナントの正規ユーザーになりすまし、Microsoft 365やAzureリソースに不正アクセスできる恐れがありました。Microsoftは速やかにパッチを適用しましたが、クラウドID基盤の脆弱性が組織全体に与える影響の大きさを浮き彫りにしました。

🔗

Related Terms