CSVファイルには、1行に1エントリの追加・削除・更新に必要な情報を記述します。各レコード(項目)は、区切り文字にカンマを使用します。カンマ文字を値に指定する場合、項目全体を「"」(ダブル引用符)で囲んでください。
CSVファイルの各項目の意味やエントリに対する操作内容を、XML形式のルールファイルで定義する必要があります。CSVファイルを使用してユーザ情報を登録するには、このルールファイルも合わせて指定します。
以下の場所にサンプルファイルがあります。
C:\Interstage\IREP\sample\csv\JA |
/opt/FJSVirep/sample/csv/JA |
add.csv:エントリを追加するサンプル
del.csv:エントリを削除するサンプル
mod.csv:エントリを更新するサンプル
rule.xml:ルールファイルサンプル
上記のサンプルで使用するリポジトリの設定は、以下のとおりです。
リポジトリのホスト名 | hostname |
管理者用DNのパスワード | admin |
その他 | 初期値を使用 |
また、各CSVファイルサンプルと同じ操作ができるLDIFファイルサンプルが、同じ位置に格納されています。処理結果を確認する際に使用してください。
addldif.txt
エントリを追加するサンプルです。ldapmodifyコマンドを使って確認できます。
del.txt
エントリを削除するサンプルです。ldapdeleteコマンドを使って確認できます。
modldif.txt
エントリを更新するサンプルです。ldapmodifyコマンドを使って確認できます。
CSVファイル、および、ルールファイルの形式について説明します。
◆CSVファイル
移入するエントリ情報の定義は、0番目の項目のみ以下のように規定されています(項目の数え方は“0”から始まります)。リポジトリに対する操作を指定します。
0番目の項目に、これらの指定値以外を記述した(何も記述しない場合を含む)場合、その行はコメント行とみなされます。
1番目の項目以降は、後述のルールファイルの指定により、指定内容を自由に定義できます。
指定値 | 意味 |
---|---|
ADD | エントリを追加します。 |
DEL | エントリを削除します。 |
MOD | エントリを更新します。 |
リポジトリに存在しないエントリに対し、“MOD”を指定した場合、“ADD”動作を行います。
ルールファイルは、CSVファイルの情報をInterstage ディレクトリサービス内のデータベースにエントリとして登録(更新・削除)するための変換規則を定義したファイルです。CSVファイルとルールファイルの関係を以下に示します。
ルールファイルの形式について説明します。
次のタグは、XML宣言およびDTD(文書型定義)を記述しているため、ルールファイルの先頭で必ず記述してください。サンプルファイルから複写して使用することを推奨します。
<?xml version="1.0" encoding="EUC-JP" ?> |
ルールファイルを構成する要素について説明します。
以下に、要素構成図を示します。
ルールファイルの記述に関して、全般的な注意事項を以下に示します。
タグの値が指定されていないものは、タグの記述がなかったものとして扱われます。
タグの名前は、大文字小文字を区別します。ただし、Attribute要素、fixed要素である属性名タグは大文字、小文字を区別しません。
タグの階層位置が正しければ、タグの出現順番は関係ありません。逆に階層位置を誤って記述したタグは無視されます。
ルールファイルの記述に必要なタグ(上記で説明した要素、属性名タグ)以外のタグが記述されていた場合、そのタグは無視されます。
ldapopタグ階層以下の、タグと値は固定です。変更しないでください。また、他の位置に移動したり、複写したりしないでください。変更した場合、動作は保障されません。
名前が同じタグを2箇所で記述して、かつ階層位置が同じ場合、1つにまとめられて処理されます。
各要素について説明します。
[設定内容]
値はありません。
[指定できる回数]
省略不可、1回
[下位要素]
Rule
[設定内容]
値はありません。
[指定できる回数]
省略不可
[上位要素]
Csv2Directory
[下位要素]
name、baseDn、midDn、Rdn、DnChange、objectClass、attributeSeparator、unique、CSV、fixed
[設定内容]
この値はコマンドの実行に影響はありませんが、サンプルの記述をそのまま使用してください。
[初期値]
ありません。
[指定できる回数]
省略不可、1回
[上位要素]
Rule
[設定内容]
エントリ操作時のベースDNを、DN形式で指定します。
[初期値]
ありません。
[指定できる回数]
省略不可、1回
[上位要素]
Rule
[設定内容]
対象のエントリがベースDN直下でない場合、対処となる中間のRDNを指定します。DN形式で指定します。
[初期値]
ありません。
[指定できる回数]
省略可能、1回
[上位要素]
Rule
[設定内容]
エントリのRDNとする属性名を指定します。Attribute要素の記述によっては、属性名ではRDNが一意にならない場合があります。このような場合は、CSVファイルの項目番号を指定してください。ここでは、項目番号を“+”で連結することはできません。
また、重複する値を指定することはできません。
[初期値]
ありません。
[指定できる回数]
省略不可、1回以上
[上位要素]
Rule
[設定内容]
DNの変更を移動とみなす場合に1を指定します。1以外の値を指定した場合、DnChangeタグの指定がなかったものとして扱われます。
DNを変更する場合、通常は新規にエントリが作成されるのみで、古い(元となった)エントリは削除されません。本タグを指定することで古いエントリが削除されます。
[初期値]
1
[指定できる回数]
省略可能、1回
[上位要素]
Rule
[設定内容]
エントリに指定するobjectClassを指定します。重複する値を指定することはできません。
[初期値]
ありません。
[指定できる回数]
省略不可、1回以上
[上位要素]
Rule
[設定内容]
CSVファイルからのマッピング時の項目を連結する場合のセパレータ文字を指定します。任意の文字列で指定します。複数回指定した場合、最初に指定されたものが有効となります。
[初期値]
ありません。
[指定できる回数]
省略可能
[上位要素]
Rule
[設定内容]
ベースDN配下で一意性をチェックする属性を指定します。Attribute要素の記述によっては、属性が一意にならない場合があります。このような場合は、CSVファイルの項目番号を指定してください。ここでは、項目番号を“+”で連結することはできません。
また、重複する値を指定することはできません。
[初期値]
ありません。
[指定できる回数]
省略可能、2回以下
[上位要素]
Rule
[設定内容]
値はありません。
[初期値]
ありません。
[指定できる回数]
省略不可
[上位要素]
Rule
[下位要素]
Ldapop、Attribute
[設定内容]
値はありません。このタグは固定です、階層位置を変更しないでください。
[初期値]
ありません。
[指定できる回数]
省略可能
[上位要素]
CSV
[下位要素]
op、ldapadd、ldapdelete、ldapmodify
[設定内容]
エントリの操作種別を規定しているCSVファイルの項目位置を示します。行の先頭を0番目として数えます。このタグは固定です、階層位置と値を変更しないでください。
[初期値]
0
[指定できる回数]
省略可能、1回
[上位要素]
Ldapop
[設定内容]
エントリ追加操作を指示するための文字列を指定します。このタグは固定です、階層位置を変更しないでください。
ADD |
この場合、op要素で指定されたCSVファイルの項目位置に、“ADD”が記述されていると、その行の情報で、エントリ追加操作が行われます。
ldapadd、ldapdelete、ldapmodify要素は、互いに重複する値を指定することはできません。
[初期値]
ADD
[指定できる回数]
省略可能、1回
[上位要素]
Ldapop
[設定内容]
エントリ削除操作を指示するための文字列を指定します。このタグは固定です、階層位置を変更しないでください。
DEL |
この場合、op要素で指定されたCSVファイルの項目位置に、“DEL”が記述されていると、その行の情報が示すエントリの削除操作が行われます。
ldapadd、ldapdelete、ldapmodify要素は、互いに重複する値を指定することはできません。
[初期値]
DEL
[指定できる回数]
省略可能、1回
[上位要素]
Ldapop
[設定内容]
エントリ更新操作を指示するための文字列を指定します。このタグは固定です、階層位置を変更しないでください。
MOD |
この場合、op要素で指定されたCSVファイルの項目位置に、“MOD”が記述されていると、その行の情報で、エントリ更新操作が行われます。
ldapadd、ldapdelete、ldapmodify要素は、互いに重複する値を指定することはできません。
[初期値]
MOD
[指定できる回数]
省略可能、1回
[上位要素]
Ldapop
[設定内容]
属性値にCSVファイルの項目の値を設定する場合に使用します。属性とCSVファイルの項目位置を対応づけます。
この要素の下位要素として、エントリに追加または更新する属性名の要素を指定します。属性名を、下位要素のタグの文字列として指定します。下位要素の値には、CSVファイル上の対象項目の項目位置を指定します。項目位置は、開始位置を0として数えます。“+”文字で項目を複数指定することもできます。
<description>8+1</description> |
Attributeタグで設定している項目位置の最大値より、CSVファイルの項目が多い場合、最大値を超えた分は無視します。
Attributeタグで設定している項目位置の最大値より、CSVファイルの項目が少ない場合、対応する値がないものとして扱います。
[初期値]
ありません。
[指定できる回数]
省略不可
[上位要素]
CSV
[下位要素]
エントリに追加、または更新する属性の属性名を、下位要素名とします。属性値が可変のものを指定します。
<cn>1</cn> |
[設定内容]
属性値に固定値を設定する場合に使用します。
この要素の下位要素として、エントリに追加または更新する属性名の要素を指定します。属性名を、下位要素のタグの文字列として指定します。下位要素の値が、固定値そのものです。
[初期値]
ありません。
[指定できる回数]
省略可能、1回
[上位要素]
Rule
[下位要素]
エントリに追加、または更新する属性の属性名を、下位要素名とします。属性値が固定のものを指定します。
<o>fujitsu</o> |
ここで、Attributeタグの下位要素として指定した属性名と同じ名前を指定した場合、fixedタグの下位要素で指定したものが優先されます。
CSVファイルの記述例を示します。
下位エントリがあるエントリ(サブツリー)に対して、一度の操作で、削除することはできません。リーフ(最下位)エントリから順に、削除してください。
エントリ追加の記述例
ユーザ情報エントリを追加する場合の記述例を示します。
例中に記載のオブジェクトクラス、属性については、それぞれ、“付録A オブジェクトクラス一覧”、“付録B 属性一覧”を参照してください。
◆ユーザ情報エントリの追加
CSVファイルのデータとユーザエントリの属性を以下のように関連付けて、ユーザ情報エントリをリポジトリに追加する場合の例で説明します。
項目の | 項目名 | 属性名 |
---|---|---|
1 | 一般名 | cn |
2 | 姓 | sn |
3 | 名 | givenName |
4 | ユーザID | uid |
5 | パスワード | userPassword |
6 | 従業員番号 | employeeNumber |
7 | 電子メールアドレス |
0番目の項目に“ADD”を指定し、次桁から追加するエントリ情報を記述します。
ユーザ情報エントリ追加のCSVファイル
ADD,User001,Fujitsu,user001,100001,u5zMEqXX,10001,user001@interstage.fujitsu.com |
注)1エントリ1行で記述します。
CSVファイルの各項目の順序に合わせて、Attributeタグを記述します。
追加するすべてのエントリが同じ属性型と属性値をもつ場合、Fixedタグを記述すると、CSVファイルに記述する量を減らすことができます。
ユーザ情報エントリ追加のルールファイル
<?xml version="1.0" encoding="EUC-JP" ?> <!-- 修正禁止↓ --> <!DOCTYPE Csv2Directory [ <!ELEMENT Rule (name, baseDn, midDn?, Rdn+, DnChange?, objectClass+, attributeSeparator?, unique*, CSV, fixed?)> <!ELEMENT CSV (ldapop?, Attribute)> <!ELEMENT ldapop (op?, ldapadd?, ldapdelete?, ldapmodify?)> <!ELEMENT name (#PCDATA)> <!ELEMENT baseDn (#PCDATA)> <!ELEMENT Rdn (#PCDATA)> <!ELEMENT objectClass (#PCDATA)> <!ELEMENT attributeSeparator (#PCDATA)> <!ELEMENT op (#PCDATA)> <!ELEMENT ldapadd (#PCDATA)> <!ELEMENT ldapdelete (#PCDATA)> <!ELEMENT ldapmodify (#PCDATA)> ]> <!-- 修正禁止↑ --> <Csv2Directory> <Rule> <name>rule</name> <!-- baseDn を定義します(必須) --> <baseDn>ou=User,ou=interstage,o=fujitsu,dc=com</baseDn> <!-- RDN を定義します(必須:複数可能:重複不可) --> <!-- 番号か属性名のどちらか一方で、一意になるものをいれてください --> <Rdn>cn</Rdn> <!-- DN の変更を移動とみなすか(任意) --> <!-- みなす場合 1 を指定してください --> <DnChange>1</DnChange> <objectClass>top</objectClass> <objectClass>person</objectClass> <objectClass>inetOrgPerson</objectClass> <!-- 属性値が複数のCSV項目から作成する場合の区切りの文字(任意) --> <!-- 指定しない場合は空白1文字です。 --> <!-- 空白文字は指定できません。--> <attributeSeparator>-</attributeSeparator> <!-- baseDnの下で、重複を許可しない属性を指定してください --> <!-- 番号か属性名のどちらか一方で、一意になるものをいれてください --> <!-- (任意:複数可能:重複不可)--> <unique>uid</unique> <CSV> <!-- リポジトリへの操作(追加、削除、変更)とCSVの位置(任意) --> <!-- 0番目の位置に、操作方法を指定する場合 --> <ldapop> <op>0</op> <ldapadd>ADD</ldapadd> <ldapdelete>DEL</ldapdelete> <ldapmodify>MOD</ldapmodify> </ldapop> <!-- CSVの各項目とエントリの属性の対応づけ(任意) --> <Attribute> <cn>1</cn> |
irepmodifyent -h hostname -p 389 -D "cn=manager,ou=interstage,o=fujitsu,dc=com" -r rule.xml -i add.csv(注) |
注)改行を入れないで1行で入力します。
エントリ削除の記述例
ユーザ情報エントリを削除する場合の記述例を示します。
例中に記載のオブジェクトクラス、属性については、それぞれ、“付録A オブジェクトクラス一覧”、“付録B 属性一覧”を参照してください。
CSVファイルのデータとユーザエントリの属性との関連付けは、“ユーザ情報エントリの追加”で示したものと同じである、として説明します。
次の2つのユーザ情報エントリを削除する場合の、CSVファイルとルールファイルの記述例を示します。
dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com |
0番目の項目に“DEL”を指定し、次桁から削除するエントリ情報を記述します。
ユーザ情報エントリ削除のCSVファイル
DEL,User001,Fujitsu,user001,100001,u5zMEqXX,10001,user001@interstage.fujitsu.com |
注)1エントリ1行で記述します。
CSVファイルの各項目の順序に合わせて、Attributeタグを記述します。“ユーザ情報エントリの追加”で使用したルールファイルを使用してください。
irepmodifyent -h hostname -p 389 -D "cn=manager,ou=interstage,o=fujitsu,dc=com" -r rule.xml -i del.csv(注) |
注)改行を入れないで1行で入力します。
エントリ更新の記述例
ユーザ情報エントリを更新する場合の記述例を示します。
例中に記載のオブジェクトクラス、属性については、それぞれ、“付録A オブジェクトクラス一覧”、“付録B 属性一覧”を参照してください。
更新の対象となるユーザ情報エントリが存在しない場合は、対象のエントリを追加します。
◆属性値の追加
“ユーザ情報エントリの追加”で追加した次のエントリに、電話番号を追加する場合を例にとって、CSVファイルとルールファイルの記述方法を説明します。
dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com |
CSVファイルのデータとユーザエントリの属性との関連付けは、“ユーザ情報エントリの追加”で示したものに、さらに、8番目に電話番号のデータを記述します。
項目の | 項目名 | 属性名 |
---|---|---|
8 | 電話番号 | telephonenumber |
0番目の項目に“MOD”を指定し、次桁から属性値を追加するエントリ情報を記述します。8番目の項目に電話番号(telephonenumber)を記述します。
電話番号追加のCSVファイル
MOD,User001,Fujitsu,user001,100001,u5zMEqXX,10001,user001@interstage.fujitsu.com,5555-0123(注) |
注)1エントリ1行で記述します。
CSVファイルの各項目の順序に合わせて、Attributeタグを記述します。“ユーザ情報エントリの追加”で使用したルールファイルを使用してください。
Attributeタグに、telephonenumberの記述を追加します。
電話番号追加のルールファイル(Attributeタグ内のみを示します。)
<Attribute> |
◆属性値の削除
“属性値の追加”で追加した電話番号を削除する場合のCSVファイルとルールファイルの記述例を示します。
0番目の項目に“MOD”を指定し、次桁から属性値を削除するエントリ情報を記述します。8番目の項目に電話番号(telephonenumber)が記述されていた場合、その値を削除します。7番目の項目の後のカンマを削除しないように注意してください。
電話番号削除のCSVファイル
MOD,User001,Fujitsu,user001,100001,u5zMEqXX,10001,user001@interstage.fujitsu.com,(注) |
注)1エントリ1行で記述します。
CSVファイルの各項目の順序に合わせて、Attributeタグを記述します。上記の電話番号削除例のCSVファイルの場合は、前述の“属性値の追加”で使用した例のルールファイルと同じものを使用します。
◆複数の属性値から特定の属性値の削除
次のユーザ情報エントリから、電話番号5555-0123を削除する場合のCSVファイルとルールファイルの記述例を示します。
dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com |
0番目の項目に“MOD”を指定し、次桁から属性値を削除するエントリ情報を記述します。8番目の項目、および9番目の項目に電話番号(telephonenumber)が記述されており、削除する電話番号が8番目の項目にある場合、その値を削除します。8番目の項目の前後のカンマを削除しないように注意してください。
電話番号を1つ削除する場合のCSVファイル
MOD,User001,Fujitsu,user001,100001,u5zMEqXX,10001,user001@interstage.fujitsu.com,,5555-6789(注) |
注)1エントリ1行で記述します。
CSVファイルの各項目の順序に合わせて、Attributeタグを記述します。
電話番号を1つ削除する場合のルールファイル(Attributeタグ内のみを示します。)
<Attribute> |
◆属性値の置換え
次のユーザ情報エントリの、電話番号5555-6789を5555-9001に置き換える場合のCSVファイルとルールファイルの記述例を示します。
dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com |
0番目の項目に“MOD”を指定し、次桁から属性値を置き換えるエントリ情報を記述します。8番目の項目に電話番号(telephonenumber)が記述されていた場合、その値を新しい値で置き換えます。
電話番号置換えのCSVファイル
MOD,User001,Fujitsu,user001,100001,u5zMEqXX,10001,user001@interstage.fujitsu.com,5555-9001(注) |
注)1エントリ1行で記述します。
CSVファイルの各項目の順序に合わせて、Attributeタグを記述します。上記の電話番号置換え例のCSVファイルの場合は、前述の“属性値の追加”で使用した例のルールファイルと同じものを使用します。
irepmodifyent -h hostname -p 389 -D "cn=manager,ou=interstage,o=fujitsu,dc=com" -r rule.xml -i mod.csv(注) |
注)改行を入れないで1行で記述します。
以下に、CSVファイルを使用してエントリデータを登録する手順を示します。
ユーザ情報の一元管理データベースからのCSV形式データの抽出
マッピングルール(変換ルール)の設定
移入コマンドの実行
データベースの機能を利用して、ユーザ情報の一元管理データベースからCSV形式のデータを取り出します。なお、データベース上のデータが証明書などのバイナリデータの場合は、テキスト(Base64)形式に変換しておく必要があります。
CSV形式データの情報とリポジトリの情報を関連付けるための、ルールファイルを設定します。
irepmodifyentコマンドを使用して、エントリデータを登録します。
irepmodifyentコマンドの詳細は、“リファレンスマニュアル(コマンド編)”の“Interstage ディレクトリサービス運用コマンド”を参照してください。