RHEL 6 系は OpenLDAP が 2.4 になっており,設定が OpenLDAP 上に存在していじれる (on-line configuration) ということで,今までの知識と異なる部分がある。
今回は 参考サイト: CentOS 6にOpenLDAP環境を構築する をベースに構築してみる。
初期設定
参考サイトの「dc=config へのアクセス設定」あたりまではこのとおりにやる (ここはさすがに Apache Directory Studio でさわれないので)。
ここで注意するのは,ここで作成した dc=config のパスワードというのは,on-line configuration 用のアカウント (とパスワード) であるということ。
on-line configuration による基本設定
on-line configuration 用 connection profile の作成
- Apache Directory Studio を立ち上げ,「New LDAP Connection」を作成する
- 接続の設定は……
- 「Connection Name」は適当に名付ける
- 「Hostname」に LDAP サーバのホスト名を入力する
- 「Next」をおす
- 認証情報の設定は……
- 「Authentication Method」は「Simple Authentication」のままで
- 「Bind DN or user」に
cn=configと入力 - 「Bind password」に先ほどのパスワードを入力
- 入力しなくてもよい。接続時に効かれるようになる。
- 「Check Authentication」で認証できるかテストできるので楽
- Base DN の設定は……
- 「Get base DNs from Root DSE」のチェックを外す (重要)
- 「Base DN」に
cn=configと入力
- 接続の設定は……
各種基本設定を行う
my-domain.com ではなく example.org に変更する場合。
- 左のツリーペインで
cn=configノードを開く - さらにツリーペインの
olcDatabase={1}monitorを選択する-
olcAccessの Value のby dn.base="cn=manager,dc=my-domain,dc=com"という部分をby dn.base="cn=Manager,dc=example,dc=org"に変更する
-
- ツリーペインの
olcDatabase={2}bdbを選択する-
olcSuffixをdc=my-domain,dc=comからdc=example,dc=orgに変更する -
olcRootDNをcn=Manager,dc=my-domain,dc=comからcn=Manager,dc=example,dc=orgに変更する - 右側のペインペインで右クリックするとメニューに「New Attribute...」があるので選択
-
olcRootPWを作成 - Value に
{SSHA}パスワード等を入力する
-
-
ここで設定した cn=Manager,dc=example,dc=org (とパスワード) がツリー全体の管理者アカウント的なものになる。先ほどの cn=config と異なることに注意。
つまり,ツリーをいじるためにはあたらしい connection profile を作成する必要がある。
先ほどの cn-config 用 connection profile と同様に cn=Manager,dc=example,dc=org 用 connection profile を作成する。
(こんどは「Get base DNs from Root DSE」はオンのままでいいと思うけど)
LDAP ツリーの操作
Root tree の整備
cn=Manager,dc=example,dc=org で接続しなおす (以降は cn=config のままではうまくいかない)。
普通は Organization を作成したりするんだろうけど,ここでは (ActiveDirectory に倣い) ツリーのルートに domain objectClass なコンテナを作成してみる。
- 左ツリーペインの「Root DSE」を右クリックして「New Context Entry」を選択
- 「Create entry from scratch」を選択し「Next」
- 「Object Classes」に
domainを「Add」 (topも自動的に追加される) して,「Next」 -
DNにdc=example,dc=orgを入力し, 「Next」 - 「Finish」を押下
これで左のツリーペインの「Root DSE」の下に dc=example,dc=org という名前で地球儀アイコンのエントリが作成される。
初めてのエントリ作成おめでとう。
Person の作成
もうあとは同じようにできると思うけど。
Hoge Fuga さんのレコードを作成してみる。
- 今作成した
dc=example,dc=orgノードを右クリックし (こんどは) 「New Entry」を選択 - 「Object classes」に
personを「Add」して「Next」 - Distinguished Name を設定する
- 「RDN:」が
cn = Hoge Fugaとなるようにする。- (実は,DN のベースにするのは
cnでなくても構わない。objectClass にuidObjectを追加して,uidを一意キーに含めてもいい)
- (実は,DN のベースにするのは
- 「DN Preview」が
cn=Hoge Fuga,dc=sub,dc=example,dc=orgとなる
- 「RDN:」が
- Next すると
snが必須属性なのに空で怒られるので「Hoge」と入力 - Finish すると作成される
今作成したユーザを一意に識別する識別子が,さきほどの cn=Hoge Fuga,dc=sub,dc=example,dc=org である。
この Person にパスワード (userPassword) を設定すると,このユーザで LDAP ツリーにアクセスすることができるようになる。
- 右メインペインで右クリックし,「New Attribute ...」を選択
-
userPasswordを入力 - Password Editor が立ち上がるのでパスワードを設定
Person に userPassword フィールドを設定するのは必須ではないけど,設定すると,そのユーザが自分でアクセスできるよ,という話。
ちなみにバルクで追加するなら,結局 LDIF ファイルを作るのが吉。