Novell(R)インポート/エクスポート変換ユーティリティは次の操作に使用できます。
Novellインポート/エクスポート変換ユーティリティは、形式に応じてデータを読み書きするための一連のハンドラを管理します。データを読み込むハンドラをソースハンドラと呼び、データを書き込むハンドラをターゲットハンドラと呼びます。1つの実行可能モジュールがソースハンドラとターゲットハンドラの両方として機能することもあります。Novellインポート/エクスポート変換エンジンは、ソースハンドラからデータを受け取ってそれを処理し、処理したデータをターゲットハンドラに渡します。
たとえば、LDIFデータをLDAPディレクトリにインポートする場合、Novellインポート/エクスポート変換エンジンは、LDIFソースハンドラを使用してLDIFファイルを読み込み、読み込んだデータをLDAPターゲットハンドラを使用してLDAPディレクトリサーバに送信します。
Novellインポート/エクスポート変換機能には、コマンドラインから実行したり、ConsoleOneTMスナップインとして実行できるクライアントユーティリティがあります。ただし、カンマ区切りのデータに対応したハンドラは、コマンドラインからだけ実行できるユーティリティです。
Novellインポート/エクスポート変換機能は、次のどちらかの方法で使用できます。
Novellインポート/エクスポート変換エンジンには、ウィザードからもコマンドラインインタフェースからもアクセスできます。ただし、ソースハンドラとターゲットハンドラの組み合わせの選択肢は、コマンドラインインタフェースを使用する場合のほうが多くなります。
NDSおよびeDirectoryの旧バージョンで提供されていたBULKLOADユーティリティとZONEIMPORTユーティリティはどちらも、Novellインポート/エクスポート変換機能に変更されました。
LDIFファイルの構文、構造、およびデバッグの詳細については、「LDIFファイルのトラブルシューティング」を参照してください。
Novell eDirectoryインポート/エクスポートウィザードは、ConsoleOneスナップインの1つで、次の操作に使用します。
ConsoleOneで、[ウィザード]>[NDSインポート/エクスポート]の順に選択します。
[LDIFファイルをインポートする]>[次へ]の順にクリックします。
インポートするデータを含むLDIFファイルの名前を入力し、[次へ]をクリックします。
LDIFソースハンドラのオプションを他にも設定する場合は、[詳細]をクリックします。使用できるオプションの詳細については、[詳細]ダイアログボックスの[ヘルプ]をクリックしてください。
データをインポートするLDAPサーバを選択します。
複数のサーバの情報を格納し、各サーバの情報ごとに名前を付けることもできます。新しいサーバを追加するには、[新規]をクリックします。
「表 26」に示す情報を追加します。
表 26. LDAPサーバのオプション
[次へ]>[終了]の順にクリックし、LDIFのインポートを開始します。
ConsoleOneで、[ウィザード]>[NDSインポート/エクスポート]の順に選択します。
[LDIFファイルのエクスポート]>[次へ]の順にクリックします。
エクスポートしたいエントリが格納されているLDAPサーバを選択します。
複数のサーバの情報を格納し、各サーバの情報ごとに名前を付けることもできます。新しいサーバを追加するには、[新規]をクリックします。LDAPソースハンドラのオプションを他にも設定するには、[詳細]をクリックします。使用できるオプションの詳細については、[詳細]ダイアログボックスの[ヘルプ]をクリックしてください。
「表 27」に示す情報を追加します。
表 27. LDAPサーバのオプション
[次へ]をクリックします。
エクスポートするエントリの検索条件を次のように指定します。
表 28. 検索条件のオプション
オプション | 説明 |
---|---|
ベースDN |
検索リクエストのベース識別名を入力します。このフィールドを指定しなかった場合、デフォルトのベースDNである""(空の文字列)が使用されます。 |
スコープ |
検索リクエストのスコープを指定します。 |
フィルタ |
RFC 1558準拠の検索フィルタを入力します。デフォルトは「objectclass=*」です。 |
属性 |
検索エントリごとに取得したい属性を指定します。 |
[次へ]をクリックします。
エクスポート情報を格納するLDIFファイルの名前を入力し、[次へ]をクリックします。
[終了]をクリックして、LDIFのエクスポートを開始します。
ConsoleOneで、[ウィザード]>[NDSインポート/エクスポート]の順に選択します。
[LDAPサーバ間でデータを移行]>[次へ]の順にクリックします。
移行したいエントリが格納されているLDAPサーバを選択します。
複数のサーバの情報を格納し、各サーバの情報ごとに名前を付けることもできます。新しいサーバを追加するには、[新規]をクリックします。LDAPソースハンドラのオプションを他にも設定するには、[詳細]をクリックします。使用できるオプションの詳細については、[詳細]ダイアログボックスの[ヘルプ]をクリックしてください。
表 29に示す情報を追加します。
表 29. LDAPサーバのオプション
[次へ]をクリックします。
移行するエントリの検索条件を次のように指定します。
表 30. 検索条件のオプション
オプション | 説明 |
---|---|
ベースDN |
検索リクエストのベース識別名を入力します。このフィールドを指定しなかった場合、デフォルトのベースDNである""(空の文字列)が使用されます。 |
スコープ |
検索リクエストのスコープを指定します。 |
フィルタ |
RFC 2254準拠の検索フィルタを入力します。デフォルトは「objectclass=*」です。 |
属性 |
検索エントリごとに取得したい属性を指定します。 |
[次へ]をクリックします。
データを移行するLDAPサーバを選択します。
[次へ]>[終了]の順にをクリックします。
Novellインポート/エクスポート変換ユーティリティのコマンドラインバージョンは、次の操作に使用できます。
Novellインポート/エクスポート変換機能は、ConsoleOneの一部としてインストールされます。Win32*バージョン(ICE.EXE)とNetWare(R)バージョン(ICE.NLM)の両方がインストールされます。LinuxおよびSolarisシステムの場合、インポート/エクスポートユーティリティは、NDSadmutlパッケージに含まれています。
Novellインポート/エクスポート変換ユーティリティは、次の構文で起動します。
ice general_options
-S[LDIF | LDAP | DELIM] source_options
-D[LDIF | LDAP | DELIM] destination_options
一般オプションの指定は任意です。ただし、指定する場合はソースハンドラオプションやターゲットハンドラオプションより前に指定します。-S(ソース)ハンドラセクションと-D(ターゲット)ハンドラセクションはどちらを先に指定してもかまいません。
利用できるソースハンドラとターゲットハンドラは次のとおりです。
一般オプションは、Novellインポート/エクスポート変換エンジンの処理全体に影響のあるオプションです。
表 31. 一般オプション
オプション | 説明 |
---|---|
-l log_file |
出力メッセージ(エラーメッセージなど)を書き込むログファイルの名前を指定します。このオプションを指定しなかった場合、エラーメッセージはice.logに出力されます。 LinuxおよびSolarisシステムでは、このオプションを指定しなかった場合、エラーメッセージのログは記録されません。 |
-o |
既存のログファイルを上書きする場合に指定します。このフラグを設定しなかった場合、メッセージは既存のログファイルの末尾に追加されます。 |
-e LDIF_error_log_ file |
正常に処理されなかったエントリを書き込むファイルの名前を指定します。エントリはLDIF形式で書き込まれます。このファイルは、内容を調べてエラーを修正したうえで元のディレクトリに再適用できます。 |
-p URL |
インポート/エクスポート変換エンジンが使用するXML配置ルールが格納されている場所を指定します。配置ルールはエントリの位置を変更するときに使用します。詳細については、「変換ルール」を参照してください。 |
-c URL |
インポート/エクスポート変換エンジンが使用するXML作成ルールが格納されている場所を指定します。作成ルールは、インポート時にエントリを正しく作成するために必要な情報が欠落している場合にそれを補うために使用します。詳細については、「変換ルール」を参照してください。 |
-s URL |
インポート/エクスポート変換エンジンが使用するXMLスキーママッピングルールが格納されている場所を指定します。スキーママッピングルールは、エクスポート元サーバからインポートするエントリのオブジェクトクラスと属性タイプをすべて受け付けることができるように、インポート先サーバ上のスキーマを拡張するときに使用します。 スキーママッピングルールは、エクスポート元サーバのスキーマエレメントを、インポート先サーバ上の同等ではあるが異なるスキーマエレメントにマッピングするときにも使用できます。詳細については、「変換ルール」を参照してください。 |
ソースハンドラオプション(-S)で、インポートするデータのソースを決定します。コマンドラインには、次のうちの1つだけを指定できます。
表 32. ソースハンドラのオプション
オプション | 説明 |
---|---|
-SLDIF |
LDIFファイルをソースとして指定します。 サポートされているLDIFオプションのリストについては、「LDIFソースハンドラのオプション」を参照してください。 |
-SLDAP |
LDAPサーバをソースとして指定します。 サポートされているLDAPオプションのリストについては、「LDAPソースハンドラのオプション」を参照してください。 |
-SDELIM |
カンマ区切りのデータファイルをソースとして指定します。 サポートされているDELIMオプションのリストについては、「DELIMソースハンドラのオプション」を参照してください。 |
ターゲットハンドラオプション(-D)で、エクスポートするデータの書き込み先を決定します。コマンドラインには、次のうちの1つだけを指定できます。
表 33. ターゲットハンドラのオプション
オプション | 説明 |
---|---|
-DLDIF |
LDIFファイルを書き込み先として指定します。 サポートされているオプションのリストについては、「LDIFターゲットハンドラのオプション」を参照してください。 |
-DLDAP |
LDAPサーバを書き込み先として指定します。 サポートされているオプションのリストについては、「LDAPターゲットハンドラのオプション」を参照してください。 |
-DDELIM |
カンマ区切りのデータファイルを書き込み先として指定します。 サポートされているオプションのリストについては、「DELIMターゲットハンドラのオプション」を参照してください。 |
LDIFソースハンドラは、LDIFファイルからデータを読み込んで、それをNovellインポート/エクスポート変換エンジンに送ります。
表 34. LDIFソースハンドラのオプション
LDIFターゲットハンドラは、Novellインポート/エクスポート変換エンジンからデータを受け取り、そのデータをLDIFファイルに書き込みます。
表 35. LDIFターゲットハンドラのオプション
オプション | 説明 |
---|---|
-f LDIF_file |
LDIFレコードの書き込み先になるファイルの名前を指定します。 LinuxおよびSolarisシステムでは、このオプションを指定しなかった場合、出力データはstdoutに送られます。 |
-v |
ハンドラの冗長モードを有効にします。 |
LDAPソースハンドラは、検索リクエストを該当するLDAPサーバに送信することによってそのサーバからデータを読み込みます。LDAPソースハンドラは、検索操作の結果として受け取った検索エントリをNovellインポート/エクスポート変換エンジンに送ります。
表 36. LDAPソースハンドラのオプション
オプション | 説明 |
---|---|
-s server_name |
ハンドラが検索リクエストを送るときの送信先LDAPサーバのDNS名またはIPアドレスを指定します。デフォルトはローカルホストです。 |
-p port |
server_nameで指定したLDAPサーバのポート番号を整数で指定します。デフォルトは389です。セキュリティ保護された処理の場合、デフォルトポートは636です。 |
-d DN |
サーバによって指定されたバインド操作に使用するエントリの識別名を指定します。 |
-w password |
DNで指定したエントリのパスワード属性を指定します。 |
-W |
DNで指定したエントリのパスワードの入力を求めるプロンプトが表示されます。 このオプションは、LinuxおよびSolarisにのみ適用されます。 |
-F filter |
RFC 1558準拠の検索フィルタを指定します。このオプションを指定しなかった場合、デフォルトの検索フィルタである「objectclass=*」が使用されます。 |
-n |
実際の検索は行わず、検索の条件などを表示して確認する場合に指定します。 |
-a attribute_list |
検索対象の属性をカンマ区切りのリスト形式で指定します。属性名のリストを指定するか、次のいずれかを指定します。
このオプションを省略した場合、属性リストは空のリスト(デフォルト)になります。 |
-o attribute_list |
LDAPサーバから受け取った検索結果をインポート/エクスポート変換エンジンに送信する前に、その検索結果から削除する属性をカンマ区切りのリスト形式で指定します。このオプションは、-aオプションでワイルドカードを指定して特定のクラスの属性を初めにすべて検索してから、その検索結果をインポート/エクスポート変換エンジンに渡す前に一部の属性を削除したい場合に便利です。 たとえば、「-a* -o telephoneNumber」と指定すると、ユーザレベルの属性がすべて検索された後で、その検索結果からtelephoneNumber属性が削除されます。 |
-R |
照会結果を自動的に適用しない場合に指定します。デフォルトでは、-dおよび-wオプションで指定された名前とパスワードによる照会結果が自動的に適用されます。 |
-e value |
LDAPクライアントSDKで有効にするデバッグフラグを指定します。詳細については、「LDAP SDKデバッギングフラグを使用する」を参照してください。 |
-b base_DN |
検索リクエストのベース識別名を指定します。このオプションを指定しなかった場合、デフォルトのベースDNである""(空の文字列)が使用されます。 |
-c search_scope |
検索リクエストのスコープを指定します。有効な値は次のとおりです。
このオプションを省略した場合、検索スコープのデフォルトの「One」が使用されます。 |
-r deref_aliases |
検索時に別名を逆参照する方法を指定します。指定できる値は次のとおりです。
このオプションを省略した場合は、別名逆参照の方式のデフォルトである「Never」が使用されます。 |
-l time_limit |
検索の制限時間を秒単位で指定します。 |
-z size _limit |
検索結果として取得できるエントリの最大数を指定します。 |
-V version |
接続に使用するLDAPプロトコルのバージョンを指定します。2または3を指定します。このオプションを省略した場合のデフォルト値は3です。 |
-v |
ハンドラの冗長モードを有効にします。 |
-L filename |
SSL認証に使用するサーバキーが格納されているDER形式のファイルを指定します。 |
-A |
属性名だけを取得したいときに指定します。このオプションを指定した場合、出力される検索結果に属性値は含まれません。 |
LDAPターゲットハンドラは、Novellインポート/エクスポート変換エンジンからデータを受け取り、それをLDAPサーバに送信します。データは更新操作の形で送信され、送信先サーバによって実行されます。
表 37. LDAPターゲットハンドラのオプション
オプション | 説明 |
---|---|
-s server_name |
ハンドラが検索リクエストを送るときの送信先LDAPサーバのDNS名またはIPアドレスを指定します。デフォルトはローカルホストです。 |
-p port |
server_nameで指定したLDAPサーバのポート番号を整数で指定します。デフォルトは389です。セキュリティ保護された処理の場合、デフォルトポートは636です。 |
-d DN |
サーバによって指定されたバインド操作に使用するエントリの識別名を指定します。 |
-w password |
DNで指定したエントリのパスワード属性を指定します。 |
-W |
DNで指定したエントリのパスワードの入力を求めるプロンプトが表示されます。 このオプションは、LinuxおよびSolarisにのみ適用されます。 |
-B |
サーバへの更新操作の転送に非同期LBURP(LDAP Bulk Update/Replication Protocol)リクエストを使用しない場合は、このオプションを指定します。標準の同期LDAP更新操作リクエストを使用します。詳細については、「LBURP(LDAP Bulk Update/Replication Protocol)」を参照してください。 |
-F |
前方参照を作成可能にしたい場合は、このオプションを指定します。作成するエントリのペアレントが存在しない場合、エントリが正常に作成できるよう、そのエントリのペアレントに対応するプレースフォルダが作成されます。このプレースフォルダを前方参照といいます。後の操作でペアレントが作成されると、前方参照は通常のエントリに変更されます。 |
-l |
パスワード値の格納にNMAS(Novell Modular Authentication Service)の通常パスワード方式を使用する場合は、このオプションを指定します。通常パスワード方式の場合、パスワードはディレクトリ内の安全な場所で保持されますが、キーのペアはサーバ間での認証で実際に必要になるまで生成されません。これにより、パスワード情報を持つオブジェクトのロードにかかる時間を短縮できます。 |
-e value |
LDAPクライアントSDKで有効にするデバッグフラグを指定します。詳細については、「LDAP SDKデバッギングフラグを使用する」を参照してください。 |
-V version |
接続に使用するLDAPプロトコルのバージョンを指定します。2または3を指定します。このオプションを省略した場合のデフォルト値は3です。 |
-v |
ハンドラの冗長モードを有効にします。 |
-L filename |
SSL認証に使用するサーバキーが格納されているDER形式のファイルを指定します。 |
DELIMソースハンドラはカンマ区切りのデータファイルからデータを読み込み、それをターゲットハンドラに送信します。
表 38. DELIMソースハンドラのオプション
オプション | 説明 |
---|---|
-f filename |
DELIMソースハンドラによって読み込まれるカンマ区切りのレコードを含んだファイルの名前を指定します。これらのDELIMレコードはターゲットハンドラに送信されます。 |
-F value |
-fで指定したファイルに対する属性のデータオーダを含んだファイルの名前を指定します。詳細な情報については、「カンマ区切りのインポートを実行する」を参照してください。 |
-t value |
カンマ区切りの属性リストです。このリストによって、-fで指定されたファイルに対する属性のデータオーダを指定します。このオプションまたは-Fオプションのいずれかを指定する必要があります。詳細については、「カンマ区切りのインポートを実行する」を参照してください。 |
-c |
エラーが発生してもDELIMソースハンドラの処理を続行したい場合に指定します。ここでいうエラーとは、カンマ区切りデータファイルの解析エラーや、ターゲットハンドラからのエラー返信などです。このオプションが設定されている場合にエラーが発生すると、DELIMソースハンドラは、エラーを報告したうえで、カンマ区切りデータファイル内の次のレコードを検出し、処理を続行します。 |
-n value |
新しいオブジェクトにLDAPネーミング属性を指定します。この属性は、-Fまたは-tを使用して指定する属性データに含まれている必要があります。 |
-l value |
RDNの追加先のパスを指定します(o=myCompanyなど)DNを渡す場合は、この値は必要ありません。 |
-o value |
オブジェクトクラスのカンマ区切りのリスト(入力ファイルに含まれていない場合)、または補助クラスなどその他のオブジェクトクラスを指定します。デフォルト値は「inetorgperson」です。 |
-i value |
スキップする列のカンマ区切りのリストです。この値には、スキップする列の数を整数で指定します。たとえば3列目と5列目をスキップする場合は、「3,5」と指定します。 |
-d value |
区切り記号を指定します。デフォルトの区切り記号はカンマ(,)です。 |
-q value |
セカンダリ区切り記号を指定します。デフォルトのセカンダリ区切り記号は一重引用符(' ')です。 |
DELIMターゲットハンドラはソースハンドラからデータを受け取り、そのデータをカンマ区切りのデータファイルに書き込みます。
表 39. DELIMターゲットハンドラのオプション
ここでは、Novellインポート/エクスポート変換ユーティリティのコマンドラインバージョンで次の操作を行う場合のコマンドの例を紹介します。
LDIFのインポートを実行するには、LDIFソースハンドラとLDAPターゲットハンドラを組み合わせて次の例のように指定します。
ice -S LDIF -f entries.ldif -D LDAP -s server1.acme.com -p 389 -d cn=admin,c=us -w secret
コマンドラインでこのように指定すると、LDIFデータがENTRIES.LDIFから読み込まれ、ポート389にあるLDAPサーバserver1.acme.comに送られます。送信時の識別子は「cn=admin,c=us」、パスワードは「secret」になります。
LDIFのエクスポートを実行するには、LDAPソースハンドラとLDIFターゲットハンドラを組み合わせて次の例のように指定します。
ice -S LDAP -s server1.acme.com -p 389 -d cn=admin,c=us -w password -F objectClass=* -c sub -D LDIF -f server1.ldif
コマンドラインでこのように指定すると、識別子「cn=admin,c=us」およびパスワード「password」を使用してサブツリー検索が実行され、ポート389にあるLDAPサーバserver1.acme.com内のオブジェクトがすべて検出されます。結果のデータはLDIF形式でSERVER1.LDIFに出力されます。
カンマ区切りのインポートを実行するには、コマンドを次の例のように指定します。
ice -SDELIM -fc:\tmp\in.csv -Fc:\tmp\order.csv -ncn -lo=acme -DLDAP -sserver1.acme.com -p389 -dcnadmin,c=us -wsecret
コマンドをこのように指定すると、C:\TMP\IN.CSVファイルからカンマ区切りの値が読み込まれ、C:\TMP\ORDER.CSVファイルから属性の順序が読み込まれます。IN.CSV内の各属性エントリに対して、ORDER.CSVで属性タイプが指定されます。たとえば、IN.CSVに次の値があるとします。
pat,engineer,555-1212,pat@acme.com,"Acme, Inc."
この場合、ORDER.CSVに含まれる値は次のようになります。
cn,title,phonenumber,emailaddress,company
ORDER.CSVの情報は、-tオプションを使用して直接指定することもできます。
次にデータは、識別子「cn=admin,c=us」、およびパスワード「secret」を使用して、ポート389でLDAPサーバserver1.acme.comに送られます。
この例では、-nオプションを使用して、cnがオブジェクトの新しいDNになるように指定し、-lオプションを使用して、このオブジェクトが組織コンテナacmeに追加されるようにします。
カンマ区切りのエクスポートを実行するには、コマンドを次の例のように指定します。
ice -SLDAP -sserver1.acme.com -p389 -dcn=admin,c=us -wpassword -lobjectClass=* -csub -DDELIM -fc:\tmp\server1.csv -Forder.csv
コマンドラインでこのように指定すると、識別子「cn=admin,c=us」およびパスワード「password」を使用してサブツリー検索が実行され、ポート389にあるLDAPサーバserver1.acme.com内のオブジェクトがすべて検出されます。結果のデータはカンマ区切りの形式でC:\TMP\SERVER1.CSVファイルに出力されます。
LDAPサーバ間でデータを移行するには、LDAPソースハンドラとLDAPターゲットハンドラを組み合わせて次の例のように指定します。
ice -S LDAP -s server1.acme.com -p 389 -d cn=admin,c=us -w password -F objectClass=* -c sub -D LDAP -s server2.acme.com -p 389 -d cn=admin,c=us -w secret
コマンドラインでこのように指定すると、識別子「cn=admin,c=us」およびパスワード「password」を使用してサブツリー検索が実行され、ポート389にあるLDAPサーバserver1.acme.com内のオブジェクトがすべて検出されます。結果のデータは、識別子「cn=admin,c=us」およびパスワード「secret」で、ポート389にあるLDAPサーバserver2.acme.comに送られます。
Novellインポート/エクスポート変換エンジンは、ソースハンドラから受け取ったレコードをターゲットハンドラに送る前に、レコードに対して変換処理を行います。この変換処理の内容は一連のルールを使用して指定できます。これらのルールはXMLで記述します(XMLファイルとして作成される場合と、XML用ディレクトリ内に格納されたXMLデータとして作成される場合があります)。このルールにより、LDAPディレクトリ間でのエントリのインポート時に、次の問題が解決されます。
次の3種類の変換ルールがあります。
表 40. 変換ルール
ルール | 説明 |
---|---|
配置 |
配置ルールはエントリの位置を変更するときに使用します。たとえば、あるユーザグループをいったんl=San Francisco, c=USというコンテナにインポートし、インポートが終わった後でl=Los Angeles, c=USというコンテナに移したい場合などに、配置ルールを利用できます。これらのルールの形式については、「配置ルール」を参照してください。 |
作成 |
作成ルールは、インポート時にエントリを正しく作成するために必要な情報が欠落している場合にそれを補うために使用します。 たとえば、LDIFデータのエクスポート元サーバのスキーマではユーザエントリに必要とされる属性がcn(commonName)属性だけであるのに対し、LDIFデータのインポート先サーバのスキーマではcn属性の他にsn(surname)属性も必要とされる場合が考えられます。このような場合は、作成ルールを使用することにより、インポート/エクスポート変換エンジンが各エントリを処理するときに、そのエントリにデフォルトのsn値(""など)が設定されるようにできます。これにより、各エントリはインポート先サーバに送信されるときには必要な属性であるsn属性を持つことになり、エントリの正常な追加が保証されます。これらのルールの形式については、「作成ルール」を参照してください。 |
スキーママッピング |
サーバ間でデータを転送する場合には、直接転送するかLDIFを使用するかに関係なく、転送元サーバのスキーマと転送先サーバのスキーマはほとんどの場合異なっています。状況によっては、転送元サーバから転送するエントリのオブジェクトクラスと属性タイプをすべて受け付けることができるように転送先サーバ上のスキーマを拡張しなければならない場合も考えられます。 同じく、状況によっては、転送元サーバのスキーマエレメントを、転送先サーバ上の同等ではあるが異なるスキーマエレメントにマッピングしなければならない場合も考えられます。その場合にはスキーママッピングルールを利用できます。これらのルールの形式については、「スキーママッピングルール」を参照してください。 |
これらの変換ルールは、Novell eDirectoryインポート/エクスポートウィザードとコマンドラインインタフェースのどちらでも利用できます。XMLルールの詳細については、「XMLルールを使用する」を参照してください。
ConsoleOneで、[ウィザード]>[NDSインポート/エクスポート]の順に選択します。
実行するタスクをクリックします。
[詳細]をクリックし、次のオプションを指定します。
オプション | 説明 |
---|---|
スキーマルール |
インポート/エクスポート変換エンジンが使用するXMLスキーママッピングルールが格納されている場所を指定します。 |
配置ルール |
インポート/エクスポート変換エンジンが使用するXML配置ルールが格納されている場所を指定します。 |
作成ルール |
インポート/エクスポート変換エンジンが使用するXML作成ルールが格納されている場所を指定します。 |
[閉じる]をクリックします。
表示される指示に従って、選択したタスクを完了します。
コマンドラインバージョンで変換ルールを使用するには、Novellインポート/エクスポート変換ユーティリティの実行ファイルを起動するときに、使用したいルールに対応する一般オプション(-p、-c、または-s)を指定します。詳細については、「一般オプション」を参照してください。
表 41. 変換ルールのオプション
すべての3つのオプションで、URLを次のいずれかに指定します。
file://[path/]filename
ファイルは、ローカルファイルシステムに存在する必要があります。
Novellインポート/エクスポート変換ルールで使用されるXML形式は、DirXMLの場合と同じです。DirXMLの詳細については、『DirXML管理ガイド』を参照してください。
スキーママッピングルールの最上位エレメントは、<attr-name-map>です。インポートスキーマとエクスポートスキーマの対話方法は、マッピングルールによって決まります。マッピングルールは、指定されたインポートクラスの定義や属性を、対応するエクスポートスキーマの定義に関連付けます。
マッピングルールは、属性名またはクラス名に対応させて設定します。
スキーママッピングルールの正式なDTD定義を次に示します。
<!ELEMENT attr-name-map (attr-name | class-name)*>
<!ELEMENT attr-name (nds-name, app-name)>
<!ATTLIST attr-name
class-name CDATA #IMPLIED>
<!ELEMENT class-name (nds-name, app-name)>
<!ELEMENT nds-name (#PCDATA)>
<!ELEMENT app-name (#PCDATA)>
複数のマッピングエレメントをファイルに定義できます。各エレメントは、ファイルに定義されている順番で処理されます。1つのクラスまたは属性を複数回マッピングした場合は、最初のマッピングが優先されます。
スキーママッピングルールの作成例を次に示します。
スキーマルール1: 次のルールでは、inetOrgPersonクラスについて、ソースのsurname属性をターゲットのsn属性にマッピングします。
<attr-name-map>
<attr-name class-name="inetOrgPperson">
<nds-name>surname</nds-name>
<app-name>sn</app-name>
</attr-name>
</attr-name-map>
スキーマルール2: 次のルールでは、ソースのinetOrgPersonクラスの定義をターゲットのUserクラスの定義にマッピングします。
<attr-name-map>
<class-name>
<nds-name>inetOrgPerson</nds-name>
<app-name>User</app-name>
</class-name>
</attr-name-map>
スキーマルール3: 次の例では、2種類のルールを定義します。1つ目のルールでは、Surname属性を使用するすべてのクラスについて、ソースのSurname属性をターゲットのsn属性にマッピングします。2つ目のルールでは、ソースのinetOrgPersonクラスの定義をターゲットのUserクラスの定義にマッピングします。
<attr-name-map>
<attr-name>
<nds-name>surname</nds-name>
<app-name>sn</app-name>
</attr-name>
<class-name>
<nds-name>inetOrgPerson</nds-name>
<app-name>User</app-name>
</class-name>
</attr-name-map>
コマンドの例: スキーマルールをSR1.XMLファイルに保存し、次のコマンドを指定することにより、1ENTRY.LDFファイルの処理中にそのルールを使用すること、および結果をターゲットファイルOUTT1.LDFに送ることがインポート/エクスポート変換ユーティリティに指示されます。
ice -o -sfile://sr1.xml -SLDIF -f1entry.ldf -c -DLDIF
-foutt1.ldf
作成ルールによって、宛先ディレクトリ内に新規エントリを作成する場合の条件が指定されます。次のエレメントがサポートされます。
必須属性: すべての必須属性について、追加レコードに値が必要であること、値がない場合には追加が失敗することを指定します。作成ルールでは、必須属性のデフォルト値を指定できます。レコードに属性値がない場合、そのエントリにはデフォルト値が使用されます。レコードに属性値がある場合は、そのレコード値が使用されます。
一致属性: 追加レコードに特定の属性が必要であり、特定の値に一致すること、そうでない場合には追加が失敗することを指定します。
テンプレート: eDirectory内のテンプレートオブジェクトの識別名を指定します。現時点では、Novellインポート/エクスポート変換ユーティリティの作成ルールにテンプレートを指定することはできません。
作成ルールの正式なDTD定義を次に示します。
<!ELEMENT create-rules (create-rule)*>
<!ELEMENT create-rule (match-attr*,
required-attr*,
template?)>
<!ATTLIST create-rule
class-name CDATA #IMPLIED
description CDATA #IMPLIED>
<!ELEMENT match-attr (value)+ >
<!ATTLIST match-attr
attr-name CDATA #REQUIRED>
<!ELEMENT required-attr (value)*>
<!ATTLIST required-attr
attr-name CDATA #REQUIRED>
<!ELEMENT template EMPTY>
<!ATTLIST template
template-dn CDATA #REQUIRED>
複数の作成ルールをファイルに定義できます。各ルールは、ファイルに定義されている順番で処理されます。ルールに適合しないレコードがあると、そのレコードはスキップされますが、レコードのスキップによるエラーは生成されません。
作成ルールの形式例を次に示します。
作成ルール1: 次に紹介するルールでは、inetOrgPersonクラスの追加レコードに次の3つの条件が適用されます。追加レコードには、givenName属性およびSurname属性が必要です。追加レコードにはL属性が必要ですが、この属性値がない場合には、作成ルールによってデフォルト値Provoに設定されます。
<create-rules>
<create-rule class-name="inetOrgPerson">
<required-attr attr-name="givenName"/>
<required-attr attr-name="surname"/>
<required-attr attr-name="L">
<value>Provo</value>
</required-attr>
</create-rule>
</create-rules>
作成ルール2: 次に紹介する作成ルールでは、ベースクラスの種類に関係なく、すべての追加レコードに次の3つの条件が適用されます。
<create-rules>
<create-rule>
<required-attr attr-name="givenName"/>
<required-attr attr-name="Surname"/>
<required-attr attr-name="L">
<value>Provo</value>
</required-attr>
</create-rule>
</create-rules>
作成ルール3: 次に紹介する作成ルールでは、ベースクラスの種類に関係なく、すべての追加レコードに次の2つの条件が適用されます。
<create-rules>
<create-rule>
<match-attr attr-name="uid">
<value>cn=ratuid</value>
</match-attr>
<required-attr attr-name="L">
<value>Provo</value>
</required-attr>
</create-rule>
</create-rules>
コマンドの例: 作成ルールをCRL.XMLファイルに保存すると、次のコマンドによって、1ENTRY.LDFファイルの処理中にそのルールを使用すること、および結果をターゲットファイルOUTT1.LDFに送ることがインポート/エクスポート変換ユーティリティに指示されます。
ice -o -cfile://cr1.xml -SLDIF -f1entry.ldf -c -DLDIF
-foutt1.ldf
配置ルールによって、宛先ディレクトリ内でエントリが作成される位置が決まります。配置ルールでは、次の3つの条件を使用して、エントリの配置にそのルールを適用すべきかどうかを決定します。
クラス一致: 配置ルールにmatch classエレメントが定義されている場合、レコードに定義されているobjectClassは、ルールのclass-name属性に一致する必要があります。一致しない場合、そのレコードには配置ルールが使用されません。
属性一致: 配置ルールにmatch attributeエレメントが定義されている場合、レコードでは、match attributeエレメントに定義されている各属性について属性値が必要です。一致しない場合、そのレコードには配置ルールが使用されません。
パス一致: 配置ルールにmatch pathエレメントが定義されている場合、レコードのdn部分は、match pathエレメントに定義されているプリフィックスに一致する必要があります。一致しない場合、そのレコードには配置ルールが使用されません。
ルールの最後のエレメントによって、エントリの配置場所が決まります。配置ルールでは、必要に応じて次のオプションを指定できます。
解析済み文字データ: 解析済み文字データを使用して、エントリに使用するコンテナのDNを指定します。
名前をコピー: 古いDNのRDNを、エントリの新しいDNで使用することを指定します。
属性をコピー: エントリの新しいDNで使用するネーミング属性を指定します。指定されたネーミング属性は、エントリのベースクラスのネーミング属性として有効でなければなりません。
パスをコピー: ソースDNをターゲットDNとして使用することを指定します。
パスサフィックスをコピー: ソースDNのパスの一部をターゲットDNとして使用することを指定します。match-pathエレメントを指定した場合、古いDNのパスの一部、つまり、match-pathエレメントのプリフィックス属性に一致する部分だけが、エントリのDNの一部として使用されます。
配置ルールの正式なDTD定義を次に示します。
<!ELEMENT placement-rules (placement-rule*)>
<!ATTLIST placement-rules
src-dn-format (%dn-format;) "slash"
dest-dn-format (%dn-format;) "slash"
src-dn-delims CDATA #IMPLIED
dest-dn-delims CDATA #IMPLIED>
<!ELEMENT placement-rule (match-class*,
match-path*,
match-attr*,
placement)>
<!ATTLIST placement-rule
description CDATA #IMPLIED>
<!ELEMENT match-class EMPTY>
<!ATTLIST match-class
class-name CDATA #REQUIRED>
<!ELEMENT match-path EMPTY>
<!ATTLIST match-path
prefix CDATA #REQUIRED>
<!ELEMENT match-attr (value)+ >
<!ATTLIST match-attr
attr-name CDATA #REQUIRED>
<!ELEMENT placement (#PCDATA |
copy-name |
copy-attr |
copy-path |
copy-path-suffix)* >
複数の配置ルールエレメントをファイルに定義できます。各ルールは、ファイルに定義されている順番で処理されます。ルールに適合しないレコードがあると、そのレコードはスキップされますが、レコードのスキップによるエラーは生成されません。
配置ルールの形式例を次に示します。scr-dn-format="ldap"属性およびdest-dn-format="ldap"属性によって、ソースdnおよびターゲットdnのネームスペースがLDAP形式として定義されます。
Novellインポート/エクスポート変換ユーティリティがサポートするソース名およびターゲット名は、LDAP形式だけです。
配置例1: 次の配置ルールでは、レコードはベースクラスinetOrgPersonを持つ必要があります。レコードがこの条件に適合する場合、そのエントリはtestコンテナの直下に置かれ、ソースdnの最上位コンポーネントがエントリのdnの一部として使用されます。
<placement-rules src-dn-format="ldap" dest-dn-format="ldap">
<placement-rule>
<match-class class-name="inetOrgPerson"></match-class>
<placement>o=test<copy-name/></placement>
</placement-rule>
</placement-rules>
ベースクラスinetOrgPersonおよび次のdnを持つレコードがあるとします。
dn:cn=Kim Jones, ou=English, ou=Humanities, o=UofZ
このレコードは、例に示したルールに従って、宛先ディレクトリ内で次のdnを持ちます。
dn:cn=Kim Jones, o=test
配置例2: 次の配置ルールでは、レコードはsn属性を持つ必要があります。レコードがこの条件に適合する場合、そのエントリはtestコンテナの直下に置かれ、ソースdnの最上位コンポーネントがエントリのdnの一部として使用されます。
<placement-rules src-dn-format="ldap" dest-dn-format="ldap">
<placement-rule>
<match-attr attr-name="sn"></match-attr>
<placement>o=test<copy-name/></placement>
</placement-rule>
</placement-rules>
次のdnおよびsn属性を持つレコードがあるとします。
dn:cn=Kim Jones, ou=English, ou=Humanities, o=UofZ
sn:Jones
このレコードは、例に示したルールに従って、宛先ディレクトリ内で次のdnを持ちます。
dn:cn=Kim Jones, o=test
配置例3: 次の配置ルールでは、レコードはsn属性を持つ必要があります。レコードがこの条件に適合する場合、そのエントリはtestコンテナの直下に置かれ、sn属性がエントリのdnの一部として使用されます。copy-attrエレメントに指定された属性は、エントリのベースクラスのネーミング属性でなければなりません。
<placement-rules src-dn-format="ldap" dest-dn-format="ldap">
<placement-rule>
<match-attr attr-name="sn"></match-attr>
<placement>o=test<copy-attr attr-name="sn"/></placement>
</placement-rule>
</placement-rules>
次のdnおよびsn属性を持つレコードがあるとします。
dn:cn=Kim Jones, ou=English, ou=Humanities, o=UofZ
sn:Jones
このレコードは、例に示したルールに従って、宛先ディレクトリ内で次のdnを持ちます。
dn:cn=Jones, o=test
配置例4: 次の配置ルールでは、レコードはsn属性を持つ必要があります。レコードがこの条件に適合する場合、ソースdnがターゲットdnとして使用されます。
<placement-rules src-dn-format="ldap" dest-dn-format="ldap">
<placement-rule>
<match-attr attr-name="sn"></match-attr>
<placement><copy-path/></placement>
</placement-rule>
</placement-rules>
配置例5: 次の配置ルールでは、レコードはsn属性を持つ必要があります。レコードがこの条件に適合する場合、エントリのDN全体がtestコンテナにコピーされます。
<placement-rules src-dn-format="ldap" dest-dn-format="ldap">
<placement-rule>
<match-attr attr-name="sn"></match-attr>
<placement>o=test<copy-path-suffix/></placement>
</placement-rule>
</placement-rules>
次のdnおよびsn属性を持つレコードがあるとします。
dn:cn=Kim Jones, ou=English, ou=Humanities, o=UofZ
sn:Jones
このレコードは、例に示したルールに従って、宛先ディレクトリ内で次のdnを持ちます。
dn:cn=Kim Jones, ou=English, ou=Humanities, o=UofZ, o=test
コマンドの例: 配置ルールをPR1.XMLファイルに保存すると、次のコマンドによって、1ENTRY.LDFファイルの処理中にそのルールを使用すること、および結果をターゲットファイルFOUTT1.LDFに送ることがインポート/エクスポート変換ユーティリティに指示されます。
ice -o -pfile://pr1.xml -SLDIF -f1entry.ldf -c -DLDIF
-foutt1.ldf
Novellインポート/エクスポート変換機能では、LDAPサーバへの非同期リクエストの送信に、LBURPを使用します。これにより、リクエストは常にプロトコルで指定された順序で処理されます。複数プロセッサ間の相互関係やオペレーティングシステムのスケジューラの設定によって処理順序が変わることはありません。
LBURPにより、Novellインポート/エクスポート変換機能は、複数の更新操作を1つのリクエストとして送信したり、これらすべての更新操作に対する応答を1つのレスポンスとして受け取ることができます。これにより、プロトコルのネットワーク処理効率が向上します。
LBURPは次のように機能します。
これらのリクエストは非同期で送信することもできます。リクエストごとに通し番号が付けられ、同じクライアントから同じ接続を介して送信された個々のリクエストの順序はこの通し番号によって特定されます。各リクエストには、1つ以上のLDAP更新操作が設定されます。
LBURPプロトコルにより、Novellインポート/エクスポート変換機能は、サーバにデータを転送するときに送信元と送信先の間のネットワーク接続の限界まで転送速度を上げることができます。ネットワーク接続が十分に高速であれば、Novellインポート/エクスポート変換機能からリクエストが送られてくるのを待つ必要がないため、サーバはすべての処理時間を更新操作の処理だけに費やすことができます。
更新操作の処理効率をさらに上げるため、eDirectoryのLBURPプロセッサは、更新操作のデータベースへのコミットをグループに分けて行います。LBURPの採用により、従来の同期処理の場合と比べて、LDIFのインポート処理の効率は大幅に改善されています。
デフォルトではLBURPは有効になっていますが、LDIFのインポート中に無効にすることもできます。
LDIFのインポート中にLBURPの有効/無効を切り替えるには、次を実行します。
ConsoleOneで、[ウィザード]>[NDSインポート/エクスポート]の順に選択します。
[LDIFファイルをインポートする]>[次へ]の順にクリックします。
インポートするデータを含むLDIFファイルの名前を入力し、[次へ]をクリックします。
データをインポートするLDAPサーバを選択します。
[詳細]>[LBURPを使用]の順にクリックします。
オンライン表示される指示に従って、LDIFインポートウィザードでの残りの作業を実行します。
重要: LBURPは比較的新しいプロトコルなので、バージョン8.5以前のeDirectoryサーバとeDirectory以外のサーバの大部分は、LBURPをサポートしていません。Novell eDirectoryインポート/エクスポートウィザードを使用してLBURPをサポートしていないサーバにLDIFファイルをインポートする場合は、LDIFのインポートが正しく行われるよう、LBURPオプションを無効にします。
コマンドラインオプションを使用して、LDIFのインポート中にLBURPの有効/無効を切り替えることができます。この作業を行うには、-Bオプションを使用します。
LDAPディレクトリ間でのスキーマの移行に関する詳細については、Novell Developer Portalの「Application Notes」を参照してください。
1つのLDIFファイルに数千または数百万のレコードがある場合は、次を考慮します。
実行が可能な場合は、LDIFファイルで示されているすべてのエントリを含む、読み書き可能レプリカを持つサーバをDIFのインポート先に選択します。これによりネットワーク効率を大幅に高めることができます。
更新時には、インポート先サーバから他のeDirectoryサーバへのチェーン接続は行わないでください。これにより、パフォーマンスはかなり低下します。ただし、一部の更新対象エントリがLDAPを実行していないサーバ上だけに存在する場合には、LDIFファイルをインポートするためにチェーン接続が必要になることもあります。
レプリカとパーティション管理の詳細については、「パーティションおよびレプリカの管理」を参照してください。
Novellインポート/エクスポート変換機能では、ネットワークとeDirectoryサーバの処理をできるだけ効率化するために、ウィザードとサーバの間でのデータ転送にLBURPを使用します。LDIFのインポート時にLBURPを使用することにより、LDIFのインポートにかかる時間が大幅に短縮されます。
LBURPの詳細については、「LBURP(LDAP Bulk Update/Replication Protocol)」を参照してください。
eDirectoryで使用できるデータベースキャッシュの容量は、LDIFインポートの処理速度に大きく影響します。特に、サーバ上のエントリの総数が多いほど影響は大きくなります。LDIFのインポートでは、インポート実行中にはできるだけ多くのメモリをeDirectoryに割り当てると効率的です。インポートが完了してサーバの負荷が通常レベルに戻ったら、メモリの設定を元にもどすことができます。この方法は、eDirectoryサーバで実行する処理がインポートだけの場合に特に効果があります。
eDirectoryデータベースキャッシュの設定の詳細については、「Novell eDirectoryのメンテナンス」を参照してください。
eDirectoryでは、パブリックキーとプライベートキーのペアを使用して認証を行います。これらのキーの生成は、CPUに大きな負荷のかかる処理です。eDirectory 8.6では、パスワードの格納に、NMAS(Novell Modular Authentication Service)の通常パスワード機能を使用できます。通常パスワードを使用する場合、パスワードはディレクトリ内の安全な場所で保持されますが、キーのペアはサーバ間での認証で実際に必要になるまで生成されません。これにより、パスワード情報を持つオブジェクトのロードにかかる時間を短縮できます。
LDIFのインポート時に通常パスワードを有効にするには、次を実行します。
ConsoleOneで、[ウィザード]>[NDSインポート/エクスポート]の順にクリックします。
[LDIFファイルをインポートする]>[次へ]の順にクリックします。
インポートするデータを含むLDIFファイルの名前を入力し、[次へ]をクリックします。
データをインポートするLDAPサーバを選択します。
[詳細]>[NMAS通常パスワード/ハッシュ化パスワードを格納する]の順にクリックします。
オンライン表示される指示に従って、ウィザードでの残りの作業を実行します。
パスワードの格納に通常パスワードを使用する場合は、eDirectoryツリーへのログインおよび従来型のファイルサービスや印刷サービスへのアクセスには、NMAS対応のNovell ClientTMを使用する必要があります。サーバにはNMASがインストールされている必要があります。名前とパスワードのバインドを行うLDAPアプリケーションは、通常パスワード機能とスムーズに連携します。
NMASの詳細については、『Novell Modular Authentication Services Installation and Administration Guide』を参照してください。
不要なインデックスがあると、LDIFのインポートにかかる時間が長くなります。これは、定義されているすべてのインデックスで、設定されている属性値を持つエントリごとに追加の処理が実行されるためです。LDIFをインポートする前に、不要なインデックスがないことを確認します。インデックスを作成するときは、あらかじめデータ確認済みのプレディケート統計をロードしてインデックスが本当に必要な箇所を確認すると、不要なインデックスを減らすことができます。
インデックスの設定の詳細については、「インデックスマネージャ」を参照してください。