リモートローダは、.soまたは.jarファイルに含まれるIdentity Managerアプリケーションシムをホストできます。JavaリモートローダはJavaドライバシムのみをホストします。ネイティブ(C++)ドライバシムはロードまたはホストしません。
リモートローダを使用する前に、Identity Managerエンジンに安全に接続するようにアプリケーションシムを設定する必要があります。さらに、リモートローダとIdentity Managerドライバ両方の設定も必要です。シムの詳細については、シムの理解を参照してください。
リモートローダとIdentity Managerエンジンとの間でデータが安全に転送されるようにする必要があります。NetIQでは、通信にTLS/SSL (Transport Layer Security/Secure Socket Layer)プロトコルを使用することをお勧めします。TLS/SSL接続をサポートするには、キーストアファイルまたはKMOに適切な自己署名証明書が必要です。このセクションでは、その証明書を作成、エクスポート、および保管する方法について説明します。
メモ:Identity Managerエンジンをホストするサーバとリモートローダで同じバージョンのSSLを使用してください。サーバとリモートローダのSSLのバージョンが一致していないと、サーバから「SSL3_GET_RECORD:wrong version number」というエラーメッセージが返されます。このメッセージは単なる警告で、サーバとリモートローダ間の通信が中断されることはありませんが、エラーが表示されると混乱を招くおそれがあります。
リモートローダはクライアントのソケットを開いて、リモートインタフェースシムからの接続をリスンします。リモートインタフェースシムとリモートローダは、SSLハンドシェークを実行してセキュアなチャネルを確立します。続いて、リモートインタフェースシムはリモートローダへの認証を実行します。リモートインタフェースシムの認証が成功すると、リモートローダはリモートインタフェースシムへの認証を実行します。正規の権限によって通信が確立されていることを両側から確認できた場合にのみ、同期トラフィックが発生します。
ドライバとIdentity Managerエンジンとの間でSSL接続を確立するプロセスは、次のようにドライバのタイプによって異なります。
ネイティブのドライバ(Active Directoryドライバなど)の場合、Base64エンコード証明書を指します。詳細については、自己署名サーバ証明書の管理を参照してください。
Javaドライバの場合、キーストアを作成する必要があります。詳細については、SSL接続使用時のキーストアファイルの作成を参照してください。
メモ:リモートローダでは、リモートローダおよびIdentity Managerサーバでホストされているリモートインタフェースシムとの間の接続方法をカスタマイズできます。カスタム接続モジュールを設定する場合、接続文字列で必要な項目と使用可能な項目に関する情報については、モジュールに付属のマニュアルを参照してください。
自己署名サーバ証明書を作成してエクスポートすることで、リモートローダとIdentity Managerエンジン間のセキュアな通信を保証できます。セキュリティを追加する場合は、Suite Bによって指定されるSSL通信のより強力はサイファを設定できます。この通信では、データを暗号化するためにECDSA (Elliptic Curveデジタル署名アルゴリズム)証明書を使用する必要があります。Suite Bが有効な場合、リモートローダは、通信プロトコルとしてTLS 1.2を使用します。Suite Bの詳細については、「Suite B Cryptography」を参照してください。
新しく作成された証明書をエクスポートするか、既存の証明書を使用することができます。
メモ:サーバがツリーに参加すると、eDirectoryによって次のデフォルトの証明書が作成されます。
SSL CertificateIP
SSL CertificateDNS
Suite B対応の証明書
NetIQ iManagerにログインします。
新しい証明書を作成するには、次の手順を実行します。
NetIQ Certificate Server > Create Server Certificate (サーバ証明書の作成)の順にクリックします。
証明書を所有するサーバを選択します。
証明書のニックネームを指定します。たとえば、「remotecert」と指定します。
メモ:証明書のニックネームにはスペースを使用しないことをお勧めします。たとえば、「remote cert」ではなく「remotecert」を使用します。
また、証明書のニックネームは書き留めておいてください。このニックネームは、ドライバのリモート接続パラメータのKMO名に使用します。
証明書の作成方法を選択して、次へをクリックします。
次の選択肢があります。
標準: このオプションでは、可能な最大キーサイズを使用してサーバ証明書オブジェクトが作成され、組織CAによって公開鍵証明書に署名されます。
カスタム: このオプションでは、ユーザが指定する設定を使用してサーバ証明書オブジェクトが作成されます。サーバ証明書オブジェクトの多数のカスタマイズされた設定を指定できます。このオプションを選択すると、Suite B通信用のECDSA証明書が作成されます。
インポート: このオプションでは、PKCS12(PFX)ファイルからキーと証明書を使用してサーバ証明書オブジェクトが作成されます。このオプションをエクスポート機能と組み合わせて使用すると、サーバ証明書のバックアップおよび復元をしたり、サーバ証明書オブジェクトをサーバから別のサーバへ移動できます。
証明書パラメータを指定します。
残りの項目については、証明書のデフォルト値をそのまま使用します。
[概要]の画面を確認し、終了をクリックして、閉じるをクリックします。
証明書をエクスポートするには、次の手順を実行します。
iManagerで、Roles and Task (役割とタスク) > NetIQ Certificate Access (NetIQ証明書へのアクセス) > Server Certificates (サーバ証明書) の順に移動します。
作成した証明書またはサーバが作成した証明書(SSL CertificateDNSなど)に移動して選択します。
エクスポートをクリックします。
CA証明書をドロップダウンメニューからOU=organization CA.O=TREEANAMEとして選択します。
エクスポート形式をドロップダウンメニューから BASE64として選択します。
次へをクリックします。
保存、閉じるの順にクリックします。
JavaドライバとIdentity Managerエンジンの間でSSL接続を使用するには、キーストアを作成する必要があります。キーストアは、暗号化キーおよび証明書(オプション)を含むJavaファイルです。リモートローダとIdentity Managerエンジンの間でSSLを使用する必要があり、Javaシムを使用する場合は、キーストアファイルを作成する必要があります。次のセクションでは、キーストアファイルの作成方法について説明します。
任意のプラットフォームでキーストアを作成するには、コマンドラインで次のコマンドを入力します。
keytool -import -alias trustedroot -file self-signed_certificate_name -keystore filename -storepass keystorepass
filenameには任意の名前を指定できます(rdev_keystoreなど)。
Linux環境では、create_keystoreファイルを使用します。これは、Keytoolユーティリティを呼び出すシェルスクリプトです。このファイルはrdxmlとともにインストールされ、デフォルトではinstall_directory/dirxml/binディレクトリにあります。create_keystoreファイルは、\dirxml\java_remoteloaderディレクトリにあるdirxml_jremote.tar.gzファイルにも含まれています。
コマンドラインで次のコマンドを入力します。
create_keystore self-signed_certificate_name keystorename
たとえば、次のいずれかを入力します。
create_keystore tree-root.b64 mystore create_keystore tree-root.der mystore
create_keystoreスクリプトにより、キーストアパスワード用にハードコードされている“dirxml”のパスワードが指定されます。キーストアに保存されるのはパブリック証明書と公開鍵のみなので、セキュリティリスクはありません。
Identity Managerアプリケーションシムをホストするドライバインスタンスとリモートローダを連携するには、ドライバインスタンスを設定する必要があります。たとえば、インスタンスの接続およびポートの設定を指定する必要があります。これらの設定は、設定ファイルのコマンドラインから指定できます。インスタンスが実行状態になったら、コマンドラインを使用して、環境設定パラメータを変更したり、特定の機能を実行するようリモートローダに命令したりできます。たとえば、トレースウィンドウを開いたり、リモートローダをアンロードしたりできます。
このセクションでは、環境設定パラメータについて説明します。ここでの説明では、インスタンスの実行中にコマンドラインからパラメータを送信してリモートローダを更新できるかどうかを指定します。
新しいドライバインスタンスの設定の詳細については、セクション 11.3.3, ドライバインスタンスのリモートローダの設定を参照してください。
ドライバインスタンスは、コマンドラインまたは環境設定ファイルで設定できます。リモートローダおよびドライバをアプリケーションシム用に設定するのに役立つサンプルファイルconfig8000.txtが用意されています。このサンプルファイルは、デフォルトでは/opt/novell/dirxml/docディレクトリにあります。たとえば、環境設定ファイルに次の行を記述できます。
-commandport 8000 -connection "port=8090 rootfile=/dirxmlremote/root.pem" -module $DXML_HOME/dirxmlremote/libcskeldrv.so.0.0.0 -trace 3
使用するパラメータは、以下のとおりです。
(オプション)文字列形式の短い説明を指定します(SAPなど)。この説明は、アプリケーションによってトレースウィンドウのタイトルや監査ログに使用されます。次に例を示します。
-description SAP
-desc SAP
(状況によって実行) Javaドライバを使用する場合、ホストするIdentity ManagerアプリケーションシムのJavaクラス名を指定します。このオプションにより、Javaキーストアを使用して証明書を読み込むようアプリケーションに指示します。次に例を示します。
-class com.novell.nds.dirxml.driver.ldap.LDAPDriverShim-cl com.novell.nds.dirxml.driver.ldap.LDAPDriverShim
メモ:
-moduleオプションを指定した場合、このオプションは使用できません。
-classオプションで区切り文字としてタブを使用すると、リモートローダは自動的に起動しません。代わりに、手動で起動する必要があります。リモートローダを適切に起動するには、タブではなくスペースを使用できます。
このオプションで指定できる名前の詳細については、Java -classパラメータの名前の理解を参照してください。
ドライバインスタンスが制御目的で使用するTCP/IPポートを指定します。たとえば、-commandport 8001または-cp 8001と指定します。デフォルトは8000です。
同じサーバ上のリモートローダで複数のドライバインスタンスを使用するには、インスタンスごとに異なる接続ポートとコマンドポートを指定します。
ドライバインスタンスがアプリケーションシムをホストしている場合、コマンドポートは、別のインスタンスが、シムをホストしているインスタンスと通信するポートになります。ドライバインスタンスが、アプリケーションシムをホストしているインスタンスにコマンドを送信する場合、コマンドポートはホストインスタンスがリスンしているポートになります。
このパラメータをコマンドラインから、アプリケーションシムをホストしているインスタンスに送信する場合、コマンドポートはホストインスタンスがリスンしているポートを表します。このコマンドはリモートローダの実行中に送信できます。
ドライバインスタンスの環境設定ファイルを指定します。次に例を示します。
-config config.txt
環境設定ファイルには、-config以外のあらゆるコマンドラインオプションを含めることができます。コマンドラインで指定したオプションは、環境設定ファイル内で指定されたオプションよりも優先されます。
このコマンドはリモートローダの実行中に送信できます。
Identity Managerリモートインタフェースシムを実行するIdentity Managerエンジンをホストしているサーバに接続するための設定を指定します。デフォルトの接続方法は、SSLを使用したTCP/IPです。
同じサーバ上のリモートローダで複数のドライバインスタンスを使用するには、インスタンスごとに異なる接続ポートとコマンドポートを指定します。
次の構文で接続設定を入力します。
-connection "parameter parameter parameter"
次に例を示します。
-connection "port=8091 fromaddress=198.51.100.0 rootfile=server1.pem keystore=ca.pem localaddress=198.51.100.0 hostname=198.51.100.0 kmo=remote driver cert"
TCP/IP接続の設定を指定するには、次のパラメータを使用します。
(オプション)リモートローダが特定のローカルIPアドレスをリスンするかどうかを指定します。これは、リモートローダをホストするサーバが複数のIPアドレスを持ち、リモートローダが1つのアドレスのみをリスンしなければならない場合に便利です。有効な値は次のとおりです。
address=address number
address='localhost'
次に例を示します。
address=198.51.100.0
値を指定しない場合、リモートローダはすべてのローカルIPアドレスをリスンします。
リモートローダが接続を受け入れる元のサーバを指定します。アプリケーションは他のアドレスからの接続を無視します。サーバのIPアドレスまたはDNS名を指定します。次に例を示します。
fromaddress=198.51.100.0
fromaddress=testserver1.company.com
(状況によって実行) Identity Managerエンジンからの有効な接続でハンドシェークのタイムアウトが発生した場合に適用されます。リモートローダとIdentity Managerエンジン間のハンドシェークのタイムアウト時間(ミリ秒単位)を指定します。次に例を示します。
handshaketimeout=1000
ゼロ以上の整数を指定できます。ゼロは、接続がタイムアウトしないことを意味します。デフォルト値は1000ミリ秒です。
リモートローダを実行するサーバのIPアドレスまたは名前を指定します。次に例を示します。
hostname=198.51.100.0
リモートローダがIdentity Managerエンジンに接続するために使用するTLSプロトコルのバージョンを指定します。次に例を示します。
secureprotocol=TLSv1_2
Identity Managerは、TLSv1およびTLSv1_2をサポートします。デフォルトで、リモートローダはTLSv1_2を使用します。TLSv1を使用するには、パラメータでこのバージョンを指定します。
(状況によって実行)リモートローダがSuite B暗号アルゴリズムを使用してIdentity Managerエンジンと通信する場合にのみ適用します。
通信にSuite Bを使用するには、trueを指定します。この通信は、TLS 1.2プロトコルでのみサポートされます。
Suite B対応エンジンを、TLSv1.2をサポートしないリモートローダと接続しようとする場合、ハンドシェークが失敗し、通信が確立されません。たとえば、リモートローダ4.5.3は、TLS v1.2をサポートしません。
(状況によって実行)リモートローダとIdentity Managerエンジンが、信頼する認証局(CA)によって発行された公開鍵証明書やデジタル証明書、または自己署名証明書を検証することにより相互認証する場合にのみ適用します。次に例を示します。
useMutualAuth=true
リモートインタフェースシムが使用する証明書の発行者のルート認証局証明書を含むJavaキーストアのファイル名を指定します。次に例を示します。
keystore=keystore filename
通常は、リモートインタフェースシムをホストしているツリーの認証局を指定します。
SSL接続に使用するキーと証明書を含む暗号化キーオブジェクトのキー名を指定します。次に例を示します。
kmo=remote driver cert
クライアント接続用ソケットのバインド先IPアドレスを指定します。次に例を示します。
localaddress=198.51.100.0
リモートローダがリモートインタフェースシムからの接続をリスンするTCP/IPポートを指定します。デフォルトポートを指定するには、「port=8090」と入力します。
リモートインタフェースシムが使用する証明書の発行者のルート認証局証明書を含むファイルの名前を指定します。この証明書はBase64形式(PEM)である必要があります。次に例を示します。
rootfile=trustedcert
通常、このファイルはリモートインタフェースシムをホストしているツリーの認証局です。
keystoreパラメータに入力したJavaキーストアのパスワードを指定します。次に例を示します。
storepass=mypassword
リモートローダがJavaドライバと通信するには、次の構文を使用して、キーと値のペアを指定します。
keystore=keystorename storepass=password
リモートローダが使用するデータファイルのディレクトリを指定します。次に例を示します。
-datadir /var/opt/novell/dirxml/rdxml/data
このコマンドを使用すると、rdxmlプロセスにより、カレントディレクトリが指定のディレクトリに変更されます。明示的にパスが指定されていないトレースファイルなどのファイルは、このデータディレクトリに作成されます。
ヘルプを表示するようアプリケーションに命令します。
(状況によって実行) Javaドライバシムインスタンスのパスワードを設定するよう指定します。
メモ:-classの値を同時に指定しない場合、このオプションは-setpasswordsオプションとともに使用します。
指定されたポートでJavaデバッグを有効にするようインスタンスに命令します。次に例を示します。
-javadebugport 8080
このコマンドはIdentity Managerアプリケーションシムの開発時に使用します。このコマンドはリモートローダの実行中に送信できます。
Java環境の各種パラメータを指定します。次の構文でJava環境パラメータを入力します。
-javaparam parameter -jp parameter -jp parameter
メモ:Javaリモートローダと一緒にこのパラメータを使用しないでください。
個々のパラメータに複数の値を指定するには、パラメータを引用符で囲みます。次に例を示します。
-javaparam DHOST_JVM_MAX_HEAP=512M -jp DHOST_JVM_MAX_HEAP=512M -jp "DHOST_JVM_OPTIONS=-Dfile.encoding=utf-8 -Duser.language=en"
Java環境を設定するには、次のパラメータを使用します。
JVMがパッケージ(.jar)ファイルおよびクラス(.class)ファイルを検索する追加のパスを指定します。Linux JVMに対して複数のクラスパスを指定するには、各パスの間にコロンを挿入します。
JVMの初期(最小)ヒープサイズを10進数のバイト単位で指定します。数値を指定し、その後に単位としてバイトタイプを表すG、M、またはKを指定します。次に例を示します。
100M
バイトタイプを指定しない場合、サイズはデフォルトでバイトに設定されます。このパラメータを使用することは、java -Xmsコマンドを使用することと同等です。
このパラメータは、ドライバセット属性オプションよりも優先されます。初期ヒープサイズを大きくすれば、起動時間とスループットのパフォーマンスが改善される場合があります。
JVMの最大ヒープサイズを10進数のバイト単位で指定します。数値を指定し、その後に単位としてバイトタイプを表すG、M、またはKを指定します。次に例を示します。
100M
バイトタイプを指定しない場合、サイズはデフォルトでバイトに設定されます。
このパラメータは、ドライバセット属性オプションよりも優先されます。
ドライバのJVMインスタンスの起動時に使用する引数を指定します。空白を使用して各オプション文字列を区切ります。次に例を示します。
-Xnoagent -Xdebug -Xrunjdwp: transport=dt_socket,server=y, address=8000
このパラメータよりもドライバセット属性オプションが優先されます。この環境変数は、ドライバセット属性オプションの末尾に付加されます。有効なオプションの詳細については、JVMのマニュアルを参照してください。
設定を変更するコマンドやインスタンスの操作に影響するコマンドを発行する場合は、ドライバインスタンスのパスワードを指定する必要があります。コマンドを発行するインスタンスに対してsetpasswordsで指定した最初のパスワードと同じパスワードを指定します。次に例を示します。
-password netiq4
コマンドの発行時にパスワードを送信しない場合、ドライバインスタンスにより、パスワードを入力するようプロンプトが表示されます。
このコマンドはリモートローダの実行中に送信できます。
リモートローダプロセスが使用するプロセスIDファイル(pidfile)のディレクトリのパスを指定します。次に例を示します。
-piddir /var/opt/novell/dirxml/rdxml/data
pidfileは、主にSysV方式のinitスクリプトが使用します。デフォルト値は/var/runです。pidfileを開いて/var/runの読み書きを行うための十分な権限を持たないユーザによってリモートローダが実行されている場合、デフォルト値はカレントディレクトリになります。
このパラメータは-datadirと同様です。
ドライバインスタンスのパスワード、およびリモートローダが通信するリモートインタフェースシムのIdentity Managerドライバオブジェクトのパスワードを指定します。
パスワードを指定する必要はありません。その代わり、リモートローダによって、パスワードを入力するようプロンプトが表示されます。ただし、リモートローダのパスワードを指定した場合、Identity Managerエンジンサーバでリモートインタフェースシムに関連付けられているIdentity Managerドライバオブジェクトのパスワードも指定する必要があります。パスワードを指定するには、次の構文を使用します。
-setpasswords Remote_Loader_password driver_object_password
次に例を示します。
-setpasswords netiq4 idmobject6
メモ:このオプションを使用すると、指定したパスワードがドライバインスタンスに設定されますが、Identity Managerアプリケーションシムはロードされず、別のインスタンスとも通信しません。
(状況によって実行) Identity Managerアプリケーションシムをホストする場合、リモートローダとこのインスタンスのドライバの両方からの情報メッセージを記録するトレースファイルの設定を指定します。
環境設定ファイルに次のパラメータを追加します。
トレースウィンドウに表示するメッセージのレベルを指定します。次に例を示します。
-trace 3
リモートローダのトレースレベルは、Identity Managerエンジンをホストしているサーバで使用されているトレースレベルに対応します。
トレースメッセージを記録するファイルのパスを指定します。特定のコンピュータで実行されている各ドライバインスタンスに対して固有のトレースファイルを指定する必要があります。次に例を示します。
-tracefile /home/trace.txt
-traceパラメータがゼロより大きい場合、アプリケーションはメッセージをこのファイルに書き込みます。メッセージをファイルに書き込むためにトレースウィンドウが開いている必要はありません。
このインスタンスのトレースファイルのサイズの制限を指定します。キロバイト、メガバイト、またはギガバイト単位の値を、バイトタイプを表す略語を使用して指定します。次に例を示します。
-tracefilemax 1000K
-tf 100M
-tf 10G
メモ:
リモートローダの起動時にトレースファイルのデータが指定した最大サイズよりも大きい場合、10ファイルすべてのロールオーバーが完了するまで、トレースファイルのデータは指定した最大値よりも大きいままとなります。
環境設定ファイルにこのオプションを追加した場合、アプリケーションは指定した名前をトレースファイルに使用し、最大9個の「ロールオーバー」ファイルを含めます。ロールオーバーファイルには、メインのトレースファイル名と「_n」に基づいた名前が付けられます。「n」は1~9の値になります。
(状況によって実行)アプリケーションシムをホストしている既存のドライバインスタンスがある場合に、情報メッセージの新しいレベルを指定します。トレースレベルはIdentity Managerサーバで使用されているレベルと同じです。次に例を示します。
-trace 3
このコマンドはリモートローダの実行中に送信できます。
(状況によって実行)アプリケーションシムをホストしている既存のドライバインスタンスがある場合に、そのインスタンスに対し、特定のトレースファイルを使用するか、使用中のファイルを閉じてこの新しいファイルに変更するよう命令します。次に例を示します。
-tracefilechange \temp\newtrace.txt
このコマンドはリモートローダの実行中に送信できます。
(状況によって実行) useMutualAuthが環境設定ファイルでtrueに設定されている場合にのみ有効です。
Javaリモートローダドライバ専用の相互認証を有効にするためにキーストアパスワードを指定します。
Javaリモートローダドライバおよびネイティブリモートローダドライバの相互認証を有効にするためにキーパスワードを指定します。
アンロードするようドライバインスタンスに命令します。リモートローダがWin32サービスとして実行されている場合は、サービスを停止します。
このコマンドはリモートローダの実行中に送信できます。
-classパラメータを使用してリモートローダおよびJavaリモートローダのドライバインスタンスを設定する場合、ホストするIdentity ManagerアプリケーションシムのJavaクラス名を指定する必要があります。
Javaクラス名 |
ドライバ |
---|---|
com.novell.nds.dirxml.driver.dcsshim.DCSShim |
データ収集サービス用ドライバ |
com.novell.nds.dirxml.driver.delimitedtext.DelimitedTextDriver |
区切り付きテキストドライバ |
be.opns.dirxml.driver.ars.arsremedydrivershim.ARSDriverShim |
Driver for Remedy ARS |
com.novell.nds.dirxml.driver.entitlement.EntitlementServiceDriver |
エンタイトルメントサービスドライバ |
com.novell.gw.dirxml.driver.rest.shim.GWdriverShim |
GroupWise 2014ドライバ |
com.novell.idm.drivers.idprovider.IDProviderShim |
IDプロバイダドライバ |
com.novell.nds.dirxml.driver.jdbc.JDBCDriverShim |
JDBCドライバ |
com.novell.nds.dirxml.driver.jms.JMSDriverShim |
JMSドライバ |
com.novell.nds.dirxml.driver.ldap.LDAPDriverShim |
LDAPドライバ |
com.novell.nds.dirxml.driver.loopback.LoopbackDriverShim |
Loopback Driver |
com.novell.nds.dirxml.driver.ebs.user.EBSUserDriver |
Oracleユーザ管理ドライバ |
com.novell.nds.dirxml.driver.ebs.hr.EBSHRDriver |
Oracle HRドライバ |
com.novell.nds.dirxml.driver.ebs.tca.EBSTCADriver |
Oracle TCAドライバ |
com.novell.nds.dirxml.driver.msgateway.MSGatewayDriverShim |
Managed System Gateway Driver |
com.novell.nds.dirxml.driver.manualtask.driver.ManualTaskDriver |
Manual Task Driver |
com.novell.nds.dirxml.driver.nisdriver.NISDriverShim |
NIS Driver |
com.novell.nds.dirxml.driver.notes.NotesDriverShim |
Notes Driver |
com.novell.nds.dirxml.driver.psoftshim.PSOFTDriverShim |
PeopleSoft Driver |
com.netiq.nds.dirxml.driver.pum.PUMDriverShim |
特権ユーザ管理ドライバ |
com.novell.nds.dirxml.driver.salesforce.SFDriverShim |
SalesForceドライバ |
com.novell.nds.dirxml.driver.SAPHRShim.SAPDriverShim |
SAP HRドライバ |
com.novell.nds.dirxml.driver.sap.portal.SAPPortalShim |
SAPポータルドライバ |
com.novell.nds.dirxml.driver.sapumshim.SAPDriverShim |
SAP User Management Driver |
com.novell.nds.dirxml.driver.soap.SOAPDriver |
SOAPドライバ |
com.novell.idm.driver.ComposerDriverShim |
ユーザアプリケーション |
com.novell.nds.dirxml.driver.workorder.WorkOrderDriverShim |
ワークオーダードライバ |
リモートローダは、.dll、.so、または.jarファイルに含まれるIdentity Managerアプリケーションシムをホストできます。Linuxコンピュータでリモートローダを実行するには、アプリケーションは各ドライバインスタンスに対して環境設定ファイル(LDAPShim.txtなど)を必要とします。環境設定ファイルは、コマンドラインオプションを使用して作成または編集することもできます。
デフォルトでは、リモートローダはTLS/SSLプロトコルを使用してTCP/IP経由でIdentity Managerエンジンに接続します。この接続におけるデフォルトのTCP/IPポートは8090になります。 同じサーバ上のリモートローダで複数のドライバインスタンスを実行できます。各インスタンスは別々のIdentity Managerアプリケーションシムインスタンスをホストします。同じサーバ上でリモートローダの複数のインスタンスを使用するには、インスタンスごとに異なる接続ポートとコマンドポートを指定します。
メモ:
環境設定ファイルには、-config以外のあらゆるコマンドラインオプションを含めることができます。
環境設定ファイルにパラメータを追加する場合、長い形式のパラメータか、短い形式のパラメータを使用できます。たとえば、-descriptionまたは-descです。
次の手順では、長い形式を最初に示し、その後に丸かっこで囲んで短い形式を示します。たとえば、-description value (-desc value)のように示します。
このセクションで使用されているパラメータの詳細については、リモートローダの環境設定パラメータの理解を参照してください。
環境設定ファイルを作成する
テキストエディタで新しいファイルを作成します。
リモートローダおよびドライバをアプリケーションシム用に設定するのに役立つサンプルファイルconfig8000.txtが用意されています。このサンプルファイルは、デフォルトでは/opt/novell/dirxml/docディレクトリにあります。
次の環境設定パラメータをファイルに追加します。
-description (オプション)
-commandport
接続パラメータ:
port (必須)
address
fromaddress
handshaketimeo
rootfile
keystore
localaddress
hostname
kmo
secureprotocol
enforceSuiteB
useMutualAuth
トレースファイルパラメータ(オプション):
-trace
-tracefile
-tracefilemax
-javaparam
-classまたは-module
これらのパラメータに値を指定する方法の詳細については、セクション 11.3.2, リモートローダの環境設定パラメータの理解を参照してください。
ファイルを保存します。
コンピュータの起動時にリモートローダを自動的に起動するには、ファイルを/etc/opt/novell/dirxml/rdxmlディレクトリに保存します。
JavaリモートローダはJavaドライバシムのみをホストします。ネイティブ(C++)ドライバシムはロードまたはホストしません。
LinuxプラットフォームでJavaリモートローダの新しいインスタンスを設定するには、次の手順を実行します。このセクションで使用されているパラメータの詳細については、リモートローダの環境設定パラメータの理解を参照してください。
テキストエディタで新しいファイルを作成します。
リモートローダおよびドライバをアプリケーションシム用に設定するのに役立つサンプルファイルconfig8000.txtが用意されています。このサンプルファイルは、デフォルトでは/opt/novell/dirxml/docディレクトリにあります。
新しい環境設定ファイルに次のパラメータを追加します。
-description (オプション)
-classまたは-module
たとえば、-class com.novell.nds.dirxml.driver.ldap.LDAPDriverShimです。
-commandport
接続パラメータ:
port (必須)
address
fromaddress
handshaketimeo
rootfile
keystore
localaddress
hostname
kmo
secureprotocol
enforceSuiteB
useMutualAuth
-java (条件付き)
-javadebugport
-password
-service
-keypassword
-keystorepassword (Javaドライバ専用)
トレースファイルパラメータ(オプション):
-trace
-tracefile
-tracefilemax
新しい環境設定ファイルを保存します。
コンピュータの起動時にリモートローダを自動的に起動するには、ファイルを/etc/opt/novell/dirxml/jremoteディレクトリに保存します。
コマンドプロンプトを開きます。
プロンプトで「-config filename」と入力します。filenameには新しい環境設定ファイルの名前を指定します。次に例を示します。
dirxml_jremote -config filename
新しいドライバを設定するか、または既存のドライバを有効にして、リモートローダと通信できます。Identity Managerアプリケーションシムをリモートローダで使用できるように設定する必要があります。
メモ:このセクションでは、リモートローダと通信できるようにするためのドライバの設定に関する一般的な情報について説明します。ドライバ固有の情報については、Identity ManagerドライバマニュアルのWebサイトで、関連するドライバ実装ガイドを参照してください。
DesignerまたはiManagerで新しいドライバオブジェクトを追加したり、既存のドライバオブジェクトを変更したりするには、リモートローダのドライバインスタンスを有効にするための設定が必要です。このセクションで使用されているパラメータの詳細については、リモートローダの環境設定パラメータの理解を参照してください。
概要からIdentity Managerドライバオブジェクトを選択します。
ドライバオブジェクトのプロパティで、次の手順を実行します。
ドライバモジュールから、リモートローダに接続を選択します。
ドライバオブジェクトパスワードで、リモートローダがIdentity Managerエンジンサーバに対して自身を認証するために使用するパスワードを指定します。
このパスワードは、リモートローダで定義したドライバオブジェクトのパスワードに一致している必要があります。
Remote Loader Connection Parameters (リモートローダ接続パラメータ)で、リモートローダに接続するために必要な情報を指定します。使用する構文は次のとおりです。
hostname=xxx.xxx.xxx.xxx port=xxxx kmo=certificatename localaddress=xxx.xxx.xxx.xxx
各要素の内容は次のとおりです。
リモートローダをホストするサーバのIPアドレスを指定します。たとえば、「hostname=192.168.0.1」と指定します。
リモートローダがリスンするポートを指定します。デフォルトは8090です。
SSL接続に使用するキーと証明書を含む暗号化キーオブジェクトのキー名を指定します。たとえば、「kmo=remotecert」と指定します。
Identity Managerエンジンをホストするサーバに複数のIPアドレスが設定されている場合、ソースIPアドレスを指定します。
Remote Loader Password (リモートローダパスワード)で、Identity Managerエンジン(またはリモートローダシム)がリモートローダへ認証するために必要なパスワードを指定します。
セキュリティ上同等なユーザを定義します。
次へをクリックし、終了をクリックします。
相互認証を設定すると、リモートローダとIdentity Managerエンジンとの間のセキュアな通信を保証することができます。相互認証では、パスワードの代わりにハンドシェークの証明書を使用します。リモートローダとIdentity Managerエンジンは、信頼する認証局(CA)によって発行された公開鍵証明書やデジタル証明書、または自己署名証明書を交換して検証することにより相互認証します。相互認証に成功すると、リモートローダはIdentity Managerエンジンの認証を受けます。リモートローダとIdentity Managerエンジンの両方が認証エンティティと通信しているという信頼を確立した後で、同期トラフィックが発生します。
相互認証を設定するには、次のタスクを実行します。
相互認証が適切に機能するには、エンジン用のクライアント証明書とリモートローダ用のクライアント証明書が必要です。eDirectoryからこれらの証明書をエクスポートするか、サードパーティベンダーからそれらをインポートすることができます。ほとんどの場合、追加投資を行わずにeDirectoryからサーバ証明書をエクスポートします。リモートローダ用のサードパーティクライアント証明書をエクスポートしたい場合もあります。
アイデンティティボールトの証明書オブジェクトはキーマテリアルオブジェクト(KMO)と呼ばれます。このオブジェクトには、SSL通信に使用される証明書に関連付けられている公開鍵と秘密鍵を含む証明書データの両方が安全に含まれています。相互認証の場合、エンジンとリモートローダに対してそれぞれ2つのKMOが必要です。
既存のKMOをエクスポートするか、新しいKMOを作成してそれをエクスポートすることができます。クライアントKMOとサーバKMOの作成プロセスは異なります。
サーバKMOを作成するには、次の手順を実行します。
NetIQ iManagerにログインします。
左サイドペインで、NetIQ Certificate Serverをクリックし、サーバ証明書を選択します。
作成した証明書を所有するサーバを選択します。
証明書のニックネームを指定します。たとえば、serverkmoです。
作成方法として標準を選択し、次へをクリックします。
[概要]の画面を確認し、終了をクリックして、閉じるをクリックします。
環境設定ファイルを作成する
NetIQ iManagerにログインします。
左サイドペインで、NetIQ Certificate Serverをクリックし、サーバ証明書を選択します。
作成した証明書を所有するサーバを選択します。
証明書のニックネームを指定します。たとえば、clientkmoです。
証明書の作成方法でカスタムを選択して、次へをクリックします。
デフォルトの組織認証局をそのままにして、次へをクリックします。
Enable Extended key usage (拡張キーの使用を有効にする)を選択して、次へをクリックします。
残りの項目については、証明書のデフォルト値をそのまま使用します。
[概要]の画面を確認し、終了をクリックして、閉じるをクリックします。
エンジンとリモートローダが相互認証に使用するKMOをeDirectoryからエクスポートします。
Identity ManagerエンジンのKMOをエクスポートするには、DirXMLコマンドライン(dxcmd)ユーティリティを実行します。
dxcmd -user <admin DN> -password <password of admin> -exportcerts <kmoname> <server|client> <java|native|dotnet> <output dir>
where
user は、ドライバへの管理権限を持つユーザの名前を指定します。
passwordは、ドライバへの管理権限を持つユーザのパスワードを指定します。
exportcertsは、eDirectoryから証明書と秘密鍵/公開鍵をエクスポートします。サーバ証明書をまたはクライアント証明書のいずれをエクスポートするかどうか、証明書を使用するドライバのタイプ、およびコマンドがこの情報を保存する宛先フォルダを指定する必要があります。
例: dxcmd -user admin.sa.system -password novell -exportcerts serverkmo server java '/home/certs'
このコマンドは、/home/certs/ディレクトリのserverkmo_server.ksファイルを生成します。キーストアのデフォルトパスワードはdirxmlです。
リモートローダのKMOをエクスポートするためのdxcmdコマンドを実行している場合は、次の考慮事項が適用されます。
dxcmdユーティリティはLDAPモードで実行します。このモードを初めて使用する場合、eDirectoryからの証明書を信頼するかどうかの選択を求めるプロンプトが表示されます。環境に応じて、現在のセッションのみ、または現在と今後のセッションに対して証明書を信頼する、またはすべての証明書を信頼することを選択したり、証明書を信頼しないことを選択できます。
Identity Managerサーバでリモートローダを実行している場合、LDAPまたはドット形式のいずれかでコマンドを実行します。別のサーバにリモートローダがインストールされている場合、LDAP形式でのみコマンドを実行します。
Identity Managerサーバで認証できるようにサーバIPアドレスまたはホスト名を解決するには、コマンドに-hostパラメータを指定します。
次の構文を使用してコマンドを実行します。
dxcmd -dnform ldap -host <IP address of the host> -user <admin DN> -password <password of admin> -exportcerts <kmoname> <client> <java|native|dotnet> <output dir>
表 11-1 異なるドライバのタイプの例
ドライバのタイプ |
コマンド |
出力 |
---|---|---|
Javaドライバ |
dxcmd -dnform ldap -host 192.168.0.1 -user cn=admin,ou=sa,o=system -password novell -exportcerts clientkmo client java '/home/certs' |
/home/certs/ディレクトリにあるclientkmo_client.ksファイル キーストアのデフォルトパスワードはdirxmlです。 |
リモートローダでサードパーティ証明書を使用するには、.pfxファイルの証明書およびBase 64形式の信頼するルートファイルをエクスポートし、.pfx証明書をドライバが使用する形式に変換する必要があります。たとえば、ネイティブドライバでは.pem形式の秘密鍵と証明書キーが必要ですが、Javaドライバでは、.jks形式のキーストアが必要です。
Javaキーストアを.pfxファイルから作成します。コマンドを入力します(keytool -importkeystore -srckeystore servercert.pfx -srcstoretype pkcs12 -destkeystore servercert.jks -deststoretype JKSなど)。
最終手順として、ドライバのタイプに応じてリモートローダ設定ファイルの情報を指定します。詳細については、相互認証のためのドライバの有効化を参照してください。
次のタスクを実行して、相互認証のためにドライバ通信を有効にします。
DesignerまたはiManagerでKMOまたはキーストアを使用してドライバを設定できます。
Designerでは、初期ドライバ作成プロセス中にドライバを設定するか、またはドライバを作成後に設定することができます。
Designerでドライバを設定するには:
Designerでプロジェクトを開きます。
[モデラー]ビューのパレットで、作成するドライバを選択します。
ドライバのアイコンを[モデラー]ビュー上にドラッグします。
インストールウィザードに表示される手順に従います。
[リモートローダ]ウィンドウではいを選択します。
ホスト名: ドライバのリモートローダサービスが実行されているサーバのホスト名またはIPアドレスを指定します。たとえば、hostname=192.168.0.1を入力します。このパラメータの値を指定しない場合、値はデフォルトでlocalhostになります。
ポート: このドライバ用のリモートローダがインストールされ、動作している場所のポート番号を指定します。デフォルトポート番号は8090です。
KMO: リモートローダがSSL接続に使用するキーと証明書を含むKMOのキー名を指定します。たとえば、kmo=serverkmoと入力します。KMOを使用して相互認証を設定する場合、このパラメータの値を指定する必要があります。その他のパラメータセクションで、ルートファイルパラメータの値を指定する必要もあります。
その他のパラメータ: 使用するリモートローダの設定を指定します。このパラメータには相互認証通信に関する情報が含まれます。指定されるすべてのパラメータは、次のようにキーと値のペア形式を使用する必要があります。:paraName1=paraValue1 paraName2=paraValue2
たとえば、キーストアに次の構文を使用します。
UseMutualAuth=true keystore='/home/certs/serverkmo_server.ks' storepass='dirxml' keypass='dirxml' key='serverkmo'
たとえば、kmoに次の構文を使用します。
useMutualAuth=true rootFile='/home/cacert.b64'
リモートパスワード: リモートローダパスワードを指定します。
ドライバパスワード: ドライバパスワードを指定します。
次へをクリックします。
ドライバのインストールが終了するまで、ウィザードの残りの指示に従ってください。
ドライバを作成するために完了するタスクの概要を確認し、終了をクリックします。
または、次の手順を実行することにより、ドライバを作成後にそれを設定することができます。
Designerの[アウトライン]ビューで、ドライバを右クリックします。
プロパティを選択します。
ナビゲーションペインで、ドライバ環境設定を選択します。
認証を選択します。
Remote Loader authentication (リモートローダの認証)セクションで、リモートローダとIdentity Managerエンジン間の相互認証を設定するために必要な情報を指定します。
kmoの場合は次の構文を使用します。
hostname=xxx.xxx.xxx.xxx port=xxxx useMutualAuth=true kmo=certificatename rootFile=<absolute path to the file>
次に例を示します。
hostname=192.168.0.1 port=8090 useMutualAuth=true kmo=serverkmo rootFile='/home/cacert.b64'
キーストアの場合は次の構文を使用します。
hostname=xxx.xxx.xxx.xxx port=xxxx useMutualAuth=true keystore=<absolute path to the keystore file> storepass=<keystore password> key=<alias name> keypass= <password for the key>
次に例を示します。
hostname=192.168.0.1 port=8097 useMutualAuth=true keystore='/home/certs/serverkmo_server.ks' storepass='dirxml' key='serverkmo' keypass='dirxml'
iManagerで設定を変更するには:
iManagerを起動します。
[概要]からIdentity Managerドライバオブジェクトを選択します。
ドライバオブジェクトのプロパティで、次の手順を実行します。
ドライバモジュールから、リモートローダに接続を選択します。
ドライバオブジェクトパスワードで、リモートローダがエンジンに対して認証するために使用するパスワードを指定します。
このパスワードは、リモートローダで定義したドライバオブジェクトのパスワードに一致している必要があります。
Remote Loader Connection Parameters (リモートローダ接続パラメータ)で、リモートローダに接続するために必要な情報を指定します。
kmoの場合は次の構文を使用します。
hostname=xxx.xxx.xxx.xxx port=xxxx useMutualAuth=true kmo=certificatename rootFile=<absolute path to the file>
次に例を示します。
hostname=192.168.0.1 port=8090 useMutualAuth=true kmo=serverkmo rootFile='/home/cacert.b64'
キーストアの場合は次の構文を使用します。
hostname=xxx.xxx.xxx.xxx port=xxxx useMutualAuth=true keystore=<absolute path to the keystore file> storepass=<keystore password> key=<alias name> keypass= <password for the key>
次に例を示します。
hostname=192.168.0.1 port=8097 useMutualAuth=true keystore='/home/certs/serverkmo_server.ks' storepass='dirxml' key='serverkmo' keypass='dirxml'
(オプション) Remote Loader Password (リモートローダパスワード)で、Identity Managerエンジン(またはリモートローダシム)がリモートローダへ認証するために必要なパスワードを指定します。
適用をクリックし、OKをクリックします。
リモートローダ設定ファイルのドライバインスタンスを設定する必要があります。ドライバ用のリモートローダ設定ファイルのキーファイル、証明書ファイル、およびルートファイルを格納するディレクトリへの絶対パスを確実に指定します。
相互認証を有効化するためのコンテンツを含むようにドライバのリモートローダ設定ファイルを変更します。このファイルは、/opt/novell/dirxml/docディレクトリにあります。
設定を変更するには:
ドライバおよびリモートローダをインストールしているサーバにログインします。
リモートローダを停止します。
たとえば、次のコマンドを入力します。
rdxml -config /home/drivershim.conf -u
リモートローダのタイプに基づいてキーストアパスワードまたはキーパスワードを入力します。
次の構文を使用して、キーストアパスワードおよびキーパスワードの組み合わせを指定します。
dirxml_jremote -config /home/drivershim.conf -ksp <keystorepassword> -kp <keypassword>
次に例を示します。
dirxml_jremote -config /home/drivershim.conf -ksp dirxml -kp dirxml
次の構文を使用して、キーパスワードを指定します。
dirxml_jremote -config /home/drivershim.conf -kp <keypassword>
次に例を示します。
dirxml_jremote -config /home/drivershim.conf -kp dirxml
テキストエディタで、ドライバ用のリモートローダ設定ファイルを開きます。
このファイルに相互認証を有効化するために必要なコンテンツを追加します。
たとえば、Javaドライバの場合、このエントリを追加します。
-connection "port=8090 useMutualAuth=true keystore='/home/certs/clientkmo_client.ks' key='clientkmo'
たとえば、ネイティブドライバの場合、このエントリを追加します。
-connection "useMutualAuth=true port=8090 rootfile='/home/certs/trustedcert.b64' certfile='/home/certs/clientkmo_clientcert.pem' keyfile='/home/certs/clientkmo_clientkey.pem' certform=PEM keyform=PEM"
ファイルを保存して閉じます。
ドライバを再起動します。
リモートローダを起動します。次に例を示します。
dirxml_remote -config config.txt
iManagerを使用してリモートインタフェースシムを起動します。
リモートローダが適切に動作していることを確認します。
リモートローダを停止します。次に例を示します。
dirxml_remote -config config.txt -u
ホストコンピュータの起動時に自動的にドライバインスタンスを起動するように各プラットフォームを設定できます。手動でインスタンスを起動することもできます。
リモートローダのドライバインスタンスを起動するには、次の2つの方法があります。
コンピュータの起動時に自動的に起動するようにリモートローダのドライバインスタンスを設定できます。環境設定ファイルを/etc/opt/novell/dirxml/rdxmlディレクトリに配置します。
バイナリコンポーネントrdxmlはリモートローダ用のコマンドライン機能をサポートしています。このコンポーネントは、デフォルトでは/usr/bin/ディレクトリにあります。
コマンドプロンプトを開きます。
(状況によって実行)ドライバインスタンスをIdentity Managerエンジンへ認証するためのパスワードを指定するには、次のいずれかのコマンドを入力します。
リモートローダ: rdxml -config filename –keystorepassword <keystore pass> - keypassword <key pass>
Javaリモートローダ: dirxml_jremote -config filename –keystorepassword <keystore pass> -keypassword <key pass>
(状況によって実行)相互認証がリモートローダとIdentity Managerエンジンのドライバインスタンス間で有効になっている場合、次のいずれかのコマンドを入力して、証明書パスワードを指定します。
リモートローダ: rdxml -config filename –keystorepassword <keystore pass> -keypassword <key pass>
Javaリモートローダ: dirxml_jremote -config filename -keypassword <key pass>
ドライバインスタンスを起動するため、次のコマンドを入力します。
rdxml -config filename
iManagerにログインし、ドライバを起動します。
リモートローダが正常に動作していることを確認します。
psコマンドまたはトレースファイルを使用して、コマンドおよび接続ポートがリスンしているかどうかを判断します。
リモートローダは、リモートローダがIdentity Managerエンジンサーバ上のリモートインタフェースシムと通信している場合にのみ、Identity Managerアプリケーションシムをロードします。つまり、たとえば、リモートローダがサーバとの通信を失うと、アプリケーションシムはシャットダウンされます。
リモートローダのドライバインスタンスを停止する方法はプラットフォームごとに異なります。
メモ:
リモートローダのインスタンスを複数実行する場合は、リモートローダが適切なインスタンスを停止できるように-cp command portオプションを含めます。
ドライバインスタンスを停止する場合、十分な権利を持っているか、リモートローダのパスワードを指定する必要があります。リモートローダを停止するための十分な権限を持っているとします。ここでパスワードを入力したところ、パスワードが間違っていることが判明します。リモートローダは実際にはそのパスワードを「受け付けない」ため、いずれにしてもリモートローダは停止します。この場合パスワードが冗長であるため、パスワードは無視されます。サービスではなくアプリケーションとしてリモートローダを実行している場合、パスワードが使用されます。
ドライバインスタンスを停止する
コマンド「rdxml -config filename -u」を入力します。次に例を示します。
rdxml -config config.txt -u
コマンド「dirxml_jremote -config filename -u」を入力します。次に例を示します。
dirxml_jremote -config config.txt -u