次のページ 前のページ 目次へ

6. 追加情報と補足

この節には、ディレクトリへの問合せに使える Netscape のアドレス帳 (Address Book)についての情報があります。また、バージョン 4.5 以上の Netscape Navigator と LDAP サーバを使ってローミングアクセスを実現する 方法について詳しく説明します。OpenLDAP のメーリングリストでは、 ローミングアクセスについて多くの議論がありました。それはこの機能が うまく実現できないためです。大部分の人々は Netscape Navigator が ダウンロードとアップロードするのに LDAP サーバを使うのを好みません。 したがって、これを読んでローミングアクセスが思うように動作しないという ことがわかっても気にしないでください。多くの人々が既にこの状況を経験 しているのです。ここでこの機能を紹介する目的は、LDAP プロトコルの 可能性についてのアイデアを人々により多く与えるためです。最後には、 slapd プロセスを安全に中断する方法や slapd のログについての情報が あります。

6.1 ローミングアクセス

[訳注] この節の説明は基本的に OpenLDAP 1.2.x に基づいています。 OpenLDAP 2.0.x では属性やオブジェクトクラスの拡張方法などが変更になっています。

ローミングアクセスの目的は、ネット上のどこにいても Netscape Navigator と LDAP サーバを用いて、ブックマーク、設定、メールフィルタなどを取り出せる ようにすることです。これは非常に便利な機能です。あなたがどこで Web に アクセスしようとも、そこで使うブラウザにはあなた自身の設定があるのです。 もしあなたが旅行に出た先で、あなたのローカルブックマークに登録してある 相場のサイトにアクセスしたい場合も心配ありません。ブックマークや設定 ファイルは LDAP サーバにアップロードされ、後であなたがどこにいようとも ブックマークや設定ファイルをすべて取り出せます。

[訳注] 残念ながら Netscape 6 ではローミングアクセス機能が無くなりました。

ローミングアクセスを実現するには次のステップに従う必要があります。

  1. 属性記述ファイルを変更する
  2. オブジェクトクラス記述ファイルを変更する
  3. プロファイルを格納するための LDIF ファイルを作成する
  4. ローミングアクセスサーバとして LDAP サーバを使うように Netscape Navigator を設定する
  5. 新しい設定で LDAP サーバを再起動する

属性ファイルの変更

slapd.at.conf (これは slapd.conf に取り込まれるファイルで、 通常 /usr/local/etc/openldap にあります)に与えられている属性の一覧に 次の新しい属性を追加する必要があります。

attribute       nsLIPtrURL              ces 
attribute       nsLIPrefs               ces 
attribute       nsLIProfileName         cis 
attribute       nsLIData                bin 
attribute       nsLIElementType         cis 
attribute       nsLIServerType          cis 
attribute       nsLIVersion             cis 
attribute       nsServerPort            cis

[訳注] OpenLDAP 2.0.x の場合、/usr/local/etc/openldap/schema/ に適当な ファイルを用意して次の定義を追加し、それを slapd.conf に取り込む ようにします。

attributetype ( 2.16.840.1.113730.3.1.70
        NAME 'serverRoot'
        EQUALITY caseIgnoreMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 2.16.840.1.113730.3.1.76
        NAME 'serverHostName'
        EQUALITY caseExactIA5Match
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

attributetype ( 2.16.840.1.113730.3.1.280
        NAME 'nsServerPort'
        EQUALITY caseExactIA5Match
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

attributetype ( 2.16.840.1.113730.3.1.399
        NAME 'nsLIPtrURL'
        EQUALITY caseExactIA5Match
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

attributetype ( 2.16.840.1.113730.3.1.400
        NAME 'nsLIPrefs'
        EQUALITY caseExactIA5Match
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

attributetype ( 2.16.840.1.113730.3.1.401
        NAME 'nsLIProfileName'
        EQUALITY caseIgnoreMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 2.16.840.1.113730.3.1.402
        NAME 'nsLIData'
        EQUALITY bitStringMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )

attributetype ( 2.16.840.1.113730.3.1.403
        NAME 'nsLIElementType'
        EQUALITY caseIgnoreMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 2.16.840.1.113730.3.1.404
        NAME 'nsLIServerType'
        EQUALITY caseIgnoreMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 2.16.840.1.113730.3.1.405
        NAME 'nsLIVersion'
        EQUALITY integerMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )

オブジェクトクラスファイルの変更

slapd.oc.conf (これは slapd.conf に取り込まれるファイルで、 普通 /usr/local/etc/openldap にあります)に 次の新しいクラスを追加する必要があります。

objectclass nsLIPtr 
    requires 
        objectclass 
    allows 
        nsliptrurl, 
        owner 

objectclass nsLIProfile 
    requires 
        objectclass, 
        nsliprofilename 
    allows 
        nsliprefs, 
        uid, 
        owner 

objectclass nsLIProfileElement 
    requires 
        objectclass, 
        nslielementtype 
    allows 
        owner, 
        nslidata, 
        nsliversion 

objectclass nsLIServer 
    requires 
        objectclass, 
        serverhostname 
    allows 
        description, 
        cn, 
        nsserverport, 
        nsliservertype, 
        serverroot 

[訳注] OpenLDAP 2.0.x の場合、/usr/local/etc/openldap/schema/ に適当な ファイルを用意して次の定義を追加し、それを slapd.conf に取り込む ようにします。

objectclass ( 2.16.840.1.113730.3.2.74
        NAME 'nsLIPtr'
        SUP top
        MUST objectClass
        MAY ( nsLIPtrURL $ owner ) )

objectclass ( 2.16.840.1.113730.3.2.75
        NAME 'nsLIProfile'
        SUP top
        MUST ( objectClass $ nsLIProfileName )
        MAY ( nsLIPrefs $ uid $ owner ) )

objectclass ( 2.16.840.1.113730.3.2.76
        NAME 'nsLIProfileElement'
        SUP top
        MUST ( objectClass $ nsLIElementType )
        MAY ( owner $ nsLIData $ nsLIVersion ) )

objectclass ( 2.16.840.1.113730.3.2.77
        NAME 'nsLIServer'
        SUP top
        MUST ( objectClass $ serverHostName )
        MAY ( cn $ description $ nsLIServerType $
              nsServerPort $ serverRoot ) )

LDIF ファイルの作成

[訳注] このステップに入る前に slapd.conf の設定をしておきましょう。 まず OpenLDAP 1.2.x の場合 `lastmod on' にして運用属性 modifyTimestamp が自動的に管理されるようにしなければなりません。 さらに、次のアクセス権を設定して slapd を再起動してください。

  OpenLDAP 1.2.x の場合:
    access to dn=".*,ou=Roaming,o=myOrg,c=NL" by dnattr=owner write
    access to attr=userpassword by * none by self write

  OpenLDAP 2.0.x の場合:
    access to dn=".*,ou=Roaming,o=myOrg,c=NL"
        by dnattr=owner write
    access to attr=userpassword
        by self write
        by anonymous auth
        by dn="cn=Manager,o=myOrg,c=NL" write
        by * none
    access to *
        by self write
        by anonymous auth

次に LDIF ファイルを作成する必要があります。Netscape のローミンング アクセス機能を使ってみたい各ユーザ用に、プロファイルエントリを追加 します。以下に、プロファイルエントリを持つ LDIF ファイルの簡単な例を 示します。

dn: o=myOrg,c=NL
objectClass: top
objectClass: organization
o: myOrg

dn: ou=People,o=myOrg,c=NL
objectClass: top
objectClass: organizationalUnit
ou: People

dn: cn=seallers,ou=People,o=myOrg,c=NL
userPassword: myPassword
objectClass: top
objectClass: person
cn: seallers
sn: seallers

dn: ou=Roaming,o=myOrg,c=NL
objectClass: top
objectClass: organizationalUnit
ou: Roaming

dn: nsLIProfileName=seallers,ou=Roaming,o=myOrg,c=NL
objectClass: top 
objectClass: nsLIProfile 
nsLIProfileName: seallers
owner: cn=seallers,ou=People,o=myOrg,c=NL

[訳注] もちろん、LDIF ファイルを作成するだけではなくて、これを実際に ldapadd などを使ってディレクトリに格納してください。

Netscape Navigator の設定

次のステップは、LDAP サーバに対してローミングアクセスが可能となるように Netscape Navigator を設定することです。

まず、このプロファイルでローミングアクセスを可能にしなければなりません。 当該のチェックボックスをクリックします。

「設定」ウィンドウの左側にある「ローミング ユーザ」オプションの矢印を プルダウンして、ローミングアクセスのサブオプションを表示します。

重要:Netscape は、ブラウザを実行する前に、あなたが選択した プロファイルの名前で $USERID を自動的に置き換えます。したがって、 あなたがプロファイル seallers を選択していれば $USERID は seallers に置き換わり、プロファイル gonzales を選択していれば $USERID は gonzales に置き換わります。プロファイルについてよく知らなければ、 Netscape Comunicator パッケージについてくる Profile Manager アプリケーションを起動してください。これは、同じマシン上で複数 ユーザが安全にブラウザを扱えるよう設計されたアプリケーションであり、 個々のユーザが自分だけのブラウザ設定を保有できます。

[訳注] 訳者が確認したところでは、$USERID は ローミング ユーザの設定で入力した ユーザ名で置き換わるようです。

LDAP サーバの再起動

最終ステップは、サーバの再起動です。LDAP サーバを安全に終了させる 方法については LDAP サーバを終了する方法、 再び起動する方法については LDAP サーバの実行を 参照してください。

[訳注] 訳者が確認したところでは、ここで再起動する必要があるのは LDAP サーバ ではなくて Netscape です。

6.2 Netscape のアドレス帳

LDAP サーバが実行していれば、いろいろなクライアント(たとえば ldapsearch コマンドラインユーティリティ)で LDAP サーバにアクセスできます。非常に 興味深いクライアントに Netscape のアドレス帳があります。これは Netscape のバージョン 4.x から利用できるようになっていますが、LDAP サーバと安全に やりとりするためには 4.5 以上のものを使う必要があります。

[訳注] 残念ながら Netscape 6 では LDAP サーバへのアクセス機能が無くなりました。

アドレス帳を使えるようにするには次のようにしてください。

Netscape Navigator の起動 -> Communicator メニューの選択 -> アドレス帳(Address Book)

Netscape のアドレス帳には、デフォルトの LDAP ディレクトリが既にいくつか 登録されています。あなたの LDAP ディレクトリも登録する必要があります!

ファイル(File)メニューの選択 -> 新しいディレクトリ(New Directory)

あなたのサーバの情報を入力します。たとえば次のように設定します。

デフォルトの LDAP ポートは 389 であり、サーバ側でこのオプションを 変更しているのでない限りポートを変更しないでください。

これで、ボックス Show Names Containing を使ってあなたのサーバに簡単な 問合せができますし、Search ボタンで複雑な問合せもできるようになっています。

6.3 LDAP Migration Tools

LDAP Migration Tools は、設定ファイル(configuration files)を LDIF フォーマットに変換する Perl スクリプト集です。このスクリプト集は PADL Software Ltd によって提供されていて、利用する前にライセンス条項 に目をとおしておくことを勧めますが、とにかくフリーです。ユーザの認証に LDAP サーバを利用しようとしているなら、このツールは非常に有用です。 Migration Tools は、NIS やパスワードのアーカイブを LDIF に変換し、 それらのファイルと互換のある情報を LDAP サーバで使えるようにします。 また、ユーザ、グループ、hosts, aliases, netgroups, networks, protocols, RPC そして既存のネームサービス(NIS、フラットファイル、NetInfo)の サービスを LDIF フォーマットに移行するのにも、この Perl スクリプト集を 適用してください。LDAP Migration Tools のダウンロードとさらなる情報を 入手するには、次のアドレスに行ってください。

http://www.padl.com/tools.html

このパッケージには README ファイルが付いていて、スクリプトファイルの 名前は機能を表しています。まずは README ファイルに目をとおして、 その後にスクリプトの適用を開始してください。

6.4 LDAP を用いた認証

PAM (Pluggable Authentication Modules)という機構を用いて、LDAP は ユーザを認証できます。UNIX が登場した当時からユーザの認証は、 ユーザがパスワードを入力し、その入力されたパスワードが /etc/passwd に 格納されている暗号化された正式なパスワードに該当するかをシステムが 検査することにより行われてきました。

これは初期のことであり、その後、多くのユーザの認証が一般的になりました。 その中には /etc/passwd をより複雑にしたものや、スマートカードという ハードウェアデバイスもありました。このような認証の問題は、新しい認証方式 が開発されるたびに、その新しい認証方法をサポートするために認証が必要な プログラム(login, ftpd など)のすべてを書き換えなければならないことです。 PAM は、認証方式から独立してプログラムを開発する手段を提供します。この ようなプログラムは、実行時に認証を行うために接続する「認証モジュール」 を必要とします。

LDAP のための認証モジュールは次のアドレスから tar ball の形式で 入手できます。

http://www.padl.com/pam_ldap.html

ここでは、既に Linux ディストリビューションに PAM が用意されているもの とします。もし PAM が用意されていなければ http://www.kernel.org/pub/linux/libs/pam を参照してください。 実際のところ、さまざまな Linux ディストリビューションでの PAM の 標準設定はそれぞれ違っています。普通、PAM の設定ファイルは /etc/pam.d/ ディレクトリに存在します。このディレクトリには、 マシンで実行する各サービスごとに一つのファイルがあります。 たとえば、Linux のブートアップの後でユーザのログイン処理に LDAP サーバを 使いたいなら、(この段落の最初に説明してあるように)あなたの Linux で PAM を使えるようにし、LDAP PAM モジュールをインストールし、/etc/pam.d/ ディレクトリにある login という PAM 設定ファイルを編集して次のような 内容にします。

#%PAM-1.0
auth       required     /lib/security/pam_securetty.so
auth       required     /lib/security/pam_nologin.so
auth       sufficient   /lib/security/pam_ldap.so
auth       required     /lib/security/pam_unix_auth.so try_first_pass
account    sufficient   /lib/security/pam_ldap.so
account    required     /lib/security/pam_unix_acct.so
password   required     /lib/security/pam_cracklib.so
password   required     /lib/security/pam_ldap.so
password   required     /lib/security/pam_pwdb.so use_first_pass
session    required     /lib/security/pam_unix_session.so

[訳注] pam_ldap は認証を行うだけなので、uid, gid, ホームディレクトリなどの 読出しも LDAP でできるように NSS (Name Service Switch)のモジュール nss_ldap をインストールしておく必要があるでしょう。nss_ldap も PADL Software の Web サイトから入手できます。また、ディレクトリ内のエントリ の作成には、前述の LDAP Migration Tools を使うとよいでしょう。

6.5 グラフィカルな LDAP ツール

Kldap は KDE のために書かれたグラフィカルな LDAP クライアントです。Kldap はよいインタフェースを持ち、ディレクトリに 格納された情報ツリーをすべて参照できます。次の Web サイトで、この アプリケーションのスクリーンショットのチェックとダウンロードができます。

http://www.mountpoint.ch/oliver/kldap

GQ という簡潔なインタフェースを備えたグラフィカル LDAP クライアントもあります。 これは GNOME のために書かれたものです。GQ は KDE でも動作しますし、 Kldap も GNOME で動かせます。次の Web サイトで、ダウンロードやさらなる 情報を取得できます。

http://biot.com/gq/

6.6 Logs

slapd はログを生成するのに syslog(8) 機能を用います。syslog(8) 機能の デフォルトユーザは LOCAL4 ですが、LOCAL0, LOCAL1 から LOCAL7 までの どれかにすることもできます。

ログを生成をできるようにするには、たいていは /etc ディレクトリにある syslog.conf ファイルを編集しなければなりません。

次のような行を追加します。

local4.*     /usr/adm/ldalog 

この設定では syslog 機能にデフォルトユーザ LOCAL4 を使います。この行の 構文を知らなければ、syslog, syslog.conf, syslogd の man ページを見て ください。デフォルトユーザを変更したり、生成するログのレベルを指定する には、slapd を起動するときに次のオプションを指定します。

-s syslog-level

このオプションは、syslog(8) 機能にどのレベルのデバッグ情報を出力するかを slapd に伝えます。このレベルはメッセージの重大度を述べていて、次に(高い ほうから低いほうに)あげるキーワードのいずれかである:emerg, alert, crit, err, warning, notice, info, debug. たとえば次のように指定します。
slapd -f myslapd.conf -s debug 

[訳注] この説明は何かの勘違いのようです。 実際にはどのデバッグ情報を出力するかを数値で指定します。 指定する数値については slapd.conf の loglevel オプションを 参照してください。

-l syslog-local-user

syslog(8) 機能のローカルユーザを指定します。値には LOCAL0, LOCAL1 など LOCAL7 まで指定できます。デフォルトは LOCAL4 です。しかし、このオプション は syslog(8) 機能でローカルユーザをサポートするシステムでのみ許されます。

さて、生成されたログを見てみてください。このログは、問合せ、更新、バインドなどで起きる問題を解決するのに 大きな助けとなります。


次のページ 前のページ 目次へ