ページの先頭行へ戻る
Interstage Application Server ディレクトリサービス運用ガイド

5.5.1 LDAPデータ交換形式(LDIF)を使う

  LDIFの形式には、2種類あります。

  1. エントリの情報を記述する標準形式
    リポジトリに大量のエントリを追加する場合、この形式を使用すると、追加作業が効率化できます。

  2. エントリの変更情報を記述する更新形式
    リポジトリ内のエントリ情報を変更する場合、この形式を使用します。

  Interstage ディレクトリサービスが提供するサンプルのLDIFファイルが、以下の場所に格納されています。このサンプルのLDIFファイルを流用して、エントリの追加・変更情報を記述することで、簡単にLDIFファイルを作成することができます。

C:\Interstage\IREP\sample\ldif\

/opt/FJSVirep/sample/ldif/

5.5.1.1 LDIF標準形式

  エントリの情報を記述するLDIF標準形式について説明します。
  例中に記載のオブジェクトクラス、および属性については、それぞれ、“付録A オブジェクトクラス一覧”、“付録B 属性一覧”を参照してください。

2つのエントリを記述した標準形式

version: 1
# 1つ目のエントリ
dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
cn: User001
sn: Fujitsu

# 2つ目のエントリ
dn: cn=User002,ou=User,ou=interstage,o=fujitsu,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
cn: User002
sn: Fujitsu

◆行が長い時

  DNや属性値が長すぎる場合は、折り返して複数行で記述することができます。この時、継続行であることを示すために、行の先頭1文字を空白とし、2文字目から属性値の続きを記述します。行の先頭が空白の場合、その行は、前の行の継続行とみなされます。

長い属性値を折り返す場合

dn: cn=User002,ou=User,ou=interstage,o=fujitsu,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
cn: User002
sn: Fujitsu
description: She is good at English, German, and French.
 She has experience in overseas assignment.

◆属性値を外部ファイルから参照する時

  属性値に、外部ファイルの内容を指定するには、以下の形式で記述します。

属性名:< ファイル(注)

)“:”(コロン)と“<”(小なり)の間には空白を入れないで記述します。“:”(コロン)と“<”(小なり)の間に空白を入れた場合、“:”(コロン)以降に記載した文字列が属性値として登録されます。
  DNはファイルからの読み込みはできません。
  指定できるファイルはローカルなファイルのみです。また、ファイル名は、リポジトリ内に格納されません。

  コード系により、ファイルの記述形式が違います。description属性にテキストファイルの内容を指定するときを例にとって説明します。

  ファイルのコード系をUTF-8に変換し、ファイルをURL形式で指定します。

description:< file:///C:\data\utf8.txt

description:< file:///data/utf8.txt

  

◆バイナリの表記

  属性値にバイナリ値を設定するには、以下の形式で記述します。Base64符号化した値を直接記述する場合は、“付録B 属性一覧”で、『「;binary」を付加する必要はありません』と記載されている属性は“Base64符号化した値を直接記述する場合1”の形式で、『「;binary」を付加してください』と記載されているものは、“Base64符号化した値を直接記述する場合2”の形式で、それぞれ記述してください。

Base64符号化した値を直接記述する場合1

属性名:: 属性値(Base64符号化)

  

Base64符号化した値を直接記述する場合2

属性名;binary:: 属性値(Base64符号化)

  

外部ファイルの内容を指定する場合

属性名:< file:///絶対パス

  バイナリ値に外部ファイルが指定された場合は、外部ファイルの内容だけがBase64符号化形式でリポジトリに格納され、ファイル名は格納されません。

Base64符号化した値を直接記述する場合

dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: User001
sn: Fujitsu
jpegPhoto:: /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAP//////////////////////////
 ////////////////////////////////////////////////////////////wAAL
 CAAIAAgBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAt
 RAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0Kxw
 RVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZW
 mNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKzt
 LW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/
 9oACAEBAAA/ADnA6ds9ucjr15Hf65xxX//Z

◆ユーザ定義スキーマで定義した属性、およびオブジェクトクラスを使用する時

  ユーザ定義スキーマで定義した属性やオブジェクトクラスを使用する時は、標準スキーマで定義済みの属性、およびオブジェクトクラスと同じ形式で指定できます。

ユーザ定義スキーマで定義したオブジェクトクラス、「myPerson」を指定する場合

#myPerson 
dn: cn=User1001,ou=User,ou=interstage,o=fujitsu,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: myPerson
cn: User1001
sn: Fujitsu
employeeNumber: 991001
skill: Interstage Certified Professional

5.5.1.2 LDIF更新形式

  エントリの変更情報を記述するLDIF更新形式について説明します。“5.5.1.1 LDIF標準形式”で述べた形式に、さらに、変更の対象、種別、内容を記述します。

  次の順序で記述します。

  1. 変更するエントリのDN

  2. 変更の種別(changetype行)

      変更の種別は、以下の4つの中からどれか1つを指定します。

    • add

      dn行で指定したエントリをリポジトリに追加します。

    • delete

      dn行で指定したエントリをリポジトリから削除します。

    • modify

      dn行で指定したエントリを更新します。

    • modrdn

      dn行で指定したエントリのRDN(相対識別名)を変更します。

      changetype行を省略した場合、次のように解釈されます。

    • ldapmodifyコマンドで-aオプションを指定している場合:add

    • ldapmodifyコマンドで-aオプションを指定していない場合:modify

      

  3. 変更の内容


  下位エントリがあるエントリ(サブツリー)に対して、一度の操作で、削除することはできません。リーフ(最下位)エントリから順に、削除してください。

エントリの追加

  changetype行に“add”を指定し、次行から属性定義を記述します。

エントリを追加する場合

dn: cn=User002,ou=User,ou=interstage,o=fujitsu,dc=com
changetype: add
objectclass: top
objectclass: person
objectclass: organizationalPerson
cn: User002
sn: Fujitsu

  例中に記載のオブジェクトクラス、属性については、それぞれ、“付録A オブジェクトクラス一覧”、“付録B 属性一覧”を参照してください。

エントリの削除

  changetype行に“delete”を指定します。

エントリを削除する場合

version: 1
dn: cn=User003,ou=User,ou=interstage,o=fujitsu,dc=com
changetype: delete

  例中に記載のオブジェクトクラス、属性については、それぞれ、“付録A オブジェクトクラス一覧”、“付録B 属性一覧”を参照してください。

エントリの更新

  エントリの属性、属性値に対して、追加、削除、置換えを行うには、changetype行に“modify”を指定します。さらに、次行に変更方法を示す種別を指定します。
  属性の変更種別は、以下の3つの中からどれか1つを指定します。

  属性の変更種別を省略した場合、次のように解釈されます。

  属性の変更種別の次の行には、変更する属性の内容を指定します。続けて複数の変更を記述する場合は、“-”(マイナス)で区切ります。
  次の書式で記述します。

dn: エントリのDN
changetype: modify
属性の変更種別(add|delete|replace): 属性型
属性型: 属性値
-

◆属性値の追加

  属性の変更種別に“add”を指定します。

mail属性を追加する場合

dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com
changetype: modify
add: mail

mail: user001@interstage.fujitsu.com

2つのtelephonenumber属性と1つのjpegPhoto属性を追加する場合


  JPEGファイル  C:\data\photo\user001.jpg

dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com
changetype: modify
add: telephonenumber
telephonenumber: 7777-1234
telephonenumber: 7777-5678
-
add: jpegPhoto
jpegPhoto:< file:///C:\data\photo\user001.jpg


  JPEGファイル  /data/photo/user001.jpg

dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com
changetype: modify
add: telephonenumber
telephonenumber: 7777-1234
telephonenumber: 7777-5678
-
add: jpegPhoto
jpegPhoto:< file:///data/photo/user001.jpg

◆属性値の削除

  属性の変更種別に“delete”を指定します。

description属性を削除する場合

dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com
changetype: modify
delete: description

◆複数の属性値から特定の属性値の削除

  属性の変更種別に“delete”を指定します。

  User001のエントリ情報が次の状態であるとします。

dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
cn: User001
sn: Fujitsu
telephonenumber: 7777-1234
telephonenumber: 7777-5678

telephonenumber 7777-1234を削除する場合

dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com
changetype: modify
delete: telephonenumber

telephonenumber: 7777-1234

  この結果、User001のエントリ情報は次のようになります。

dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
cn: User001
sn: Fujitsu
telephonenumber: 7777-5678

◆属性値の置換え

  属性の変更種別に“replace”を指定します。

mail を user001@interstage.fujitsu.com から user001_Fujitsu@interstage.fujitsu.com に変更する場合

dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com
changetype: modify
replace: mail

mail: user001_Fujitsu@interstage.fujitsu.com

◆複数の属性値から特定の属性値の置換え

  対象の属性値を削除してから、置き換える値で追加します。

  User001のエントリ情報が次の状態であるとします。

dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
cn: User001
sn: Fujitsu
telephonenumber: 7777-1234
telephonenumber: 7777-5678

telephonenumber 7777-1234 を 7777-9001 で置き換える場合

dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com
changetype: modify
delete: telephonenumber
telephonenumber: 7777-1234
-
add: telephonenumber
telephonenumber: 7777-9001

  この結果、User001のエントリ情報は次のようになります。

dn: cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
cn: User001
sn: Fujitsu
telephonenumber: 7777-5678
telephonenumber: 7777-9001

  例中に記載のオブジェクトクラス、属性については、それぞれ、“付録A オブジェクトクラス一覧”、“付録B 属性一覧”を参照してください。

エントリの識別名変更

  changetype行に“modrdn”を指定します。さらに、次行にエントリの識別名変更の詳細方法を指定します。
  識別名変更の詳細方法は、以下の2つです。この順序で指定します。

  1. newrdn: 新しいRDN

  2. deleteoldrdn: (1|0)
    新しいRDNに変更した後、古いRDNを削除する場合は“1”、属性値として残す場合は“0”を指定します。

  “deleteoldrdn”は省略できます。省略すると古いRDNを削除します。
  次の書式で記述します。

dn: エントリのDN
changetype: modrdn
newrdn: 新しいRDN
deleteoldrdn: (1|0)

User002のエントリのRDNを、U002に変更する場合

dn: cn=User002,ou=User,ou=interstage,o=fujitsu,dc=com
changetype: modrdn
newrdn: cn=U002
deleteoldrdn: 1

  例中に記載のオブジェクトクラス、属性については、それぞれ、“付録A オブジェクトクラス一覧”、“付録B 属性一覧”を参照してください。

未サポートのLDIF記述

  “RFC2849”(June. 2000) に定義されている以下の機能は、Interstage ディレクトリサービスでは未サポートです。

5.5.1.3 LDIFファイルを使用したエントリデータの登録

  以下に、ldapmodifyコマンドとLDIFファイルを使用したエントリデータの登録例を示します。

  管理者用DN、およびパスワードには、Interstage管理コンソールを使用して、[システム] > [サービス] > [リポジトリ] > [新規作成]タブ(管理サーバの場合は、[一括操作] > [Interstage管理コンソール] > [Interstage Application Server] > [セキュリティ] > [リポジトリ] > [新規作成]タブ)から、リポジトリを作成した時に設定した管理者用DN、およびパスワードを指定してください。


  管理者用DN  “cn=manager,ou=interstage,o=fujitsu,dc=com”
  管理者用DNのパスワード  admin
  リポジトリのホスト名  hostname
  ポート番号  389


  LDIFファイル  C:\Interstage\IREP\sample\ldif\addldif.txt

ldapmodify -H ldap://hostname:389 -D "cn=manager,ou=interstage,o=fujitsu,dc=com" -w admin -a -f C:\Interstage\IREP\sample\ldif\addldif.txt


  LDIFファイル  /opt/FJSVirep/sample/ldif/addldif.txt

/opt/FJSVirepc/bin/ldapmodify -H ldap://hostname:389 -D "cn=manager,ou=interstage,o=fujitsu,dc=com" -w admin -a -f /opt/FJSVirep/sample/ldif/addldif.txt

  ldapmodifyコマンドの詳細は、“リファレンスマニュアル(コマンド編)”の“Interstage ディレクトリサービス運用コマンド”を参照してください。