一般的なディレクトリサービスのエントリ作成方法については、『Sun Directory Services 3.1 管理ガイド』の第 5 章「ディレクトリ情報の読み込みと保守」を参照してください。この節では、Solaris for ISPs が必要とする特別なエントリの作成方法について説明します。
Deja ツールを使用してディレクトリエントリを作成する方法については、Sun Internet Administrator のオンラインヘルプを参照してください。
Sun Directory Services には、ディレクトリエントリの作成と変更のために次のコマンド行ユーティリティが用意されています。
ldapadd
ldapmodify
ldapdelete
上記のコマンド行ユーティリティを使用するには、スーパーユーザーのアクセス権が必要です。詳細は、リファレンスマニュアルページ (セクション 1) を参照してください。
ldapadd と ldapmodify への入力には、コマンド行またはテキストファイルを使用します。エントリ情報は複雑で長いものが多いので、以降の項に示す手順ではテキストファイルから入力する方法について説明します。
どの場合でも、次の手順に従ってエントリ情報を作成します。
ディレクトリに作成する 1 つまたは複数のエントリを記述したファイルを作成します。ファイル形式の詳細は、ldif(4) のマニュアルページを参照してください。
スーパーユーザーのアクセス権を取得し、エントリ情報が入ったファイルを指定して ldapadd を実行し、エントリを作成します。
ldapadd コマンドの実行形式を次に示します。
# ldapadd -D "BindDN" -w password -f file |
BindDN はディレクトリにバインドする識別名 (DN) で、ディレクトリツリーの当該部分への書き込み権を持っている必要があります。password はバインドのためのパスワードです。また、file オプションでは、作成した ldif ファイル名を指定します。
コマンド行からエントリを追加するには、エントリ情報が入った ldif 形式のファイルを作成します。ldif 形式のファイルは、各ディレクトリエントリを空白行で区切った単純テキスト形式のファイルです。各ディレクトリエントリは、次の例のような構造を持ちます。
次の例では必須属性だけを示します。ほとんどのオブジェクトクラスには、この他にさまざまなオプション属性があります。オプション属性は、必要に応じて使用してください。
dn: ou=wcgate1,ou=eng,o=sun,c=US ou: wcgate1 associateddomain: wcgate1.eng.sun.com objectclass: organizationalUnit objectclass: domainRelatedObject
各属性の意味は次のとおりです。
作成するエントリの識別名を指定します。
作成するエントリの名前属性です。よく使用する名前属性としては、commonName、organizationalUnit (ou)、domainComponent (dc) があります。
DC ツリー内の対応するエントリのドメイン名をドット区切り形式で指定します。OSI ツリーと DC ツリーの関係については、「Solaris for ISPs のディレクトリ構造」、ドメインのクロスリファレンスエントリを作成する方法については、「ドメインエントリの作成」を参照してください。
この場所には、属性:値のペアを一行ごとに必要な数だけ指定できます。
エントリのオブジェクトクラス (種類) を指定します。objectClass は多数存在しますが、この例では 2 つだけ示します。
使用できるオブジェクトクラスと属性の詳細は、このマニュアルの第 6 章「Solaris for ISPs のディレクトリサービスのスキーマ」、および『Sun Directory Services 3.1 管理ガイド』の第 8 章「ディレクトリスキーマの構成」を参照してください。
ディレクトリにドメインを作成するには、OSI ツリーと DC ツリーの両方にドメインエントリを 1 つずつ作成する必要があります。その後で、OSI ツリー内のドメインエントリの下に必要な organizationalUnit エントリを作成します。
eng.sun.com の下に wcgate1 というドメインを作成する手順を次に示します。
OSI ツリー に作成するエントリのデータをテキストファイル (たとえば、domain.ldif) に入力します。
dn: ou=wcgate1,ou=eng,o=sun,c=US ou: wcgate1 associateddomain: wcgate1.eng.sun.com objectclass: organizationalUnit objectclass: domainRelatedObject
associatedDomain 属性に、DC ツリー内のエントリ名をドット区切り形式 (DNS 形式) で指定していることに注意してください。
domain.ldif ファイルに、DC ツリーのエントリ情報を追加します。
dn: dc=wcgate1,dc=eng,dc=sun,dc=com dc: wcgate1 associatedname: ou=wcgate1,ou=eng,o=sun,c=US description: DNS-to-DN Mapping for wcgate1.eng.sun.com labeleduri: ldap:///ou=wcgate1,ou=eng,o=sun,c=US??sub objectclass: domain objectclass: labeledURIObject
associatedDomain 属性に、OSI ツリー内のエントリ識別名を指定していることに注意してください。また、RFC2255 に従って labeledURI 属性にも同じ情報を指定していることに注意してください。
domain.ldif ファイルに、必須の組織ユニットエントリである Services の情報を追加します。
dn: ou=Services,ou=wcgate1,ou=eng,o=sun,c=US ou: Services objectclass: organizationalUnit
domain.ldif ファイルに、必須の組織ユニットエントリである People の情報を追加します。
dn: ou=People,ou=wcgate1,ou=eng,o=sun,c=US ou: People objectclass: organizationalUnit
domain.ldif ファイルに、必須の組織ユニットエントリである Groups の情報を追加します。
dn: ou=Groups,ou=wcgate1,ou=eng,o=sun,c=US ou: Groups objectclass: organizationalUnit
domain.ldif ファイルを保存します。
スーパーユーザーのアクセス権を取得し、次のコマンドを実行してディレクトリに各エントリを追加します。バインドの識別名とパスワードは、それぞれ適切な値に置き換えてください。
# ldapadd -D "cn=admin,o=sun,c=US" -w password -f domain.ldif |
ldapadd 実行後のディレクトリ構造は図 5-5 のようになります。
Solaris for ISPs の加入者には次の種類があります。
一般の加入者 (基本加入者)
仮想ホストの FTP サービスまたは Web サービスを使用する加入者
RADIUS サーバーを介してサービスにアクセスする加入者
上記の 2 つを利用し、ディレクトリエントリに RADIUS 情報と FTP 情報の両方を必要とする加入者
以降の項では、単純なエントリを作成しそれに必要な情報を追加することで、複雑な加入者エントリを構築する手順を示します。
加入者エントリを作成するには、ドメインと People の組織ユニットエントリが存在していなければなりません。これらのエントリが存在していれば、テキストファイル (たとえば、people.ldif) を編集して、加入者エントリ情報を作成できます。基本加入者エントリは、ispSubscriber という 1 つのオブジェクトクラスと、小数の必須属性を持ちます。基本加入者を追加するためのテキストファイルは次のようになります。
dn: cn=Jane Doe (jldoe),ou=People,ou=wcgate1,ou=eng,o=sun,c=US commonname: Jane Doe (jldoe) sn: Doe uid: jldoe userpassword: hidden objectclass: ispSubscriber
各属性の意味は次のとおりです。
加入者エントリの識別名を指定します。
加入者エントリ (ispSubscriber オブジェクトクラス) の名前属性です。Solaris for ISPs の加入者と管理者の commonName 属性は、Firstname Lastname (userid) の形式で指定します。
加入者の姓です。
加入者のログイン名です。
パスワードです。パスワード情報を UNIX アカウントと共有する場合は、8 文字以内の文字列でなければなりません。パスワードは、ディレクトリサービス管理コンソールで指定した方法で暗号化されます。
この加入者エントリのオブジェクトクラスの種類を指定します。
people.ldif ファイルには、属性値の異なるこのようなデータブロックを追加することにより、加入者エントリを必要なだけ作成できます。データ入力が終わったら、people.ldif を保存します。スーパーユーザーのアクセス権を取得し、次のコマンドを実行してディレクトリに加入者エントリを追加します。バインドの識別名とパスワードは、それぞれ適切な値に置き換えてください。
# ldapadd -D "cn=admin,o=sun,c=US" -w password -f people.ldif |
Sun Internet FTP Server と Sun WebServer (SWS) で使用する仮想ホストを構成するには、次の 3 種類の属性を追加する必要があります。
gidnumber: 60001 uidnumber: 60001 ispcontentdirectory: jldoe
各属性の意味は次のとおりです。
FTP サービスと Web サービス用の仮想ホストドメインにおいて、このユーザーに指定する UNIX のグループ ID です。
FTP サービスと Web サービス用の仮想ホストドメインにおいて、このユーザーに指定する UNIX のユーザー ID です。
コンテンツのパス (関連ドメインのドキュメントルートからの相対パスで指定される) で、ここにこの加入者のコンテンツファイルが存在します。
uidNumber と gidNumber の 2 つの属性値を指定するには、仮想 FTP ドメインに共有アクセスできるように正しく設定された UNIX アカウントが必要です。仮想ホストの構成については、Sun Internet FTP Server のオンラインヘルプを参照してください。
people.ldif ファイルには、このようなデータブロックを追加することにより、加入者エントリを必要なだけ作成できます。データ入力が終わったら、 people.ldif を保存します。スーパーユーザーのアクセス権を取得し、次のコマンドを実行してディレクトリに加入者エントリを追加します。バインドの識別名とパスワードは、それぞれ適切な値に置き換えてください。
# ldapadd -D "cn=admin,o=sun,c=US" -w password -f people.ldif |
既存エントリの属性を変更する場合は、ldapmodify を実行します。ldapmodify の実行方法については、ldapmodify(1) のマニュアルページを参照してください。
RADIUS サーバーを介して ISP サービスにアクセスする加入者エントリを作成するには、エントリ情報に remoteUser というオブジェクトクラスといくつかの属性を追加する必要があります。
Solaris for ISPs のデフォルト構成では、ルートドメインが RADIUS 加入者エントリの検索ベースになっています。ルートドメイン以外を検索ベースにしたいときは、ディレクトリサービス管理コンソールを使用して RADIUS を構成し、検索ベースを変更してください。
ldif ファイルに次の行を追加します。
objectclass: remoteUser authsuffixname: @ispxpress grpcheckinfo: authSuffixName grpcheckinfo: userPassword authserviceprotocol: Framed-User framedrouting: None framedprotocol: PPP grpreplyinfo: authServiceProtocol grpreplyinfo: framedProtocol grpreplyinfo: framedRouting
各属性の意味は次のとおりです。
RADIUS サーバーを使用してサービスにアクセスする加入者に必要なオブジェクトクラスです。
加入者のユーザー名に付加される接尾辞です。RADIUS サーバーは、他のドメイン内の同じ uid を持つエントリをこの接尾辞で区別します。ユーザーエントリごとに適切な接尾辞を入力します。
RADIUS サーバーが認証するエントリを選択する前に authSuffixName 属性を確認するようにします。
RADIUS サーバーが認証するエントリを選択する前に userPassword 属性を確認するようにします。
デフォルトの RADIUS 構成を使用する場合は、この属性値をそのまま入力します。ネットワークアクセスサーバーの構成により正確な値が決まります。
デフォルトの RADIUS 構成を使用する場合は、この属性値をそのまま入力します。ネットワークアクセスサーバーの構成により正確な値が決まります。
デフォルトの RADIUS 構成を使用する場合は、この属性値をそのまま入力します。ネットワークアクセスサーバーの構成により正確な値が決まります。
応答メッセージに authServiceProtocol 属性値を含めるように、RADIUS サーバーに指示します。
応答メッセージに framedProtocol 属性値を含めるように、RADIUS サーバーに指示します。
応答メッセージに frameRouting 属性値を含めるように、RADIUS サーバーに指示します。
people.ldif ファイルには、このようなデータブロックを追加することにより、加入者エントリを必要なだけ作成できます。データ入力が終わったら、 people.ldif を保存します。スーパーユーザーのアクセス権を取得し、次のコマンドを実行してディレクトリに加入者エントリを追加します。バインドの識別名とパスワードは、それぞれ適切な値に置き換えてください。
# ldapadd -D "cn=admin,o=sun,c=US" -w password -f people.ldif |
既存エントリの属性を変更する場合は、ldapmodify を実行します。ldapmodify の実行方法については、ldapmodify(1) のマニュアルページを参照してください。
複雑な加入者情報を含む ldif ファイルは次のようになります。
dn: cn=Jane Doe (jldoe),ou=People,ou=wcgate1,ou=eng,o=sun,c=US commonname: Jane Doe (jldoe) sn: Doe uid: jldoe userpassword: hidden gidnumber: 60001 uidnumber: 60001 objectclass: ispSubscriber objectclass: remoteUser ispcontentdirectory: /home/users/jldoe authsuffixname: @ispxpress grpcheckinfo: authSuffixName grpcheckinfo: userPassword authserviceprotocol: Framed-User framedrouting: None framedprotocol: PPP grpreplyinfo: authServiceProtocol grpreplyinfo: framedProtocol grpreplyinfo: framedRouting
グループエントリを作成する前に、次のエントリが作成されていなければなりません。
2 種類のドメインエントリ (OSI ツリーと DC ツリー)
組織ユニットエントリである Group
このグループのメンバーとなる加入者エントリ (People ノードの下に作成されていること)
これらのエントリが存在していれば、テキストファイル (たとえば、groups.ldif) を編集して、グループ情報を作成できます。グループエントリを追加するためのテキストファイルは次のようになります。
dn: cn=isp-gp1,ou=Groups,ou=wcgate1,ou=eng,o=sun,c=US cn: isp-grp1 objectclass: groupOfNames member: cn=Ed Anchor (anchor),ou=People,ou=wcgate1,ou=eng,o=sun,c=US member: cn=April Shower (showers),ou=People,ou=wcgate1,ou=eng,o=sun,c=US member: cn=Chili Jones (relleno),ou=People,ou=wcgate1,ou=eng,o=sun,c=US
各属性の意味は次のとおりです。
作成するグループの識別名を指定します。
グループエントリの関連識別名です。
groupOfNames というオブジェクトクラスが、このエントリの種類を示します。
既存の加入者エントリの識別名を member 属性で指定します。
groups.ldif ファイルには、このようなデータブロックを追加することにより、グループエントリを必要なだけ作成できます。データ入力が終わったら、 groups.ldif を保存します。スーパーユーザーのアクセス権を取得し、次のコマンドを実行してディレクトリにグループを追加します。バインドの識別名とパスワードは、それぞれ適切な値に置き換えてください。
# ldapadd -D "cn=admin,o=sun,c=US" -w password -f groups.ldif |