OpenLDAPサーバーを構築する


この記事の所要時間: 42

Eye catch image by RRZEicons (Own work) [CC-BY-SA-3.0], via Wikimedia Commons

お久しぶりです。システム開発担当の齊藤です。

LDAP、皆さん利用しているでしょうか。

何となく地味な印象のLDAPですが、ApacheのBasic認証やRedmineと連携して社内のID/パスワードを一元管理したり、運用中のサーバーのメタ情報を管理したりと、あると何かと便利なサービスです。

今回は CentOS 6.5 と OpenLDAP (マスコットが巨大あおむし…キモイ…)でLDAPサーバーを構築します。

インストール

CentOS 6.5では openldap-servers パッケージでLDAPサービスを構築することができます。例によって  yum install でインストールします。ついでにクライアントもインストールします。

設定

CentOS 6.x では OpenLDAP の設定は /etc/openldap にあります。

ldap.conf はLDAPクライアントのため設定ファイルです。紛らわしいですが、サーバーの設定は slapd.d/ ディレクトリです。slapd.d/ ディレクトリには OpenLDAP サーバーの設定が LDIF (Ldap Data Interchange Format) で格納されています。LDIFはLDAPのディレクトリ情報をテキスト形式で表現したものですから、サーバーの設定もLDAP上で管理しているということになります。古いバージョンの CentOS では slapd.confという設定ファイルを使っていましたが、現在は obsolute となっています。

さて、これから OpenLDAP の設定を行っていきますが、OpenLDAPでは先に出てきたLDIFファイルを使って追加・修正・削除を行います。最初はLDIFの書き方に面くらいますが、一度設定してしまえば LDAP AdminApache Directory Studio といったリッチなGUIクライアントを使用して管理できるようになるので、頑張って設定してみてはいかがでしょうか。

準備

まず、バックエンドのデータベース (Berkeley DB) の設定ファイルを設置します。 サンプルファイルがあるので、これをそのまま使用します。

次に、LDAPサーバールートパスワードを設定します。/etc/openldap/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif に以下の一行を追記します。{SSHA}で始まるハッシュは slappasswd コマンドで生成します。

ルートパスワードを設定したら、この時点でサーバーを再起動します。

特権アカウントの追加

次に、ディレクトリの管理を行うための特権アカウントを設定します。

bdb-init.ldif

LDIFファイルを作成したら、次のコマンドでLDAPディレクトリに反映します。

ルートディレクトリの作成

次に、ディレクトリのルートを作成します。今回は unicast.ne.jp というドメインをルートにします。LDAPではドメインの各要素を dc (domain component) と呼び、 dc=unicast,dc=ne,dc=jp と表現します。このルートを作成するLDIFファイルが以下です。特権アカウントとして System Administrator というエントリを作成しています。

init.ldif

bdb-init.ldif で設定したアカウントを使用して認証をして、LDIFファイルを適用します。

以降は特権アカウントを使用してGUIクライアント等から自由にエントリを作成することができます。個人的には LDAP Admin が使いやすいと感じました。

以上、CentOS 6.5 + OpenLDAP によるLDAPサーバーの構築でした。

投稿者紹介

齊藤 潤
サーバ運用もできるプログラマと化した、2013年入社の元新人エンジニアです。

人気の記事

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP