OpenLDAP

1月 1, 2003 · Posted in OpenLDAP · Comment 

概要

オープンソースのLDAP(Lightweight Directory Access Protocol)実装。
LDAP認証用の検証環境を構築したのでメモ。

ここでの環境

-OS:CentOS5
-LDAPのポート:389(標準)

インストール

OSインストール時にプリインストールする場合

ソフトウェア選択で「今すぐカスタマイズする」にチェックをつける。
次の画面で以下の項目を選択。
-サーバー>ネットワークサーバー>openldap-servers
-ベースシステム>システムツール>openldap-clients

rpmインストールする場合

cdを入れて、

cd /media/CentOS/CentOS5/
rpm -ihv openldap-servers-xxxxxxxx
rpm -ihv openldap-clients-xxxxxxxx
依存ライブラリがいくつかあるので同CDからインストールする。

LDAPの基本

LDAPの役割

LDAP(Lightweight Directory Access Protocol)は、ディレクトリサービスに接続するためのプロトコル。
ディレクトリサービスは、情報をWindowsのツリーのようなモデルで格納しておくためのデータベース。

LDAPのオペレーションは9個

-問い合わせ
–検索、比較
-更新
–追加、変更、削除、RDN変更
-認証
–バインド、アンバインド、破棄

LDAPは非同期

要求と応答の順序は保障されない。
つまり、Aが問合せを行った後にBが問合せを行ったとして、先にBの要求に対する応答が返ることがある。
同期をとりたい場合はプログラムで制御する。

LDAPの管理モデルと用語


-ツリー型で構成される
-エントリーと呼ばれるノードがツリー上に階層を構成する。
-各エントリーはDNおよびRDNという識別子で識別される
–同一階層内でDNは一意となる
–全階層でRDNは一意となる
-エントリーは属性と値を保持している

LDIF(LDAPファイル交換形式)

LDIF≒LDAPのデータダンプ

書式

# コメント
属性1:値1
属性2:値2
dn:DN値

特徴
-下記の条件の属性地はBASE64エンコードした値を指定する
–復帰、改行コードを含む
–コロン、スペース、<で始まっている
–スペースで終了している
-BASE64エンコードした値は::で区切って指定する。
–例:属性値::ベース64エンコードした値
-大文字と小文字は区別されない

LDAPサーバー管理

LDAPサーバの設定

slapd.confファイル(/etc/openldap/slapd.conf)を修正する。主な修正点は以下のとおり。
-includeセクション
–objectClassや属性を有効にする
-databaseセクション
–使用するデータベースシステムを指定する。標準はbdb(バークレーデータベース)
-suffixセクション
–DB側で利用する値
-rootdnセクション
–ルートユーザー
-rootpwセクション
–ルートユーザーのパスワード

LDAPサーバ(slapd)の起動

>service ldap start

エントリーの追加(オフライン)

LDIFファイルを作成する

例:/var/openldap/entries.ldif

dn:ou=sales,dc=634labs,dc=com
objectClass:organizationalUnit
objectClass:dcObject
dc:sales
ou:sales

slapaddコマンドでldifファイルからデータをインポート

slapadd -l /var/openldap/entries.ldif

adding new entry "ou=sales,dc=634labs,dc=com"

エントリーの追加(オンライン)

ldapaddコマンド実行後に、オフラインで利用したLDIFファイルと同一の内容を入力する。

>ldapadd -x -D "dc=634labs,dc=com" -w secret
dn:ou=sales,dc=634labs,dc=com
objectClass:organizationalUnit
objectClass:dcObject
dc:sales
ou:sales

adding new entry "ou=sales,dc=634labs,dc=com"

エントリーの検索

ldapsearch -x -b "dc=634labs,dc=com" "ou=sales"

リンク

-公式サイト
http://www.openldap.org/
-各種日本語訳ドキュメント
http://www5f.biglobe.ne.jp/inachi/openldap/