概要

LDAP(Lightweight Directory Access Protocol)はユーザ情報・グループ情報・組織情報などを階層的に管理するディレクトリサービスのプロトコルです。Active Directory(AD)はMicrosoftが提供するディレクトリサービスで、LDAPをベースにKerberos認証を組み合わせたWindowsドメイン環境の認証基盤です。SAML・OIDC・SSO の基盤として SC試験でも重要なテーマです。

LDAP(Lightweight Directory Access Protocol)

ディレクトリとは

リレーショナルデータベースが汎用的なデータの読み書きに最適化されているのに対し、ディレクトリは「読み込みが多い・階層構造を持つ情報(ユーザ・グループ等)の管理」に特化したデータストアです。

LDAP の階層構造(DIT:Directory Information Tree)

dc=example,dc=com           ← ドメインコンポーネント(ルート)
├── ou=Users                ← 組織単位(OU)
│   ├── cn=Alice            ← 共通名(ユーザ)
│   └── cn=Bob
└── ou=Groups
    └── cn=Admins
属性意味
dcDomain Component(ドメイン名の構成要素)
ouOrganizational Unit(組織単位)
cnCommon Name(ユーザ名・グループ名等)
dnDistinguished Name(エントリの完全な識別子)

LDAP の主要操作とポート

操作説明
Bind認証(ユーザ名とパスワードで接続)
Searchディレクトリの検索
Modifyエントリの変更
Add / Deleteエントリの追加・削除
ポート説明
389LDAP(平文)
636LDAPS(TLS暗号化)
3268Active Directory グローバルカタログ

LDAP over TLS の重要性

平文LDAPは認証情報がネットワーク上に流れます。LDAPS(636番)またはSTARTTLSを使用する必要があります。

LDAPインジェクション

SQLインジェクションのLDAP版です。

悪意あるLD AP フィルタ:
入力:username = *)(cn=*
生成されるフィルタ:(&(cn=*)(cn=*)(password=xxx))
→ 全ユーザにマッチする可能性

対策:入力値のエスケープ処理・ホワイトリスト検証

Active Directory(AD)

ADの主要コンポーネント

コンポーネント説明
ドメインADの基本管理単位。ユーザ・コンピュータを管理
ドメインコントローラ(DC)認証・認可を処理するサーバ
フォレスト複数のドメインのツリー構造
OU(組織単位)ユーザ・グループをまとめる管理単位。GPOを適用
GPO(グループポリシー)OU単位でセキュリティポリシーを一括適用
Active Directory の主要コンポーネント構成
ドメインコントローラ
認証・認可を処理
フォレスト
複数ドメインのツリー構造
OU
ユーザ・グループの管理単位
GPO
セキュリティポリシーを一括適用
ドメイン
ADの基本管理単位

Kerberos 認証(ADの認証プロトコル)

Kerberos 認証フロー(簡略版):
1. ユーザがDC(KDC)にTGT(Ticket Granting Ticket)を要求
   → パスワードの代わりにTGTを取得
2. ユーザがTGTを提示してサービスチケット(ST)を要求
3. ユーザがSTを使って目的のサーバにアクセス
   → パスワードはネットワーク上を流れない
用語説明
KDCKey Distribution Center。TGT・STを発行するDCの機能
TGTTicket Granting Ticket。ログイン後に取得する「入場券の引換券」
STService Ticket。特定サービスへのアクセスに使う「入場券」
Kerberos認証の流れ
1
ユーザ
DC(KDC)にTGTを要求
パスワードの代わりにTGTを取得
2
ユーザ
TGTを提示しサービスチケット(ST)を要求
3
ユーザ
STを使って目的のサーバにアクセス
パスワードはネットワーク上を流れない

SAMLとの連携(AD FS)

AD FS(Active Directory Federation Services)はADをIdPとしてSAML認証を提供します。

企業内ADユーザ → AD FS(SAML IdP)→ クラウドサービス(Salesforce等)

社内のADアカウントでクラウドSaaSにSSOできます。

SC試験での頻出ポイント

  • LDAPとActive Directoryの関係:ADはLDAPをベースにKerberosを組み合わせたMicrosoft製ディレクトリサービス
  • Kerberosの特徴:パスワードがネットワーク上を流れない。TGTとSTの2段階で認証・認可を分離
  • LDAPS(636番)の必要性:平文LDAP(389番)では認証情報が盗聴可能
  • GPO(グループポリシー)の用途:パスワードポリシー・アカウントロックアウト・ソフトウェア配布を一元管理
  • AD FSとSAMLの関係:AD FSがSAML IdPとして機能し、社内ADユーザがクラウドSaaSにSSOできる

よくある誤問・ひっかけパターン

誤り① 「Active DirectoryはLDAPとは別の技術」→ 。ADはLDAPをベースプロトコルとして使用しています。

誤り② 「KerberosではサーバがユーザのパスワードでHMACを検証する」→ 。Kerberosの設計ではサーバはユーザのパスワードを知りません。STをDCの鍵で検証します。

誤り③ 「LDAPはリアルタイムの更新が多いトランザクション処理に適している」→ 。LDAPは読み取りが多い情報の管理に最適化されています。更新頻度が高いデータはRDBMSが適切です。

関連用語

重要キーワード

用語説明
LDAPディレクトリサービスの標準プロトコル。ユーザ・グループ情報を管理
Active DirectoryMicrosoftのディレクトリサービスとKerberos認証を組み合わせた製品
KerberosADの認証プロトコル。TGTとSTによりパスワードをネットワーク上に流さない
GPOグループポリシーオブジェクト。OU単位でセキュリティポリシーを適用
AD FSADをSAML IdPとして機能させるフェデレーションサービス
LDAPインジェクションLDAP検索フィルタに悪意ある文字列を挿入する攻撃