LoginSignup
24
20

More than 5 years have passed since last update.

LDAPサーバーOpenDJを使おう(1)

Last updated at Posted at 2014-05-02

以前個人ブログに OpenDJ について書いたのですが OpenDJ 2.5.0-Xpress1 は EOSL だそうで、2.6 のセットアップを試してみたいと思います。2.6 では LDAP のデータに RESTful API でアクセスできるらしいので次回以降で試してみます。

OpenDJ ってなに?ってのは↓こちらで

環境

私の作業PCは Linux Mint 16 です
この上で VirtualBox + Vagrant で CentOS に OpenDJ をセットアップします
作業は ~/vm/opendj/ で行います。ここに Vagrantfile ができる

セットアップ

CentOS から /vagrant でアクセスできるので ~/vm/opendj に opendj と jdk の RPM をダウンロードします

  • opendj-2.6.0-1.noarch.rpm
  • jdk-7u55-linux-x64.rpm

それでは CentOS 上でセットアップします

$ sudo rpm -ivh /vagrant/jdk-7u55-linux-x64.rpm
$ sudo rpm -ivh --nodeps /vagrant/opendj-2.6.0-1.noarch.rpm

jre 1.6 以上を入れろって言われるので --nodeps をつけてあります

エラー: 依存性の欠如:
    jre >= 1.6 は opendj-2.6.0-1.noarch に必要とされています

OpenDJ は /opt/opendj にインストールされます
それでは OpenDJ のセットアップを行います
GUI でもセットアップできますが、CLI で行います。

sudo /opt/opendj/setup --cli

で、インタラクティブにセットアップできます、がここでは全部指定しちゃいます

$ sudo /opt/opendj/setup \
          --cli \
          --baseDN dc=example,dc=com \
          --sampleData 5 \
          --ldapPort 1389 \
          --adminConnectorPort 4444 \
          --rootUserDN cn=Directory\ Manager \
          --rootUserPassword password \
          --enableStartTLS \
          --ldapsPort 1636 \
          --generateSelfSignedCertificate \
          --hostName localhost.localdomain \
          --no-prompt \
          --noPropertiesFile \
          --acceptLicense

あら簡単、これでセットアップ完了。もう起動してます。

--sampleData 5 で5ユーザー分のサンプルデータが登録されます
(わざわざ root で実行しなくても良いのですが、RPM だと /opt/opendj に root でインストールされるからここでは root で進めます。非 root であれば 389, 636 port は 1389, 1636 がデフォルトになります)

[vagrant@localhost ~]$ sudo /opt/opendj/bin/status


>>>> OpenDJ LDAP 接続パラメータを指定します

管理者ユーザーのバインド DN [cn=Directory Manager]: 

ユーザー 'cn=Directory Manager' のパスワード: 

          --- サーバーの状態 ---
サーバーの稼動状態:   起動中
開いている接続数:    1

          --- サーバーの詳細 ---
ホスト名:        localhost.localdomain
管理ユーザー:      cn=Directory Manager
インストールパス:    /opt/opendj
バージョン:       OpenDJ 2.6.0
Java のバージョン: 1.7.0_55
管理コネクタ:      ポート 4444 (LDAPS)

          --- 接続ハンドラ ---
アドレス:ポート     : プロトコル               : 状態
-------------:---------------------:---
--           : LDIF                : 無効
0.0.0.0:161  : SNMP                : 無効
0.0.0.0:1389 : LDAP (StartTLS を許可) : 有効
0.0.0.0:1636 : LDAPS               : 有効
0.0.0.0:1689 : JMX                 : 無効
0.0.0.0:8080 : HTTP                : 無効

          --- データソース ---
ベース DN:    dc=example,dc=com
バックエンド ID: userRoot
エントリ:      7
レプリケーション:  

status コマンド試しました?すごく時間かかりますね
bin/ にあるコマンドはいちいち Java だから起動に時間がかかります...

日本語表示が好きじゃなかったら LANG をいじってください

もともと Sun プロジェクトだっただけあってか、かなり日本語対応されてます

Control Panel

OpenDJ には便利な GUI ツールが付属しているのでこれでエントリを確認してまいましょう。

ネットワーク経由でアクセスしてみましょう。ホストOS, Linux Mint にも OpenDJ を用意します。zip 版を展開すれば OK ですが、それだけだと Version がわかんねーと言われて終了するので CentOS 側の /opt/opendj/config/buildinfo を zip 展開した opendj フォルダ内にコピーしましょう。

$ bin/control-panel 
The version of the installed OpenDJ could not be determined because the
version file '/home/ytera/vm/opendj/opendj/./config/buildinfo' could not be
found. Restore it from backup before continuing
$ echo '2.6.0.9086' > config/buildinfo

OpenDJ サーバーの 4444 port にアクセスする必要があるので Vagrantfile で port forward の設定を行いましょう

config.vm.network :forwarded_port, guest: 4444, host: 4444

Vagrantfile を編集したら再起動します
1389 -> 1389, 1636 -> 1636 を追加しておいても良いかも

では bin/control-panel -r -h 127.0.0.1 で起動しましょう

設定の読み取り中にエラーが発生しました

OID 2.5.4.50 を含む属性型の定義では、マッチングルール "uniquemembermatch" を使用して等価マッチングを実行する必要があると宣言されていました。このような等価マッチングルールは、ディレクトリサーバーで使用するように設定されていません
サーバーからデータを読み取り中にエラーが発生しました。指定された認証情報を検証します。詳細: java.lang.NullPointerException

あら?

どうやらリモートホストから control-panel で接続する場合にバグがあるようです...

NPE when control panel is launched remotely
http://bugster.forgerock.org/jira/browse/OPENDJ-1122

しかたないので SSH の X11Forwarding を使って試しましょう

X を飛ばせるように CentOS に追加のパッケージをインストールします

$ sudo yum -y install libxslt libXtst libXrender xorg-x11-xauth

これで vagrant ssh -- -X と、X11Forwarding を有効にしてアクセスします

/usr/bin/xauth:  creating new authority file /home/vagrant/.Xauthority

と表示されると思います

root で OpenDJ をセットアップしたので local でアクセスする場合には root で control-panel を実行する必要があります
しかし、このままでは root では X Server に接続できないので xauth の情報を root にコピーしてあげます

$ sudo xauth add `xauth list`

これで root でも X Server にアクセスできるようになったので control-panel を実行しましょう

$ LANG=C sudo /opt/opendj/bin/controlpanel

日本語が化けちゃうので LANG=C にしました (フォントインストールすればいいのかな?)

次のような Window が表示されます。便利そうでしょ?

opendj-control-panel-1.png

opendj-control-panel-2.png

24
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
20