ディレクトリサーバーに Unix Crypt 形式でパスワードを格納していない場合、ディレクトリサーバーを構成してパスワードを格納します。Unix Crypt 形式のパスワードの設定方法についての詳細は、iPlanet のマニュアルを参照してください。
ツリーのトップエントリの ACI (アクセス制御情報) を設定します。この ACI は所有者が自分のエントリを変更する権限を制御します。たとえば、デフォルトの ACI ではユーザーが自分のホームディレクトリを変更できますが、次の例のように変更した ACI では自分のホームディレクトリを変更できません。各自の環境に合わせて ACI を設定してください。
次に示すようなツリーのトップエントリである「Allow self entry modification」ACI を、
aci=(targetattr = "*")(version 3.0; acl "Allow self entry modification"; allow (write)userdn = "ldap:///self";) |
次のように変更します。
aci=(targetattr!="cn || uid || uidNumber || gidNumber || homeDirectory || shadowLastChange || shadowMin || shadowMax || shadowWarning || shadowInactive || shadowExpire || shadowFlag || memberUid") (version 3.0; acl "Allow self entry modification"; allow (write) userdn = "ldap:///self"; ) |
ユーザーが変更すべきでない属性 (uid など) の変更許可を与えないでください。それを許可すると、uid を 0 に設定することによって、ユーザーがスーパーユーザーになることができるようになってしまいます。
ネームコンテナの一覧は、ディレクトリ情報ツリーを参照してください。
次のコンテナエントリは、NIS ドメインで使用した nisDomain の例に基づいています。実際に使用するときは、これらのコンテナエントリを各自の環境に合わせて変更してください。
ドメインエントリを追加します。
dn: dc=mkt,dc=mainstore,dc=com dc: mkt associatedDomain: mkt.mainstore.com objectClass: top objectClass: domain objectClass: domainRelatedObject objectclass: nisDomainObject nisdomain: mkt.mainstore.com |
ネームコンテナのエントリを追加します。
dn: ou=people,dc=mkt,dc=mainstore,dc=com ou: people objectClass: top objectClass: organizationalUnit dn: ou=Group,dc=mkt,dc=mainstore,dc=com ou: Group objectClass: top objectClass: organizationalUnit dn: ou=rpc,dc=mkt,dc=mainstore,dc=com ou: rpc objectClass: top objectClass: organizationalUnit dn: ou=protocols,dc=mkt,dc=mainstore,dc=com ou: protocols objectClass: top objectClass: organizationalUnit dn: ou=networks,dc=mkt,dc=mainstore,dc=com ou: networks objectClass: top objectClass: organizationalUnit dn: ou=netgroup,dc=mkt,dc=mainstore,dc=com ou: netgroup objectClass: top objectClass: organizationalUnit dn: ou=aliases,dc=mkt,dc=mainstore,dc=com ou: aliases objectClass: top objectClass: organizationalUnit dn: ou=Hosts,dc=mkt,dc=mainstore,dc=com ou: Hosts objectClass: top objectClass: organizationalUnit dn: ou=services,dc=mkt,dc=mainstore,dc=com ou: services objectClass: top objectClass: organizationalUnit dn: ou=Ethers,dc=mkt,dc=mainstore,dc=com ou: Ethers objectClass: top objectClass: organizationalUnit dn: ou=profile,dc=mkt,dc=mainstore,dc=com ou: profile objectClass: top objectClass: organizationalUnit dn: nismapname=auto_home,dc=mkt,dc=mainstore,dc=com nismapname: auto_home objectClass: top objectClass: nisMap dn: nismapname=auto_direct,dc=mkt,dc=mainstore,dc=com nismapname: auto_direct objectClass: top objectClass: nisMap dn: nismapname=auto_master,dc=mkt,dc=mainstore,dc=com nismapname: auto_master objectClass: top objectClass: nisMap dn: nismapname=auto_shared,dc=mkt,dc=mainstore,dc=com nismapname: auto_shared objectClass: top objectClass: nisMap |
これらのパラメータの値は、読み込むデータ量、データの使用パターン、使用するハードウェアなどによってサーバーごとに異なります。
キャッシュの最大エントリ数、キャッシュの最大サイズ (バイト) を設定し、上限値を確認します。
システムで使用できるメモリーおよびディスク容量に合わせて、キャッシュパラメータを変更してください。
サイズおよび時間の上限パラメータを、環境に合わせて設定します。
sizelimit および timelimit を -1 に指定すると、取り得る上限値として設定されます。各自のシステムに合わせて値を選択してください。
次のプロキシエージェント ACI (アクセス制御情報) は、NIS ドメインで使用した nisDomain の例に基づいています。実際に使用するときは、これらのプロキシエージェント ACI を各自の環境に合わせて変更してください。
すべてのクライアントで認証に pam_unix を使用する場合は、ldapmodify を使用して検索起点識別名に読み取り ACI を設定することによって、プロキシエージェントにパスワードの読み取り権を与えます。
#ldapmodify -D "cn=Directory Manager" -w nssecret -f aci.ldif |
aci.ldif の内容は次のとおりです。
dn: dc=mkt,dc=mainstore,dc=com changetype: modify add: aci aci: (target="ldap:///dc=mkt,dc=mainstore,dc=com") (targetattr="userPassword")(version 3.0; acl "password read"; allow (compare,read,search) userdn = "ldap:///cn=proxyagent, ou=profile,dc=mkt,dc=mainstore,dc=com"; ) |
ldapsearch を使用して新しい ACI 設定を確認します。
ldapsearch は変更された ACI を表示します。
#ldapsearch -L -h <servername> -b "dc=mkt,dc=mainstore,dc=com" \ -s base "objectclass=*" |
ldapsearch によって返される変更後の ACI は、次のようになります。
dn: dc=mkt,dc=mainstore,dc=com dc: mkt associateddomain: mkt.mainstore.com objectclass: top objectclass: domain objectclass: domainRelatedObject objectclass: nisDomainObject nisdomain: mkt.mainstore.com aci: (target="ldap:///dc=mkt,dc=mainstore,dc=com") (targetattr="userPassword")(version 3.0; acl "password read"; allow (compare,read,search) userdn = "ldap:///cn=proxyagent, ou=profile,dc=mkt,dc=mainstore,dc=com"; ) |
pam_ldap 認証はサーバー側で実行されるため、プロキシエージェントにパスワード属性の読み取り権を与える必要はありません。pam_ldap についての詳細は、PAMを参照してください。
NIS(YP) 環境から LDAP 環境に移行するには、dsimport を使用して NIS データを LDIF 書式に変換します。dsimport は NIS 拡張の一部で、iPlanet Advantage Software CD vol.1 に収録されています。マニュアルは、次の Web サイトで参照できます。http://docs.iplanet.com/docs/manuals/directory.html
NIS パスワードを LDIF 書式に変換します。
# cat passwd.nis | dsimport -n -m nis.mapping -t passwd \ -M SIMPLE -D "" -w "" >passwd.ldif |
passwd.ldif ファイルを LDAP サーバーに読み込みます。
NIS グループデータを LDIF 書式に変換します。
# cat group.nis | dsimport -n -m nis.mapping -t group \ -M SIMPLE -D "" -w "" > group.ldif |
group.ldif を LDAP サーバーに読み込みます。
上記の手順を繰り返して、すべてのネームコンテナファイルを変換します。
ns-slapd の ldif2db コマンドまたは ldapadd コマンドを使用して、LDIF 書式ファイルをディレクトリデータベースにインポートします。
ns-slapd ldif2db コマンドについての詳細は、『Directory Server Administrator's Guide』の「Managing Directory Server Databases」を参照してください。ldapadd については、ldapadd(1) のマニュアルページを参照してください。
ファイルデータを LDIF 書式に変換するために、dsimport は、エントリの格納方法を定義するマップファイルを変更する必要があります。
インデックスの作成方法については、『iPlanet Directory Server Administrator's Guide』の「Managing Indexes」を参照してください。
次の Solaris クライアント属性にインデックスを付けます。
membernisnetgroup pres,eq,sub nisnetgrouptriple pres,eq,sub memberuid pres,eq macAddress pres,eq uid pres,eq uidNumber pres,eq gidNumber pres,eq ipHostNumber pres,eq ipNetworkNumber pres,eq ipProtocolNumber pres,eq oncRpcNumber pres,eq ipServiceProtocol pres,eq ipServicePort pres,eq nisDomain pres,eq nisMapName pres,eq mail pres,eq |
ldapsearch を使用して、VLV 制御タイプが 1.2.840.113556.1.4.473、VLV 制御値が 2.16.840.1.113730.3.4.9 の OID によって特定される仮想リスト表示 (VLV) を、ディレクトリがサポートしているかどうかを確認します。
# ldapsearch -b "" -s base objectclass=\* |
ldapsearch は次の検索結果を返します。
objectclass=top namingcontexts=dc=sun,dc=com namingcontexts=o=NetscapeRoot subschemasubentry=cn=schema supportedcontrol=2.16.840.1.113730.3.4.2 supportedcontrol=2.16.840.1.113730.3.4.3 supportedcontrol=2.16.840.1.113730.3.4.4 supportedcontrol=2.16.840.1.113730.3.4.5 supportedcontrol=1.2.840.113556.1.4.473 supportedcontrol=2.16.840.1.113730.3.4.9 supportedcontrol=2.16.840.1.113730.3.4.12 supportedsaslmechanisms=EXTERNAL supportedldapversion=2 supportedldapversion=3 dataversion=atitrain2.east.sun.com:389 020000605172910 netscapemdsuffix=cn=ldap://:389,dc=atitrain2,dc=east,dc=sun,dc=com |
getpwent: vlvFilter: (objectclass=posixAccount), vlvScope: 1 getspent: vlvFilter: (objectclass=posixAccount), vlvScope: 1 getgrent: vlvFilter: (objectclass=posixGroup), vlvScope: 1 gethostent: vlvFilter: (objectclass=ipHost), vlvScope: 1 getnetent: vlvFilter: (objectclass=ipNetwork), vlvScope: 1 getprotoent: vlvFilter: (objectclass=ipProtocol), vlvScope: 1 getrpcent: vlvFilter: (objectclass=oncRpc), vlvScope: 1 getaliasent: vlvFilter: (objectclass=rfc822MailGroup), vlvScope: 1 getserviceent: vlvFilter: (objectclass=ipService), vlvScope: 1 |
ツリー内の ou のうち、多数のオブジェクトを含むかアクセス頻度の高いものに、これらのインデックスを作成します。
パスワードエントリ (getpwent) については、ディレクトリに次のエントリを追加します。
dn: cn=getpwent,cn=config,cn=ldbm objectclass: top objectclass: vlvSearch cn: getpwent vlvBase: ou=people,dc=eng,dc=sun,dc=com vlvScope: 1 vlvFilter: (objectclass=posixAccount) aci: (target="ldap:///cn=getpwent,cn=config,cn=ldbm")(targetattr="*") (version 3.0; acl "Config";allow(read,search,compare)userdn="ldap:///anyone";) dn: cn=getpwent,cn=getpwent,cn=config,cn=ldbm cn: getpwent vlvSort: cn uid objectclass: top objectclass: vlvIndex |
# cd /usr/netscape/server4/slapd* # ./vlvindex getpwent OK# ./vlvindex getgrent OK# ./vlvindex gethostent OK# ./vlvindex getspent OK# # ./vlvindex [05/Jun/2000:15:34:31 -0400] - ldbm2index: Unknown VLV Index named '' [05/Jun/2000:15:34:31 -0400] - ldbm2index: Known VLV Indexes are: 'getgrent', 'gethostent', 'getnetent', 'getpwent', 'getspent', |
残りの VLV 属性について、手順 4 と 5 を繰り返します。
ldapsearch を使用して、VLV 制御 ACI を表示します。
#ldapsearch -D "cn=Directory Manager" -w nssecret -b cn=features, \ cn=config objectclass=\* |
検索結果は次のとおりです。
cn=features,cn=config objectclass=top cn=features cn=options,cn=features,cn=config objectclass=top cn=options oid=2.16.840.1.113730.3.4.9,cn=features,cn=config objectclass=top objectclass=directoryServerFeature oid=2.16.840.1.113730.3.4.9 cn=VLV Request Control aci=(targetattr != "aci")(version 3.0; acl "VLV Request \ Control"; allow( read, search, compare ) userdn = "ldap:///all";) |
ldapmodify を使用して、すべてのユーザーに、VLV 機能の読み取り/検索/比較の権限を与えます。これにより、anonymous (匿名) による検索で VLV 制御を使用しても失敗しなくなります。
#ldapmodify -D "cn=Directory Manager" -w nssecret -f vlvcntrl.ldif |
vlvcntrl.ldif の内容は次のとおりです。
dn: oid=2.16.840.1.113730.3.4.9,cn=features,cn=config changetype: modify replace: aci aci: (targetattr !="aci")(version 3.0; acl "VLV Request Control"; allow (compare,read,search) userdn = "ldap:///anyone"; ) |
ldapsearch を使用して、変更された VLV 制御 ACI を表示します。
#ldapsearch -L -b "cn=features,cn=config" -s one \ oid=2.16.840.1.113730.3.4.9 |
ldapsearch が返す ACI は次のようになります。
dn: oid=2.16.840.1.113730.3.4.9,cn=features,cn=config objectclass: top objectclass: directoryServerFeature oid: 2.16.840.1.113730.3.4.9 cn: VLV Request Control aci: (targetattr !="aci")(version 3.0; acl "VLV Request Control"; allow (compare,read,search) userdn = "ldap:///anyone"; ) |
この手順は、proxyagent エントリを使用する場合だけ必要になります。
proxyagent エントリを LDAP サーバーに追加します。
#ldapadd -D "cn=Directory Manager" -w nssecret -f proxyagent.ldif |
proxyagent.ldif の内容は次のとおりです。
dn: cn=proxyagent,ou=profile,dc=mkt,dc=mainstore,dc=com cn: proxyagent sn: proxyagent objectclass: top objectclass: person userpassword: proxy_agent_password |
ou は、ou=profile または ou=person に設定できます。
クライアントプロファイルを生成し、それを LDAP サーバーに追加します。
ldap_gen_profile -P profile -b baseDN -D bindDN \ -w bindDNpasswd ldapServer_IP_address(es)[:port#] |
bindDN はプロキシエージェントのバインド DN です。障害発生時に他の LDAP サーバーで処理を継続することを可能にする場合は、2 つ以上の LDAP サーバーの IP アドレスを指定します。上のコマンドの実行結果を、profile.ldif などの名前のファイルに格納します。
典型的なコマンド行を示します。
ldap_gen_profile -P myProfile -b "dc=mkt,dc=mainstore,dc=com" \ -D "cn=proxyagent,ou=profile,dc=mkt,dc=mainstore,dc=com" \ -w proxy_agent_pswd -a simple 100.100.100.100 > profile.ldif |
このクライアントプロファイルを LDAP サーバーに追加して、クライアントがダウンロードできるようにします。