OpenLDAP
概要
オープンソースのLDAP(Lightweight Directory Access Protocol)実装。
LDAP認証用の検証環境を構築したのでメモ。
ここでの環境
-OS:CentOS5
-LDAPのポート:389(標準)
インストール
OSインストール時にプリインストールする場合
ソフトウェア選択で「今すぐカスタマイズする」にチェックをつける。
次の画面で以下の項目を選択。
-サーバー>ネットワークサーバー>openldap-servers
-ベースシステム>システムツール>openldap-clients
rpmインストールする場合
cdを入れて、
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)の起動
エントリーの追加(オフライン)
LDIFファイルを作成する
例:/var/openldap/entries.ldif
objectClass:organizationalUnit
objectClass:dcObject
dc:sales
ou:sales
slapaddコマンドでldifファイルからデータをインポート
adding new entry "ou=sales,dc=634labs,dc=com"
エントリーの追加(オンライン)
ldapaddコマンド実行後に、オフラインで利用したLDIFファイルと同一の内容を入力する。
例
dn:ou=sales,dc=634labs,dc=com
objectClass:organizationalUnit
objectClass:dcObject
dc:sales
ou:sales
adding new entry "ou=sales,dc=634labs,dc=com"
エントリーの検索
リンク
-公式サイト
–http://www.openldap.org/
-各種日本語訳ドキュメント
–http://www5f.biglobe.ne.jp/inachi/openldap/

