D    LDAP (Lightweight Directory Access Protocol)

LDAP (Lightweight Directory Access Protocol) は,TCP/IP 上で動作するインターネット標準の分散クライアント/サーバ型ディレクトリ・サービスのプロトコルです。LDAP サーバはディレクトリ内のエントリを管理し,ネットワーク上の LDAP クライアントが情報を利用できるようにします。LDAP サーバは,ユーザの識別や認証に必要なユーザ情報の集中リポジトリとして使用することができます。

この付録には,次の情報が含まれています。

D.1    LDAP の概要

LDAP サーバは NIS (Network Information Services) と似ていますが,NIS に比べて次のような利点があります。

Tru64 UNIX システムは,LDAP クライアントおよび LDAP サーバとして構成できます。この項では,LDAP サーバが既に構成されていることを前提に,Tru64 UNIX を LDAP クライアントとして構成する方法を説明します。LDAP サーバの構成情報については,LDAP サーバのマニュアルを参照してください。

ユーザが LDAP クライアントとして構成された Tru64 UNIX システムにログインするためにユーザ名とパスワードを入力すると,LDAP クライアントはそのユーザ情報を LDAP サーバに送信して認証処理を依頼します。LDAP サーバは受信したユーザ情報を LDAP ディレクトリ内のエントリと照合します。一致するエントリが存在し,パスワードが正しい場合は,認証に成功し,ユーザはログインすることができます。一致するエントリが存在しない場合,またはパスワードが不正な場合は,認証に失敗し,ユーザはログインすることができません。認証処理の結果は,LDAP サーバから LDAP クライアントに返されます。

D.2    Tru64 UNIX LDAP クライアント・ソフトウェアのインストール

LDAP クライアント・ソフトウェアをインストールするには,オプションの LDAP 認証 (ネットワーク・サーバ/通信) サブセット (OSFLDPAUTHnnn) をインストールする必要があります。このサブセットは,Tru64 UNIX 基本オペレーティング・システムを収録した CD-ROM に入っています。

nnn は Tru64 UNIX のバージョン番号を表しています。最新のバージョン番号については,『リリース・ノート』を参照してください。サブセットのインストールの詳細については,『インストレーション・ガイド』を参照してください。

D.3    Tru64 UNIX LDAP クライアント・ソフトウェアの構成

LDAP クライアント・ソフトウェアを構成する必要があります。LDAP クライアント・ソフトウェアを構成するには,次の作業を実行する必要があります。

D.3.1    ldapcd.conf ファイルの更新

/etc/ldapcd.conf ファイル内には複数の属性があり,省略時の値を使うことも値を指定することもできますが,次の属性については値を指定する必要があります。

directory

ユーザ認証に使用する LDAP ディレクトリ・サーバのホスト名。

searchbase

ディレクトリ・サーバのデータベース内でユーザ情報が保存されているブランチのルート。

port

省略時のディレクトリ・サーバ・ポート。ディレクトリ・サーバのために使用しているポートと一致させる必要があります。

machine_dn および machine_password

machine_dn (識別名) と machine_password は,ldapcd キャッシュ・デーモンがディレクトリ・サーバにバインドしてディレクトリからの情報検索および情報取得を実行するときに使用します。これらの値は,インストール時のディレクトリ・サーバの初期構成で設定されます。通常は,ディレクトリ・サーバの構成ファイル (sladpd.conf) に指定されたルート識別名とパスワードを使用します。

/etc/ldapcd.conf ファイルは,次のいずれかの方法で更新します。

例 D-1ldapcd.conf 構成ファイルの例を示します。/etc/ldapcd.conf ファイルを変更するときは,SysMan Menu のオプションを使用することをお勧めします。ldapcd.conf ファイルの属性値を変更したときは,LDAP クライアント・デーモンを再起動する必要があります。LDAP クライアント・デーモンを再起動する方法については,D.4 節を参照してください。

例 D-1:  ldapcd.conf ファイルの例

#
# directory server and port, active ldap connections cached
# by the daemon, max worker threads started
#
directory:      host.xyz.com [1]
searchbase:     "o=XYZCompany" [2]
port:           389 [3]
connections:    6 [4]
max_threads:    64 [5]
 
#
# max entries in cache, and number of seconds before entries
# expire in the cache
#
pw_cachesize:   2000 [6]
pw_expirecache: 120 
gr_cachesize:   100 
gr_expirecache: 600 

.
.
.
machine_dn: "cn=Directory Manager" [7] machine_pass: "password"   #
.
.
.
# the objectClass name of a password entry pw_oclass: posixAccount [8]   # name mappings for password attribute fields pw_username: uid [9] pw_password: userPassword [10] pw_uid: uidNumber pw_gid: gidNumber pw_quota: pw_comment: description pw_gecos: gecos pw_homedir: homedirectory pw_shell: loginshell   # the objectClass name of a group entry gr_oclass: posixGroup [11]   # name mappings for group attribute fields gr_oclass: unixGroup [12] gr_name: cn gr_password: userPassword gr_gid: gidNumber gr_members: MemberUID

  1. ユーザ認証に使用する LDAP ディレクトリ・サーバのホスト名。 [例に戻る]

  2. ディレクトリ・サーバのデータベース内でユーザ情報が保存されているブランチのルート。 [例に戻る]

  3. 省略時のディレクトリ・サーバ・ポート。ディレクトリ・サーバのために使用しているポートと一致させる必要があります。 [例に戻る]

  4. ldapcd キャッシュ・デーモンが管理する,ディレクトリ・サーバに対して開かれた接続の最大数。 [例に戻る]

  5. ldapcd キャッシュ・デーモンが管理するスレッドの最大数。各スレッドはローカル・プログラムに対する接続を 1 つだけ処理します。スレッドの数を増やすと LDAP キャッシュ・デーモンからの応答速度が向上しますが,必要なメモリ量が増えます。数多くの接続を必要とするサービス (メール・サービスなど) を実行している場合は,(システムに十分なメモリがあれば) スレッドの最大数を 64 以上に設定してください。 [例に戻る]

  6. pw_cachesize の値は,passwd エントリ の最大キャッシュ数を示します。pw_expirecache の値は,ldapcd キャッシュ・デーモンが各 passwd エントリのキャッシュをチェックする最大期間を示します。pw_expirecache の値を超えると,ldapcd デーモンは要求された passwd エントリを検索するためにサーバに制御を戻します。

    gr_cachesize および gr_expirecache はそれぞれ pw_cachesize および pw_expirecache と同じ効果を持つ値で,group エントリに対して適用されます。 [例に戻る]

  7. machine_dn の値は,ldapcd キャッシュ・デーモンがディレクトリ・サーバにバインドしてディレクトリからの情報検索および情報取得を実行するときに使用する識別名です。各システムに特定の DN を使用させることにより,どのコンピュータがどのような目的でディレクトリにアクセスしているかを特定することができます。また,ディレクトリへの読み取りアクセスや検索アクセスをコンピュータのアカウントに基づいて制御することもできます。 [例に戻る]

  8. サーバ上の拡張スキーマに含まれる UNIX アカウントの属性を定義するオブジェクト・クラスの名前。 [例に戻る]

  9. LDAP 属性名 (右側) が,getpwent の呼び出しによって返される passwd 構造体のフィールド (左側) にマッピングされます。 [例に戻る]

  10. userPassword 属性には,暗号化されたパスワードだけが格納されます。 [例に戻る]

  11. サーバ上で定義された拡張スキーマに含まれる UNIX グループの属性を定義するオブジェクト・クラスの名前。 [例に戻る]

  12. LDAP 属性名 (右側) が, getgrent(3) の呼び出しによって返される group 構造体のフィールド (左側) にマッピングされます。 [例に戻る]

D.3.2    LDAP ランタイム構成変数の設定

/etc/ldapcd.conf ファイルを初めて更新した後は,LDAP クライアント・デーモンを起動する前に次のコマンドを入力して LDAP ランタイム構成変数を設定する必要があります。

# /usr/sbin/rcmgr set LDAPCD_CONF yes
 
 

このコマンドは 1 回だけ実行すれば済みます。/etc/ldapcd.conf ファイルを変更しても,このコマンドを再実行する必要はありません。

D.4    LDAP クライアント・デーモンの管理

LDAP クライアント・デーモンを起動するには,次のコマンドを入力します。

# /sbin/init.d/ldapcd start

LDAP クライアント・デーモンを初めて起動すると,次の処理が実行されます。

LDAP クライアント・デーモンを停止するには,次のコマンドを入力します。

# /sbin/init.d/ldapcd stop

LDAP クライアント・デーモンを再起動するには,次のコマンドを入力します。

# /sbin/init.d/ldapcd restart

D.5    アクセス制御の管理

特に指定しない限り,LDAP データベースで定義されたユーザはそのデータベースが LDAP 認証に使われるすべてのシステムにログインできます。ユーザ・アクセスを特定のシステムに限定する場合は,アクセス制御ファイルの /etc/ldapusers.deny および /etc/ldapusers.allow を使用します。

D.5.1    ldapusers.deny ファイル

/etc/ldapusers.deny は,LDAP 認証では認証されない Tru64 UNIX ユーザの名前を入力するためのテキスト・ファイルです。ldapusers.deny ファイルに指定されたユーザは,そのシステムに構成された Tru64 UNIX のセキュリティ・メカニズムで認証され,LDAP 認証から除外されます。

省略時の /etc/ldapusers.deny ファイルは,LDAP クライアント・ソフトウェアのインストール時に作成されます。ユーザ名は,1 行に 1 つずつ入力し,/etc/passwd ファイルのユーザ名と正確に一致させる必要があります。コメントを入力するときは,ナンバー記号 (#) を使用します。ナンバー記号の直後から行末までの文字は無視されます。空白行および行の先頭や末尾の空白も無視されます。

例 D-2 に省略時の /etc/ldapusers.deny ファイルを示します。

例 D-2:  省略時の ldapusers.deny ファイル

#
# ldapusers.deny - list of users who area not allowed to authenticate on
#                  this system via LDAP authentication (libsialdap.so & ldapcd)
#
# Account names must match exactly the user account name in the 
# /etc/passwd file.
#
# Syntax: account_1
#            .
#            .
#            .
#         account_n
#
root
nobody
nobodyV
daemon
bin
uucp
uucpa
auth
cron
lp
tcb
adm
ris
wnn
pop
imap
ftp
anonymous
 
 

D.5.2    ldapusers.allow ファイル

一部のユーザを除いてすべてのアクセスを拒否する場合は,/etc/ldapusers.allow ファイルを作成する必要があります。/etc/ldapusers.allow は,LDAP 認証でのみ認証される Tru64 UNIX ユーザの名前を入力するためのテキスト・ファイルです。/etc/ldapusers.allow ファイルがシステム上に存在する場合は,そのファイルに指定されたユーザのログインだけが LDAP 認証によって許可されます。/etc/ldapusers.allow が空の場合も有効であることに注意してください。このファイルが存在すること自体が強力なアクセス制御ルールになります。

ユーザ名は,1 行に 1 つずつ入力し,/etc/passwd ファイルのユーザ名と正確に一致させる必要があります。コメントを入力するときは,ナンバー記号 (#) を使用します。ナンバー記号の直後から行末までの文字は無視されます。空白行および行の先頭や末尾の空白も無視されます。