LDAPの利用(2/7)

2.LDAPのインストール

(1)ダウンロードとインストール

LDAPがインストールされていない場合,次のA,Bのどちらかの方法でインストールします。

  1. バイナリ(rpmパッケージ)を手に入れます。
以下のファイルは, Fedora core 2のバイナリ(rpmパッケージ)を集めた所にあります。既にコンパイルしてあるので,インストールするだけです。
Fedora core1用はこちらです。
OpenSSL 関連

openssl-0.9.7a-35.i386.rpm
openssl-devel-0.9.7a-35.i386.rpm
openssl-perl-0.9.7a-35.i386.rpm

Berkeley DB 4 関連 db4-4.2.52-3.1.i386.rpm
db4-devel-4.2.52-3.1.i386.rpm
db4-tcl-4.2.52-3.1.i386.rpm
db4-utils-4.2.52-3.1.i386.rpm
CyrusSASL 関連 cyrus-sasl-2.1.18-2.i386.rpm
cyrus-sasl-devel-2.1.18-2.i386.rpm
cyrus-sasl-gssapi-2.1.18-2.i386.rpm
cyrus-sasl-md5-2.1.18-2.i386.rpm
cyrus-sasl-plain-2.1.18-2.i386.rpm
OpenLDAP 関連 openldap-2.1.29-1.i386.rpm
openldap-clients-2.1.29-1.i386.rpm
openldap-devel-2.1.29-1.i386.rpm
openldap-servers-2.1.29-1.i386.rpm

  1. ソースをダウンロードしてコンパイルし,インストールします。

自分でコンパイルする分,時間がかかりますが,最新のものをインストールすることができます。

1)OpenSSLopenssl-0.9.7d.tar.gzをダウンロードします。  

$ cd /ダウンロードしたディレクトリ/
$ gzip -dc openssl-0.9.7d.tar.gz | tar xvf -
  (ダウンロードしたものを解凍)
$ cd openssl-0.9.7d
  (解凍後新しくできたディレクトリへ移動)
$ ./config shared --openssldir=/usr/local
  (共有ライブラリをインストールするディレクトリを指定)
$ make
  (コンパイル)
$ /bin/su -c "make install"
  (インストール)

2)Berkeley DB 4db-4.1.25.tar.gz をダウンロードします。

$ cd /ダウンロードしたディレクトリ/
$ gzip -dc db-4.2.52.tar.gz | tar xvf -
  (ダウンロードしたものを解凍)
$ cd db-4.2.52/build_unix
  (解凍後新しくできたディレクトリへ移動)
$ ../dist/configure --prefix=/usr/local
  (共有ライブラリをインストールするディレクトリを指定)
$ make
  (コンパイル)
$ /bin/su -c "make install"
  (インストール)

3)CyrusSASLcyrus-sasl-2.1.19.tar.gz をダウンロードします。

$ cd /ダウンロードしたディレクトリ/
$ gzip -dc cyrus-sasl-2.1.19.tar.gz | tar xvf -
  (ダウンロードしたものを解凍)
$ cd cyrus-sasl-2.1.19
  (解凍後新しくできたディレクトリへ移動)
$./configure
$ make
  (コンパイル)
$ /bin/su -c "make install && in -s /usr/local/lib/sasl2 /usr/lib/sasl2"
  (共有ライブラリをインストールする場所を指定し,インストール)

4)OpenLDAP のopenldap-stable-20040614.tgz をダウンロードします。

$ cd /ダウンロードしたディレクトリ/
$ gzip -dc openldap-stable-20040614.tgz | tar xvf -
  (ダウンロードしたものを解凍)
$ cd openldap-stable-20040614
  (解凍後新しくできたディレクトリへ移動)
$ ./configure
  (このコマンドの出力でエラーがないことを確認)
$ make
  (コンパイル)
$ make test
  (20種類以上のテスト。うまくいけば次に進みます)
$ /bin/su -c "make install"
  (インストール)

(2)スキーマ

スキーマとは,データの格納形態を定義したもののことです。これは,LDAPに限ったことではなく,全てのデータベースに共通のものです。 LDAPのスキーマはかなり細かい定義がされます。次の例はcore.schemaの中のnameの属性定義です。

attributeType ( 2.5.4.41 Name 'name'
     EQUALITY caseIgnoreMatch
     SUBSTR caseIgnoreSubstringsMatch
     SYNTAX 1.3.6.1.4.1.1466.155.121.1.15{3267} )
(1行目の2.5.4.41はOID(オブジェクトID)と呼ばれ,全世界共通の番号でISOで標準化されています。Name 'name'は属性名をnameとするという宣言です。
2,3行目は,データ検索の際の等価規則です。この場合は,大文字小文字を無視することを意味しています。
4行目は,属性構文と呼ばれますがデータ形式です。このOIDは,文字コードUTF-8で表された文字列をデータとするという宣言です。

多数のOIDを理解し,かつ,必要なオブジェクトを探し当て,上のような定義から自分でスキーマを作ることはとても難しいことです。そこで,既製のスキーマを使うのが手っ取り早い方法です。OpenLDAPには次のようなスキーマが附属しています。これを使えばやりたいことはほぼ全てできるでしょう。次の表は用意されたスキーマの一部ですが,これらを,うまく使うことで大抵のことができるはずです。
ファイル名 説明
core.schema OpenLDAPのコアスキーマ(必須)
cosine.schema Cosine and Internet X.500 スキーマ
inetorgperson.schema 人の属性をよく定義してあるスキーマ
nis.schema NIS用のスキーマ
java.schema JAVAに関連したスキーマ
このスキーマファイルを使うには,/etc/openldap/slapd.confファイルの中に次のような記述を入れます。

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/inetorgperson.schema

(3)メンバーの登録

ここでは,/etc/openldap/slapd.confの内容が次のとおりだという仮定で進めます。

# /etc/openldap/slapd.conf
#------ グローバルセクション -----------
# スキーマファイルのインクルード
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/inetorgperson.schema

# 起動時のPID番号を保存するファイル名
pidfile /usr/local/var/slapd.pid
# 起動時のslapdの引数を保存するファイル名
argfile /usr/local/var/slapd.args

#-------- データベースセクション --------------
# データベースの形式を宣言
database dbd
# 処理するデータツリーの先頭
suffix "dc=ikkzz,dc=ed,dc=jp"
# このデータベースの管理者の名前
rootdn "cn=manager,dc=ikkzz,dc=ed,dc=jp"
# 管理者のパスワード
rootpw "secret"
# データを格納するディレクトリ
directory /var/ldap/ikkzz
mode 0600
# 管理するインデックス
index objectclass eq
index cn pres,eq
# アクセス制限(ここでは全員に読み取りを許可する単純なACL)
access to *
     by read

slapdを起動する前にデータ保存用ディレクトリ/var/ldap/ikkzz/を見ると,まだデータをひとつも入れていないのですから何もないはずです。
データを投入するためには,次のA,Bの二つの手順が必要です。
  1. データツリーの作成

1)まず,次のファイル/tmp/top.ldifを作ります。

# /tmp/top.ldif
#データツリーの頂点を作成
dn: dc=ikkzz,dc=ed,dc=jp
dc: ikkzz
objectClass: dcObject
objectClass: organizationalUnit
ou: ikkzz dot ed

## ou=peopleを作成してメンバーを登録する枝を用意する
dn: ou=people,dc=ikkzz,dc=ed,dc=jp
ou: people
objectClass: organizationalUnit

2)そして,次のコマンドを実行すると,/tmp/top.ldifに格納されているエントリをディレクトリに追加できます。

root# slapadd -v -l /tmp/top.ldif
added "dc=ikkzz,dc=ed,dc=jp" (00000001)
added "ou=people,dc=ikkzz,dc=ed,dc=jp" (00000002)

先ほど何もなかったディレクトリ/var/ldap/ikkzz/に数個のファイルが出現していることでしょう。

  1. メンバーの登録

1)まず,次のファイル/tmp/member.ldifを作ります。次の例では,二人のデータを投入していることになります。

/tmp/member.ldif
#nambawakanaの作成
dn: cn=wakana namba,ou=people,dc=ikkzz,dc=ed,dc=jp
cn: wakana namba
sn: namba
mail: ynbbb@yah.jp
labeledURI: http://www.ikkzz.ed.jp
roomNumber: 12345 Maeson Sheep
departmentNumber: Eng
telephoneNumber: 0776-555-4444
objectClass: inetOrgPerson

#nambahanakoの作成
dn: cn=hanako namba,ou=people,dc=ikkzz,dc=ed,dc=jp
cn: hanako namba
sn: namba
mail: ynaaa@yah.jp
labeledURI: http://www.ikkzz.ed.jp
roomNumber: 12345 Maeson Hills
departmentNumber: Eng
telephoneNumber: 0776-3333-4444
objectClass: inetOrgPerson

2)そして,次のコマンドを実行すると,/tmp/member.ldifに格納されているエントリをディレクトリに追加できます。

root# slapadd -v -l /tmp/member.ldif
added "cn=wakana namba,ou=people,dc=ikkzz,dc=ed,dc=jp" (00000003)
added "cn=hanako namba,ou=people,dc=ikkzz,dc=ed,dc=jp" (00000004)

(4)GUI

メンバーの登録などをコマンドを使ってテキスト・ベースで入力するのは大変ですので,GUIで利用できる三つの方法を紹介します。最初のGQを使うことが良いかと思います。

  1. GQ ・・・Linux上で動くアプリケーションです。

インストール方法
理研ftpサイト から gq-1.0beta1.tar.gz と gq-1.0beta1-langpack-1.tar.gz をダウンロード

$ cd /ダウンロードしたディレクトリ/
$ tar -xzf gq-1.0beta1.tar.gz
  (ダウンロードした本体を解凍)
$ mv gq-1.0beta1-langpack-1.tar.gz gq-1.0beta1
  (解凍後新しくできたディレクトリへLangPackを移動)
$ cd gq-1.0beta1
  (ディレクトリへ移動)
$ tar -xzf gq-1.0beta1-langpack-1.tar.gz
  (LangPackを解凍)
$ gq-1.0beta1-langpack-1/langpack .
  (解凍してできたlangpackを起動。最後の”.”を忘れないように注意)
$ ./configure
  (このコマンドの出力でエラーがないことを確認)
$ make
  (コンパイル)
$ make install
  (インストール。/usr/local/bin/ にGQがインストールされます。)

  1. LDAP Browser/Editor・・・・Javaを使った編集ソフトウェアです。

JAVAを使うのでSun Microsystemsのホ―ムページからダウンロードしてJavaをインストールしておいてください。次に示すのはj2re1.4.2_05の場合です。

$ cd /ダウンロードしたディレクトリ/
$ tar -xzf Browser281.tar.gz
  (ダウンロードした本体を解凍)
$ cd Browser281
  (ディレクトリへ移動)
$ gedit lbe.sh
  (lbe.shが起動ファイル。その中のJAVAディレクトリの指定をJAVA=/usr/java/j2re1.4.2_05/bin/java に書き換える。)
$ ./lbe.sh
  (起動)

  1. LDAP Browser ・・・Windows用の編集ソフトウェアです。

前ページへ次ページへ