389 Directory Server では、suffix を作成しただけでは実際の運用には進めません。ユーザー、グループ、サービス用 BIND DN などを置くための base entry と OU を登録し、後続の SSSD、Samba、Postfix、アプリケーション認証が参照しやすい検索ベースを作ります。
この記事は、Ubuntu 22.04 の既存環境で 389 Directory Server のベースエントリーを読み直すための記事です。新規構築では Ubuntu 26.04 側の記事を優先しつつ、22.04 環境の設定確認や古い構築記録の読み替えに使ってください。
- base entry と OU の役割
- ユーザー、グループ、サービスアカウントの配置先
- LDIF ファイルの作成と登録
ldapsearchによる登録確認- 後続サービスが参照しやすい DN 設計
書籍
LDAP – 設定・管理・プログラミング
LDAP の基礎、ディレクトリ設計、検索、認証連携を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
base entry の考え方
base entry は、ディレクトリツリーの土台です。suffix を作ったあと、実際にユーザーやグループを入れるための OU を作ります。ここでは、ユーザー用、グループ用、サービスアカウント用の 3 つを例にします。
| DN | 用途 |
|---|---|
dc=example,dc=local | LDAP ツリーの基点 |
ou=users,dc=example,dc=local | ユーザーを格納する |
ou=groups,dc=example,dc=local | グループを格納する |
ou=service,dc=example,dc=local | BIND ユーザーなどを格納する |
OU の名前は一度決めると、検索ベースやアプリケーション設定に出てきます。後から変更できないわけではありませんが、後続設定への影響が大きいため、最初に用途を分けて決めます。
LDIF を作成する
ベースエントリーと OU を登録する LDIF ファイルを作成します。
cat <<'EOF' > /tmp/base-entry.ldif
dn: dc=example,dc=local
objectClass: top
objectClass: domain
dc: example
dn: ou=users,dc=example,dc=local
objectClass: top
objectClass: organizationalUnit
ou: users
dn: ou=groups,dc=example,dc=local
objectClass: top
objectClass: organizationalUnit
ou: groups
dn: ou=service,dc=example,dc=local
objectClass: top
objectClass: organizationalUnit
ou: service
EOFdc=example,dc=local は環境の suffix に合わせます。既存環境では、先に dsconf や ldapsearch で実際の suffix を確認してから作業します。
LDIF を登録する
作成した LDIF を ldapadd で登録します。ここでは Directory Manager を使う例にしていますが、通常運用では権限を分けた BIND ユーザーを使う設計に進めます。
ldapadd -x \
-H ldaps://ldap.example.local \
-D 'cn=Directory Manager' \
-W \
-f /tmp/base-entry.ldifLDAPS で接続する場合、クライアント側が CA 証明書を信頼している必要があります。証明書エラーが出る場合は、先に TLS / LDAPS の設定を見直します。
登録内容を確認する
登録した OU が検索できるか確認します。
ldapsearch -x \
-H ldaps://ldap.example.local \
-b dc=example,dc=local \
'(objectClass=organizationalUnit)' dn検索結果に ou=users、ou=groups、ou=service が出れば、ベースの入れ物は作成できています。
OU をどう分けるか
base entry を作るときは、単に OU を作るだけでなく、後続サービスがどの単位で検索するかを考えます。Linux 認証、Samba、メール、アプリケーション認証で同じユーザーを参照する場合、DN の階層を複雑にしすぎない方が扱いやすくなります。
- ユーザーは
ou=usersに集約する - POSIX グループは
ou=groupsに置く - サービスアカウントや BIND ユーザーは通常ユーザーと分ける
- 部門別 OU は、検索ベースや権限管理が複雑になる場合だけ使う
- SSSD、Samba、Postfix から参照する DN を先に想定する
Directory Manager に頼りすぎない
ベースエントリーの初期登録では cn=Directory Manager を使うことがあります。ただし、これは管理者 DN です。後続の BIND ユーザー、アプリケーション連携、日常確認では、読み取り用や書き込み用の BIND DN を分けます。
この段階では、ベースの OU を作り、次に BIND ユーザーとアクセス制御を設計できる状態にすることが目的です。
まとめ
base entry は LDAP 設計の骨格です。Samba、Postfix、SSSD などから参照する前に、ユーザー、グループ、サービスアカウントの置き場所を明確にしておくと後続の設定が読みやすくなります。
22.04 の既存環境を見直すときは、suffix と OU の対応、検索ベース、Directory Manager を使っている箇所、後続サービスの参照 DN を分けて確認します。

