概要
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
| 属性 | 意味 |
|---|---|
| dc | Domain Component(ドメイン名の構成要素) |
| ou | Organizational Unit(組織単位) |
| cn | Common Name(ユーザ名・グループ名等) |
| dn | Distinguished Name(エントリの完全な識別子) |
LDAP の主要操作とポート
| 操作 | 説明 |
|---|---|
| Bind | 認証(ユーザ名とパスワードで接続) |
| Search | ディレクトリの検索 |
| Modify | エントリの変更 |
| Add / Delete | エントリの追加・削除 |
| ポート | 説明 |
|---|---|
| 389 | LDAP(平文) |
| 636 | LDAPS(TLS暗号化) |
| 3268 | Active 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単位でセキュリティポリシーを一括適用 |
Kerberos 認証(ADの認証プロトコル)
Kerberos 認証フロー(簡略版):
1. ユーザがDC(KDC)にTGT(Ticket Granting Ticket)を要求
→ パスワードの代わりにTGTを取得
2. ユーザがTGTを提示してサービスチケット(ST)を要求
3. ユーザがSTを使って目的のサーバにアクセス
→ パスワードはネットワーク上を流れない
| 用語 | 説明 |
|---|---|
| KDC | Key Distribution Center。TGT・STを発行するDCの機能 |
| TGT | Ticket Granting Ticket。ログイン後に取得する「入場券の引換券」 |
| ST | Service Ticket。特定サービスへのアクセスに使う「入場券」 |
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が適切です。
関連用語
- SAMLとSSO — AD FSSがSAMLのIdPとして連携
- OAuth 2.0とOIDC — クラウド時代のLDAP代替としての役割
- 特権アクセス管理(PAM) — ADの特権アカウント管理
重要キーワード
| 用語 | 説明 |
|---|---|
| LDAP | ディレクトリサービスの標準プロトコル。ユーザ・グループ情報を管理 |
| Active Directory | MicrosoftのディレクトリサービスとKerberos認証を組み合わせた製品 |
| Kerberos | ADの認証プロトコル。TGTとSTによりパスワードをネットワーク上に流さない |
| GPO | グループポリシーオブジェクト。OU単位でセキュリティポリシーを適用 |
| AD FS | ADをSAML IdPとして機能させるフェデレーションサービス |
| LDAPインジェクション | LDAP検索フィルタに悪意ある文字列を挿入する攻撃 |