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 ファイルを作るのが吉。