11.3 配置 Remote Loader 和驱动程序

Remote Loader 可以托管 .so 或 .jar 文件中包含的 Identity Manager 应用程序 shim。Java 远程装载程序仅能托管 Java 驱动程序 Shim,但它不能装载或托管本机 (C++) 驱动程序 Shim。

在使用 Remote Loader 之前,必须将应用程序 shim 配置为安全连接到 Identity Manager 引擎。您还必须配置 Remote Loader 和 Identity Manager 驱动程序。有关 shim 的详细信息,请参见了解 Shim。

11.3.1 创建与 Identity Manager 引擎的安全连接

您必须确保在 Remote Loader 与 Identity Manager 引擎之间传输数据的安全。NetIQ 建议使用传输层安全性/安全套接字层 (TLS/SSL) 协议进行通讯。要支持 TLS/SSL 连接,需要有密钥存储区文件或 KMO 中储存的相应自我签名证书。本节说明了如何创建、导出和储存该证书。

注:在托管 Identity Manager 引擎和 Remote Loader 的服务器上使用相同 SSL 版本。如果该服务器与 Remote Loader 上的 SSL 版本不匹配,服务器将返回 SSL3_GET_RECORD:错误的版本号错误讯息。此讯息仅作警告之用,服务器与 Remote Loader 之间的通讯并不会中断。但是,该错误可能会让用户感到困惑。

了解通讯过程

Remote Loader 会打开客户端套接字,并监听来自远程接口 Shim 的连接。远程接口 shim 和 Remote Loader 会执行 SSL 握手,以建立安全通道。然后,远程接口 shim 将鉴定到 Remote Loader。如果远程接口 shim 的鉴定成功,Remote Loader 将鉴定到远程接口 shim。只有双向鉴定确认双方使用授权的实体进行通讯后,同步交通才能进行。

在驱动程序与 Identity Manager 引擎之间建立 SSL 连接的过程取决于驱动程序的类型:

注:Remote Loader 允许在 Remote Loader 和 Identity Manager 服务器上托管的远程接口 shim 之间使用自定义连接方法。要配置自定义连接模块,请参见该模块随附文档中有关连接字符串中预期的和允许内容的信息。

管理自我签名的服务器证书

您可以创建和导出自我签名的服务器证书,以确保在 Remote Loader 与 Identity Manager 引擎之间进行安全通讯。如需额外的安全保障,您可以按照 Suite B 指定为 SSL 通讯配置较严密的密码。此通讯需要使用 ECDSA(Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法)证书来加密数据。启用 Suite B 时,Remote Loader 使用 TLS 1.2 作为通讯协议。有关 Suite B 的详细信息,请参见“Suite B Cryptography”(Suite B 加密法)。

您可以导出新创建的证书,也可以使用现有证书。

注:如果服务器加入树,eDirectory 将创建以下默认证书:

  • SSL CertificateIP

  • SSL CertificateDNS

  • 符合 Suite B 要求的证书

  1. 登录到 NetIQ iManager。

  2. 要创建新证书,请完成以下步骤:

    1. 单击 NetIQ 证书服务器 > 创建服务器证书。

    2. 选择拥有该证书的服务器。

    3. 指定证书的绰号。例如:remotecert。

      注:NetIQ 建议不要在证书绰号中使用空格。例如,使用 remotecert 而不要使用 remote cert。

      还需要记录证书绰号。此绰号将在驱动程序的远程连接参数中用作 KMO 名称。

    4. 选择证书创建方法,然后单击下一步。

      您可以选择以下选项:

      • 标准: 该选项会使用可能的最大密钥大小创建服务器证书对象,并使用您的组织 CA 对公共密钥证书签名。

      • 自定义: 此选项会使用您指定的设置创建服务器证书对象。它可让您为服务器证书对象设置一些自定义设置。选择此选项可创建 ECDSA 证书以用于 Suite B 通讯。

      • 导入: 此选项会使用 PKCS12 (PFX) 文件中的密钥和证书创建服务器证书对象。您可以将该选项结合“导出”功能一起使用,以备份和恢复服务器证书或将服务器证书对象从一台服务器移至另一台服务器。

    5. 指定证书参数。

    6. 接受其余的证书默认值。

    7. 复查摘要,单击完成,然后单击关闭。

  3. 要导出证书,请完成以下步骤:

    1. 在 iManager 中,导航到角色和任务 > NetIQ 证书访问 > 服务器证书。

    2. 浏览并选择已创建的证书或服务器创建的证书(例如 SSL CertificateDNS)。

    3. 单击导出。

    4. 从下拉菜单中选择 OU=organization CA.O=TREEANAME 作为 CA 证书。

    5. 从下拉菜单中选择 BASE64 > 导出格式。

    6. 单击下一步。

    7. 单击保存,然后单击关闭。

使用 SSL 连接时创建密钥存储区文件

要在 Java 驱动程序与 Identity Manager 引擎之间使用 SSL 连接,您必须创建一个密钥存储区。密钥存储区是一个 Java 文件,其中包含加密钥、可能还包含证书(可选)。如果要在 Remote Loader 与 Identity Manager 引擎之间使用 SSL,并且要使用 Java shim,那么,您需创建一个密钥存储区文件。以下章节说明了如何创建密钥存储区文件:

在任何平台上创建密钥存储区

要在任意平台上创建密钥存储区,可以在命令行中输入以下内容:

keytool -import -alias trustedroot -file self-signed_certificate_name -keystore filename -storepass keystorepass

文件名可以是任意名称。例如:rdev_keystore。

在 Linux 上创建密钥存储区

在 Linux 环境中,请使用 create_keystore 文件,这是一个调用 Keytool 实用程序的外壳脚本。该文件已随 rdxml 一起安装,默认情况下位于 install_directory/dirxml/bin 目录中。\dirxml\java_remoteloader 目录下的 dirxml_jremote.tar.gz 文件中也包含了 create_keystore 文件。

在命令行中输入以下内容:

create_keystore self-signed_certificate_name keystorename

例如,键入以下任意一条内容

create_keystore tree-root.b64 mystore
create_keystore tree-root.der mystore

create_keystore 脚本指定密钥存储区口令的“dirxml”硬编码口令。由于密钥存储区中仅储存一个公共证书和一个公共密钥,因此不具有安全风险。

11.3.2 了解 Remote Loader 的配置参数

要使 Remote Loader 能够与托管 Identity Manager 应用程序 shim 的驱动程序实例配合工作,您必须配置该驱动程序实例。例如,必须指定该实例的连接和端口设置。您可以通过命令行在配置文件中指定设置。实例运行后,您可以使用命令行修改配置参数,或者指示 Remote Loader 执行某个函数。例如,您可能需要打开跟踪窗口或卸载 Remote Loader。

本节提供了有关配置参数的信息。其中说明了当实例正在运行时,是否可以从命令行发送一个参数来更新 Remote Loader。

有关配置新驱动程序实例的详细信息,请参见部分 11.3.3, 为驱动程序实例配置 Remote Loader。

Remote Loader 中驱动程序实例的配置参数

您可以在命令行或配置文件中配置驱动程序实例。NetIQ 提供了 config8000.txt 示例文件,可帮助您配置要与应用程序 shim 配合使用的 Remote Loader 和驱动程序。默认情况下,该示例文件位于 /opt/novell/dirxml/doc 目录中。例如,该配置文件可能包含以下行:

-commandport 8000
-connection "port=8090 rootfile=/dirxmlremote/root.pem"
-module $DXML_HOME/dirxmlremote/libcskeldrv.so.0.0.0
-trace 3 

请使用以下参数:

-description value (-desc value)

(可选)以字符串格式指定简短说明(例如 SAP),应用程序将在跟踪窗口的标题中使用该说明,并将其用于审计日志记录。例如:

-description SAP
-desc SAP
-class name (-cl name)

(视情况而定)使用 Java 驱动程序时,指定要托管的 Identity Manager 应用程序 shim 的 Java 类名。此选项将告知应用程序使用 Java 密钥存储区来读取证书。例如:

-class com.novell.nds.dirxml.driver.ldap.LDAPDriverShim -cl com.novell.nds.dirxml.driver.ldap.LDAPDriverShim

注:

  • 如果指定了 -module 选项,则不能使用上述选项。

  • 如果使用制表符字符作为 -class 选项中的分隔符,Remote Loader 将不会自动启动,而必须由您手动启动。要让 Remote Loader 正常启动,您可以使用空格字符而不要使用制表符。

  • 有关可为此选项指定的名称的详细信息,请参见了解 Java -class 参数的名称。

-commandport port_number (-cp port_number)

指定驱动程序实例用于控制用途的 TCP/IP 端口。例如:-commandport 8001 或 -cp 8001。默认值是 8000。

要在同一个服务器上将多个驱动程序实例与 Remote Loader 配合使用,请为每个实例指定不同的连接端口和命令端口。

如果驱动程序实例要托管应用程序 shim,则命令端口将是另一个实例与托管 shim 的实例进行通讯的端口。如果驱动程序实例要将命令发送到托管应用程序 shim 的实例,则命令端口将是托管实例所要侦听的端口。

如果要从命令行将此参数发送到托管应用程序 shim 的实例,则命令端口表示托管实例所要侦听的端口。您可以在 Remote Loader 运行时发送此命令。

-config filename

指定驱动程序实例的配置文件。例如:

-config config.txt

配置文件可以包含除 -config 以外的任意命令行选项。在命令行中指定的选项将覆盖配置文件中指定的选项。

您可以在 Remote Loader 运行时发送此命令。

-connection “parameters” (-conn “parameters”)

指定用于连接到托管 Identity Manager 引擎并运行 Identity Manager 远程接口 shim 的服务器的设置。默认连接方法为使用 SSL 的 TCP/IP。

要在同一个服务器上将多个驱动程序实例与 Remote Loader 配合使用,请为每个实例指定不同的连接端口和命令端口。

使用以下语法输入连接字符串:

-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 连接的设置:

address=IP_address

(可选)指定 Remote Loader 是否侦听特定的本地 IP 地址。如果托管 Remote Loader 的服务器有多个 IP 地址,但 Remote Loader 只能监听其中一个地址时,这个参数将非常有用。以下值为有效值:

  • address=address number

  • address='localhost'

例如:

address=198.51.100.0

如果您未指定值,Remote Loader 将侦听所有本地 IP 地址。

fromaddress=IP_address

指定 Remote Loader 接受连接的来源服务器。应用程序将忽略来自其他地址的连接。指定服务器的 IP 地址或 DNS 名称。例如:

fromaddress=198.51.100.0
fromaddress=testserver1.company.com
handshaketimeout=milliseconds

(视情况而定)当来自 Identity Manager 引擎的其他有效连接发生握手超时适用。为 Remote Loader 与 Identity Manager 引擎之间的握手指定超时期限,以毫秒为单位。例如:

handshaketimeout=1000

您可以指定大于或等于零的整数。零表示连接永不超时。默认值为 1000 毫秒。

hostname=server

指定要在其上运行 Remote Loader 的服务器的 IP 地址或名称。例如:

hostname=198.51.100.0
secureprotocol=TLS 版本

指定 Remote Loader 用于连接 Identity Manager 引擎的 TLS 协议版本。例如:

secureprotocol=TLSv1_2 

Identity Manager 支持 TLSv1 和 TLSv1_2。默认情况下,Remote Loader 使用 TLSv1_2。要使用 TLSv1,请在该参数中指定此版本。

enforceSuiteB=true/false

(视情况而定)仅当您希望 Remote Loader 使用 Suite B 加密算法与 Identity Manager 引擎通讯时才适用。

要将 Suite B 用于通讯,请指定 true。只有 TLS 1.2 协议支持此通讯。

如果您尝试将启用 Suite B 的引擎与不支持 TLSv1.2 的 Remote Loader 进行连接,握手将会失败,并且无法建立通讯。例如,Remote Loader 4.5.3 就不支持 TLS v1.2。

useMutualAuth=true/false

(视情况而定)仅当您希望 Remote Loader 与 Identity Manager 引擎通过校验可信证书颁发机构 (CA) 颁发的公共密钥证书或数字证书或者自我签名证书来相互鉴定时适用。例如:

useMutualAuth=true
keystore=filename

指定 Java 密钥存储区的文件名,该密钥存储区包含远程接口 shim 所用证书的颁发者的可信根证书。例如:

keystore=keystore filename

通常,您可指定托管远程接口 shim 的树的证书颁发机构。

kmo=name

指定包含用于 SSL 连接的密钥和证书的密钥材料对象的密钥名称。例如:

kmo=remote driver cert
localaddress=IP_address

指定要将客户端连接套接字绑定到的 IP 地址。例如:

localaddress=198.51.100.0
port=port_number

指定 Remote Loader 将用于监听来自远程接口 shim 的连接的 TCP/IP 端口。要指定默认端口,请输入 port=8090。

rootfile=trusted certname

指定包含远程接口 Shim 所用证书颁发者可信根证书的文件的文件名。该证书文件的格式必须是 Base 64 (PEM)。例如:

rootfile=trustedcert

通常,该文件是托管远程接口 shim 的树的证书颁发机构。

storepass=password

指定您为 keystore 参数输入的 Java 密钥存储区的口令。例如:

storepass=mypassword

若要让 Remote Loader 与 Java 驱动程序通讯,请使用以下语法指定键值对:

keystore=keystorename storepass=password
-datadir directory (-dd directory)

指定 Remote Loader 使用的数据文件所在的目录。例如:

-datadir /var/opt/novell/dirxml/rdxml/data

如果您使用此命令,rdxml 进程会将其当前目录更改为指定的目录。将在此数据目录中创建不含明确的指定路径的跟踪文件和其他文件。

-help (-h)

指示应用程序显示帮助。

-java (-j)

(视情况而定)指定您想要为 Java 驱动程序 shim 实例设置口令。

注:如果您未同时指定 -class 值,请将此选项与 -setpasswords 选项结合使用。

-javadebugport port_number (-jdp port_number)

指示实例在指定的端口上启用 Java 调试。例如:

-javadebugport 8080

在开发 Identity Manager 应用程序 shim 时请使用此命令。您可以在 Remote Loader 运行时发送此命令。

-javaparam parameters (-jp parameters)

指定 Java 环境的参数。使用以下语法输入 Java 环境参数:

-javaparam parameter
-jp parameter
-jp parameter

注:不要对 Java Remote Loader 使用此参数。

要为单个参数指定多个值,请将该参数括在引号中。例如:

-javaparam DHOST_JVM_MAX_HEAP=512M
-jp DHOST_JVM_MAX_HEAP=512M
-jp "DHOST_JVM_OPTIONS=-Dfile.encoding=utf-8 -Duser.language=en"

使用以下参数设置 Java 环境:

DHOST_JVM_ADD_CLASSPATH

指定 JVM 要在其中搜索包 (.jar) 和类 (.class) 文件的其他路径。要为 Linux JVM 指定多个类路径,请在各路径之间插入一个冒号。

DHOST_JVM_INITIAL_HEAP

以十进制字节数指定初始(最小)JVM 堆大小。使用数字值后跟表示字节类型的 G、M 或 K。例如:

100M

如果您未指定字节类型,大小默认以字节为单位。使用此参数的效果与使用 Java -Xms 命令相同。

此参数优先于驱动程序集属性选项。增加初始堆大小可以减少启动时间并提高吞吐量性能。

DHOST_JVM_MAX_HEAP

以十进制字节数指定最大 JVM 堆大小。使用数字值后跟表示字节类型的 G、M 或 K。例如:

100M

如果您未指定字节类型,大小默认以字节为单位。

此参数优先于驱动程序集属性选项。

DHOST_JVM_OPTIONS

指定在启动驱动程序的 JVM 实例时要使用的自变量。请使用空格来分隔各选项字符串。例如:

-Xnoagent -Xdebug -Xrunjdwp: transport=dt_socket,server=y, address=8000

驱动程序集属性选项优先于此参数。此环境变量附加在驱动程序集属性选项的末尾。有关有效选项的详细信息,请参见 JVM 文档。

-password value (-p value)

当所发出命令会更改设置或影响实例操作时,请指定驱动程序实例的口令。您为所要发出命令的实例指定的口令必须与使用 setpasswords 指定的第一个口令相同。例如:

-password netiq4

如果您在发出命令时未发送该口令,驱动程序实例将提示您提供该口令。

您可以在 Remote Loader 运行时发送此命令。

-piddir directory (-pd directory)

指定 Remote Loader 进程使用的进程 ID 文件 (pidfile) 所在目录的路径。例如:

-piddir /var/opt/novell/dirxml/rdxml/data

pidfile 主要供 SysV-style init 脚本使用。默认值为 /var/run。另外,如果 Remote Loader 由权限不足的用户(无法打开 pidfile 以在 /var/run 中进行读取和写入)运行,那么,默认值将是当前目录。

此参数类似于 -datadir。

-setpasswords Remote_Loader_pwd optional_pwd (-sp Remote_Loader_pwd optional_pwd)

指定驱动程序实例的口令,以及与 Remote Loader 通讯的远程接口 shim 的 Identity Manager 驱动程序对象口令。

您不需要指定口令,Remote Loader 会提示您输入口令。但是,如果指定了 Remote Loader 的口令,则也必须指定与 Identity Manager 引擎服务器上远程接口 shim 关联的 Identity Manager 驱动程序对象的口令。要指定该口令,请使用以下语法:

-setpasswords Remote_Loader_password driver_object_password

例如:

-setpasswords netiq4 idmobject6

注:使用此选项可为驱动程序实例配置指定的口令,但不会装载 Identity Manager 应用程序 shim 或与其他实例通讯。

跟踪文件设置

(视情况而定)在托管 Identity Manager 应用程序 shim 时,请为包含 Remote Loader 和此实例的驱动程序发来的信息讯息的跟踪文件指定设置。

在配置文件中添加以下参数:

-trace integer (-t integer)

指定要在跟踪窗口中显示的讯息级别。例如:

-trace 3

Remote Loader 的跟踪级别对应于托管 Identity Manager 引擎的服务器上使用的级别。

-tracefile filepath (-tf filepath)

指定要将跟踪讯息记录到的文件的路径。必须为特定计算机上运行的每个驱动程序实例指定唯一的跟踪文件。例如:

-tracefile /home/trace.txt

如果 -trace 参数大于零,应用程序会将讯息写入该文件。无需打开跟踪窗口就能将讯息写入该文件。

-tracefilemax size (-tf size)

指定此实例的跟踪文件大小限制。请使用字节类型的缩写指定以 KB、MB 或 GB 为单位的值。例如:

  • -tracefilemax 1000K

  • -tf 100M

  • -tf 10G

注:

  • 如果启动远程装载程序时跟踪文件数据大于指定的最大值,则在所有 10 个文件都完成翻转之前,跟踪文件数据都将大于指定的最大值.

  • 将此选项添加到配置文件后,应用程序将为跟踪文件使用指定的名称,并最多包含 9 个“滚动更新”文件。滚动更新文件以其主跟踪文件的名称作为基本名,后跟 _n,其中 n 为从 1 到 9 的数字。

-tracechange integer (-tc integer)

(视情况而定)当某个现有驱动程序实例托管了应用程序 shim 时,指定新的信息讯息级别。跟踪级别与 Identity Manager 服务器上使用的级别相对应。例如:

-trace 3

您可以在 Remote Loader 运行时发送此命令。

-tracefilechange filepath (-tfc filepath)

(视情况而定)当某个现有驱动程序实例托管了应用程序 shim 时,指示该实例使用跟踪文件还是关闭已使用的文件而改用此新文件。例如:

-tracefilechange \temp\newtrace.txt

您可以在 Remote Loader 运行时发送此命令。

证书口令设置

(视情况而定)仅当配置文件中的 useMutualAuth 设置为 true 时。

-keystorepassword (-ksp)

仅指定对 Java Remote Loader 驱动程序启用相互鉴定所用的密钥存储区口令。

-keypassword (-kp)

指定对 Java 和本机 Remote Loader 驱动程序启用相互鉴定所用的密钥口令。

-unload (-u)

指示卸载驱动程序实例。如果远程装载程序运行为 Win32 服务,则此命令将停止该服务。

您可以在 Remote Loader 运行时发送此命令。

了解 Java -class 参数的名称

当您使用 -class 参数配置 Remote Loader 和 Java Remote Loader 的驱动程序实例时,必须指定要托管的 Identity Manager 应用程序 shim 的 Java 类名。

Java 类名

驱动程序

com.novell.nds.dirxml.driver.dcsshim.DCSShim

Driver for Data Collection Service

com.novell.nds.dirxml.driver.delimitedtext.DelimitedTextDriver

Delimited Text Driver

be.opns.dirxml.driver.ars.arsremedydrivershim.ARSDriverShim

修复 ARS 的驱动程序

com.novell.nds.dirxml.driver.entitlement.EntitlementServiceDriver

Entitlements Service Driver

com.novell.gw.dirxml.driver.rest.shim.GWdriverShim

GroupWise 2014 驱动程序

com.novell.idm.drivers.idprovider.IDProviderShim

ID Provider Driver

com.novell.nds.dirxml.driver.jdbc.JDBCDriverShim

JDBC 驱动程序

com.novell.nds.dirxml.driver.jms.JMSDriverShim

JMS 驱动程序

com.novell.nds.dirxml.driver.ldap.LDAPDriverShim

LDAP Driver

com.novell.nds.dirxml.driver.loopback.LoopbackDriverShim

回送驱动程序

com.novell.nds.dirxml.driver.ebs.user.EBSUserDriver

Oracle User Management Driver

com.novell.nds.dirxml.driver.ebs.hr.EBSHRDriver

Oracle HR Driver

com.novell.nds.dirxml.driver.ebs.tca.EBSTCADriver

Oracle TCA Driver

com.novell.nds.dirxml.driver.msgateway.MSGatewayDriverShim

受管系统网关驱动程序

com.novell.nds.dirxml.driver.manualtask.driver.ManualTaskDriver

手动任务驱动程序

com.novell.nds.dirxml.driver.nisdriver.NISDriverShim

NIS 驱动程序

com.novell.nds.dirxml.driver.notes.NotesDriverShim

Notes 驱动程序

com.novell.nds.dirxml.driver.psoftshim.PSOFTDriverShim

PeopleSoft 驱动程序

com.netiq.nds.dirxml.driver.pum.PUMDriverShim

Privileged User Management Driver

com.novell.nds.dirxml.driver.salesforce.SFDriverShim

Salesforce Driver

com.novell.nds.dirxml.driver.SAPHRShim.SAPDriverShim

SAP HR Driver

com.novell.nds.dirxml.driver.sap.portal.SAPPortalShim

SAP Portal Driver

com.novell.nds.dirxml.driver.sapumshim.SAPDriverShim

SAP 用户管理驱动程序

com.novell.nds.dirxml.driver.soap.SOAPDriver

SOAP 驱动程序

com.novell.idm.driver.ComposerDriverShim

User Application

com.novell.nds.dirxml.driver.workorder.WorkOrderDriverShim

WorkOrder Driver

11.3.3 为驱动程序实例配置 Remote Loader

Remote Loader 可以托管 .dll、.so 或 .jar 文件中包含的 Identity Manager 应用程序 shim。为使 Remote Loader 能够在 Linux 计算机上运行,应用程序需要每个驱动程序实例都有相应的配置文件(例如 LDAPShim.txt)。您也可以使用命令行选项创建或编辑配置文件。

默认情况下,Remote Loader 会使用 TLS/SSL 协议通过 TCP/IP 连接到 Identity Manager 引擎。此连接的默认 TCP/IP 端口为 8090。您可以在同一个服务器上运行多个驱动程序实例以配合 Remote Loader 使用。每个实例托管一个单独的 Identity Manager 应用程序 shim 实例。要在同一个服务器上使用 Remote Loader 的多个实例,请为每个实例指定不同的连接端口和命令端口。

注:

  • 配置文件可以包含除 -config 以外的任意命令行选项。

  • 向配置文件中添加参数时,可以使用参数的长格式或短格式。例如,可以使用 -description 或 -desc。

  • 以下过程先列出长格式,后跟以括号括住的短格式。例如,-description 值 (-desc 值)。

  • 有关本节中所用参数的详细信息,请参见了解 Remote Loader 的配置参数。

要创建配置文件:

  1. 在文本编辑器中创建一个新文件。

    NetIQ 提供了 config8000.txt 示例文件,可帮助您配置要与应用程序 shim 配合使用的 Remote Loader 和驱动程序。默认情况下,该示例文件位于 /opt/novell/dirxml/doc 目录中。

  2. 将以下配置参数添加到该文件中:

    • -description(可选)

    • -commandport

    • 连接参数:

      • port(必需)

      • address

      • fromaddress

      • handshaketimeout

      • rootfile

      • keystore

      • localaddress

      • hostname

      • kmo

      • secureprotocol

      • enforceSuiteB

      • useMutualAuth

    • 跟踪文件参数(可选):

      • -trace

      • -tracefile

      • -tracefilemax

    • -javaparam

    • -class 或 -module

    有关为这些参数指定值的详细信息,请参见部分 11.3.2, 了解 Remote Loader 的配置参数。

  3. 保存文件。

    要在启动计算机时自动启动 Remote Loader,请将该文件保存到 /etc/opt/novell/dirxml/rdxml 目录。

11.3.4 为驱动程序实例配置 Java Remote Loader

Java 远程装载程序仅能托管 Java 驱动程序 Shim,但它不能装载或托管本机 (C++) 驱动程序 Shim。

要在 Linux 平台上配置 Java Remote Loader 的新实例,请完成以下步骤。有关本节中所用参数的详细信息,请参见了解 Remote Loader 的配置参数。

  1. 在文本编辑器中创建一个新文件。

    NetIQ 提供了 config8000.txt 示例文件,可帮助您配置要与应用程序 shim 配合使用的 Remote Loader 和驱动程序。默认情况下,该示例文件位于 /opt/novell/dirxml/doc 目录中。

  2. 在新配置文件中添加以下参数:

    • -description(可选)

    • -class 或 -module

      例如:-class com.novell.nds.dirxml.driver.ldap.LDAPDriverShim

    • -commandport

    • 连接参数:

      • port(必需)

      • address

      • fromaddress

      • handshaketimeout

      • rootfile

      • keystore

      • localaddress

      • hostname

      • kmo

      • secureprotocol

      • enforceSuiteB

      • useMutualAuth

    • -java(视情况而定)

    • -javadebugport

    • -password

    • -service

    • -keypassword

    • -keystorepassword(仅适用于 Java 驱动程序)

    • 跟踪文件参数(可选):

      • -trace

      • -tracefile

      • -tracefilemax

  3. 保存新的配置文件。

    要让 Remote Loader 在计算机启动时自动启动,请将该文件保存到 /etc/opt/novell/dirxml/jremote 目录。

  4. 打开命令提示符。

  5. 在提示符下,输入 -config filename,其中,filename 是新配置文件的名称。例如:

    dirxml_jremote -config filename

11.3.5 配置 Identity Manager 驱动程序以与 Remote Loader 配合使用

可以配置新的驱动程序或启用现有的驱动程序,与远程装载程序进行通讯。您必须设置 Identity Manager 应用程序 shim 以与 Remote Loader 配合使用。

注:本节提供配置驱动程序的一般信息,以实现驱动程序与远程装载程序的通讯。有关驱动程序特定的信息,请参见 Identity Manager 驱动程序文档网站上的相关驱动程序实施指南。

要在 Designer 或 iManager 中添加新驱动程序对象或修改现有驱动程序对象,必须配置用于启用 Remote Loader 驱动程序实例的设置。有关本节中所用参数的详细信息,请参见了解 Remote Loader 的配置参数。

  1. 在概述中,选择 Identity Manager 驱动程序对象。

  2. 在驱动程序对象的属性中,完成以下步骤:

    1. 对于驱动程序模块,请选择连接到 Remote Loader。

    2. 对于驱动程序对象口令,请指定 Remote Loader 用于对 Identity Manager 引擎服务器鉴定自身的口令。

      此口令必须与 Remote Loader 中定义的驱动程序对象口令相匹配。

    3. 对于 Remote Loader 连接参数,请指定连接到 Remote Loader 所需的信息。使用以下语法:

      hostname=xxx.xxx.xxx.xxx port=xxxx kmo=certificatename localaddress=xxx.xxx.xxx.xxx

      其中

      hostname

      指定托管 Remote Loader 的服务器的 IP 地址。例如:hostname=192.168.0.1。

      port

      指定 Remote Loader 侦听的端口。默认端口为 8090。

      kmo

      指定包含用于 SSL 连接的密钥和证书的密钥材料对象的密钥名称。例如:kmo=remotecert。

      localaddress

      如果在托管 Identity Manager 引擎的服务器上配置了多个 IP 地址,请指定源 IP 地址。

    4. 对于 Remote Loader 口令,请指定 Identity Manager 引擎(或 Remote Loader shim)用于鉴定到 Remote Loader 所需的口令。

  3. 定义一个具有同等安全性的用户。

  4. 单击“下一步”,然后单击“完成”。

11.3.6 配置与 Identity Manager 引擎的相互鉴定

您可以配置相互鉴定,以确保在 Remote Loader 与 Identity Manager 引擎之间进行安全通讯。相互鉴定使用证书而非口令进行握手。Remote Loader 与 Identity Manager 引擎通过交换并验证可信证书颁发机构 (CA) 颁发的公共密钥证书或数字证书或者自我签名证书来相互鉴定。如果相互鉴定成功,Remote Loader 会鉴定到引擎。当 Remote Loader 与 Identity Manager 引擎建立了信任关系,双方均确信它们是在与授权实体通讯后,才会进行同步通讯。

要配置相互鉴定,请执行以下任务:

导出 Identity Manager 引擎和 Remote Loader 的证书

为了让相互鉴定正常工作,您需要有引擎的服务器证书和 Remote Loader 的客户端证书。您可以从 eDirectory 导出证书,也可以导入来自第三方供应商的证书。在大多数情况下,您会从 eDirectory 导出服务器证书,这样不需要花费额外的费用。在某些情况下,您可能想要导出 Remote Loader 的第三方客户端证书。

从 eDirectory 导出证书

身份库中的证书对象称为关键材料对象 (KMO)。此对象可安全地包含证书和数据,包括与用于 SSL 连接的证书关联的公共密钥和私用密钥。要使用相互鉴定,您需要两个 KMO,一个用于引擎,一个用于 Remote Loader。

您可以导出现有的 KMO,也可以创建新的 KMO,然后将其导出。创建客户端 KMO 与创建服务器 KMO 的过程不同。

创建 KMO

要创建服务器 KMO,请执行以下操作:

  1. 登录到 NetIQ iManager。

  2. 在左侧窗格中单击 NetIQ 证书服务器,然后选择服务器证书。

  3. 选择拥有您所创建证书的服务器。

  4. 指定证书的绰号。例如,serverkmo。

  5. 在证书创建方法中选择标准,然后单击下一步。

  6. 复查摘要,单击完成,然后单击关闭。

要创建客户端 KMO,请执行以下操作:

  1. 登录到 NetIQ iManager。

  2. 在左侧窗格中单击 NetIQ 证书服务器,然后选择服务器证书。

  3. 选择拥有您所创建证书的服务器。

  4. 指定证书的绰号。例如,clientkmo

  5. 在证书创建方法中选择自定义,然后单击下一步。

  6. 将默认的组织证书颁发机构保留不变,然后单击下一步。

  7. 取消选择启用扩展密钥使用,然后单击下一步。

  8. 接受其余的证书默认值。

  9. 复查摘要,单击完成,然后单击关闭。

导出 KMO

从 eDirectory 导出引擎和 Remote Loader 将用于相互鉴定的 KMO。

要为 Identity Manager 引擎导出 KMO,请运行 DirXML 命令行 (dxcmd) 实用程序:

dxcmd -user <admin DN> -password <password of admin> -exportcerts <kmoname> <server|client> <java|native|dotnet> <output dir>

其中

  • user 用于指定对驱动程序具有管理权限的用户名。

  • password 用于指定对驱动程序具有管理权限的用户的口令。

  • exportcerts 用于从 eDirectory 导出证书和私用密钥/公共密钥。您必须指定要导出服务器证书还是客户端证书、将使用证书的驱动程序类型以及命令将用于储存此信息的目标文件夹。

例如,dxcmd -user admin.sa.system -password novell -exportcerts serverkmo server java '/home/certs'

此命令会在 /home/certs/ 目录中生成 serverkmo_server.ks 文件。密钥存储区的默认口令为 dirxml。

运行用于为 Remote Loader 导出 KMO 的 dxcmd 命令时,请注意以下事项:

  • dxcmd 实用程序在 LDAP 模式下运行。第一次使用该实用程序时,它会提示您指定信任来自 eDirectory 的证书的选项。根据您的环境,您可以选择仅针对当前会话或针对当前和将来会话信任该证书、信任所有证书,或者选择不信任证书。

  • 如果 Remote Loader 要在 Identity Manager 服务器上运行,请以 LDAP 或点格式运行该命令。如果 Remote Loader 安装在单独的服务器上,请仅以 LDAP 格式运行命令。

  • 在命令中指定 -host 参数可解析能够向 Identity Manager 服务器鉴定的服务器 IP 地址或主机名。

使用以下语法运行命令:

dxcmd -dnform ldap -host <主机 IP 地址> -user <管理员 DN> -password <管理员口令> -exportcerts <KMO 名称> <client> <java|native|dotnet> <输出目录>

表 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。

为 Remote Loader 导出第三方证书

要将第三方证书与 Remote Loader 搭配使用,您需要将证书导出到 .pfx 文件以及 Base 64 格式的可信根文件中,然后将 .pfx 证书转换为驱动程序使用的格式。例如,本机驱动程序需要 .pem 格式的私用密钥和证书密钥,而 Java 驱动程序需要 .jks 格式的密钥存储区。

Java 驱动程序

从 .pfx 文件创建 Java 密钥存储区。输入诸如 keytool -importkeystore -srckeystore servercert.pfx -srcstoretype pkcs12 -destkeystore servercert.jks -deststoretype JKS 的命令。

最后一个步骤是根据驱动程序类型,在 Remote Loader 配置文件中指定信息。有关详细信息,请参见启用驱动程序以进行相互鉴定。

启用驱动程序以进行相互鉴定

要启用驱动程序通讯以进行相互鉴定,请执行以下任务:

使用 KMO 或密钥存储区配置驱动程序

您可以在 Designer 或 iManager 中使用 KMO 或密钥存储区来配置驱动程序。

在 Designer 中,您可以在初始驱动程序创建过程中配置驱动程序,也可以在创建驱动程序之后再配置。

要在 Designer 中配置驱动程序,请执行以下操作:

  1. 在 Designer 中打开您的项目。

  2. 在“建模器”视图的面板中,选择您要创建的驱动程序。

  3. 将驱动程序的图标拖到“建模器”视图上。

  4. 遵循安装向导中的步骤操作。

  5. 在“Remote Loader”窗口中,选择是。

    1. 主机名: 指定用于运行驱动程序 Remote Loader 服务的服务器的主机名或 IP 地址。例如,输入 hostname=192.168.0.1。如果未为此参数指定值,则该值默认为 localhost。

    2. 端口: 指定用于为此驱动程序安装和运行 Remote Loader 的端口号。默认端口号为 8090.

    3. KMO: 指定包含 Remote Loader 用于 SSL 连接的密钥和证书的 KMO 密钥名称。例如,输入 kmo=serverkmo。如果您要配置使用 KMO 进行的相互鉴定,则必须为此参数指定值。您还需要在“其他参数”部分指定根文件参数的值。

    4. 其他参数: 指定您要使用的 Remote Loader 的设置。可以在此参数中包括有关相互鉴定通讯的信息。指定的所有参数都必须使用键值对格式,如下所示: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'
    5. 远程口令: 指定 Remote Loader 口令。

    6. 驱动程序口令: 指定驱动程序口令。

  6. 单击下一步。

  7. 按照向导中的其余说明操作,直到完成驱动程序的安装。

  8. 复查为了创建驱动程序将要完成的任务摘要,然后单击完成。

或者,您可以在创建驱动程序之后,通过执行以下步骤来配置驱动程序:

  1. 在 Designer 的“概要”视图中,右键单击驱动程序。

  2. 选择属性。

  3. 在导航窗格中,选择驱动程序配置。

  4. 选择鉴定。

  5. 在 Remote Loader 鉴定部分下,指定配置 Remote Loader 与 Identity Manager 引擎间的相互鉴定所需的信息。

    对于 KOM,请使用以下语法:

    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 中修改配置,请执行以下操作:

  1. 起动 iManager。

  2. 在概述中,选择 Identity Manager 驱动程序对象。

  3. 在驱动程序对象的属性中,完成以下步骤:

    1. 对于驱动程序模块,请选择连接到 Remote Loader。

    2. 对于驱动程序对象口令,请指定 Remote Loader 用于向引擎鉴定的口令。

      此口令必须与 Remote Loader 中定义的驱动程序对象口令相匹配。

    3. 对于 Remote Loader 连接参数,请指定连接到 Remote Loader 所需的信息。

      对于 KOM,请使用以下语法:

      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' 
    4. (可选)对于 Remote Loader 口令,请指定 Identity Manager 引擎(或 Remote Loader shim)鉴定到 Remote Loader 所需的口令。

    5. 单击应用,然后单击确定。

为驱动程序实例配置 Remote Loader

您必须在 Remote Loader 配置文件中配置驱动程序实例。务必在驱动程序的 Remote Loader 配置文件中指定储存密钥文件、证书文件和根文件的目录的绝对路径。

修改驱动程序的 Remote Loader 配置文件,以包括用于启用相互鉴定的内容。该文件位于 /opt/novell/dirxml/doc 目录中。

要修改配置,请执行以下操作:

  1. 登录安装了驱动程序和 Remote Loader 的服务器。

  2. 停止 Remote Loader。

    例如,输入以下命令:

    rdxml -config /home/drivershim.conf -u
  3. 根据 Remote Loader 类型提供密钥存储区或密钥口令:

    Java Remote Loader:

    使用以下语法指定密钥存储区口令和密钥口令的组合:

    dirxml_jremote -config /home/drivershim.conf -ksp <keystorepassword> -kp <keypassword>

    例如:

    dirxml_jremote -config /home/drivershim.conf -ksp dirxml -kp dirxml
    本机 Remote Loader:

    使用以下语法指定密钥口令:

    dirxml_jremote -config /home/drivershim.conf -kp <keypassword>

    例如:

    dirxml_jremote -config /home/drivershim.conf -kp dirxml
  4. 在文本编辑器中打开驱动程序的 Remote Loader 配置文件。

  5. 在该文件中添加启用相互鉴定所需的内容。

    • 例如,对于 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" 
  6. 保存并关闭文件。

  7. 重启动驱动程序。

11.3.7 校验配置

  1. 启动 Remote Loader。例如:

    dirxml_remote -config config.txt
  2. 使用 iManager 启动远程接口 shim。

  3. 确认 Remote Loader 可正常工作。

  4. 停止 Remote Loader。例如:

    dirxml_remote -config config.txt -u

11.3.8 启动 Remote Loader 中的驱动程序实例

您可以将每个平台配置为在启动主机计算机时自动启动一个驱动程序实例。也可以手动启动实例。

NetIQ 可让您以两种方式启动 Remote Loader 的驱动程序实例:

自动启动驱动程序实例

您可以将 Remote Loader 的驱动程序实例配置为在启动计算机时自动启动。请将您的配置文件放置在 /etc/opt/novell/dirxml/rdxml 目录中。

使用命令行启动驱动程序实例

对于 Remote Loader,二进制组件 rdxml 支持命令行功能。默认情况下,此组件位于 /usr/bin/ 目录中。

  1. 打开命令提示符。

  2. (视情况而定)要指定用于向 Identity Manager 引擎鉴定驱动程序实例的口令,请输入以下命令之一:

    • Remote Loader: rdxml -config filename –keystorepassword <keystore pass> - keypassword <key pass>

    • Java Remote Loader: dirxml_jremote -config filename –keystorepassword <keystore pass> -keypassword <key pass>

  3. (视情况而定)如果在 Remote Loader 的驱动程序实例与 Identity Manager 引擎之间启用了相互鉴定,请输入以下命令之一来指定证书口令:

    • Remote Loader: rdxml -config filename –keystorepassword <keystore pass> -keypassword <key pass>

    • Java Remote Loader: dirxml_jremote -config filename -keypassword <key pass>

  4. 要启动驱动程序实例,请输入以下命令:

    rdxml -config 文件名

  5. 登录到 iManager,然后启动驱动程序。

  6. 确认 Remote Loader 可正常工作。

    使用 ps 命令或跟踪文件确定命令和连接端口是否正在侦听。

    仅当 Remote Loader 正在与 Identity Manager 引擎服务器上的远程接口 shim 通讯时,Remote Loader 才会装载 Identity Manager 应用程序 shim。这意味着,如果 Remote Loader 与服务器的通讯断开,应用程序 shim 将会关闭。

11.3.9 停止 Remote Loader 中的驱动程序实例

每个平台提供了不同的方法用于停止 Remote Loader 中的驱动程序实例。

注:

  • 如果运行了 Remote Loader 的多个实例,请包含 -cp command port 选项,以确保 Remote Loader 能够停止相应的实例。

  • 要想停止驱动程序实例,您必须拥有足够的权限或指定 Remote Loader 口令。您拥有停止它的足够权限。您输入了一个口令,但意识到该口令并不正确。此时,Remote Loader 仍会停止,因为 Remote Loader 实际上并不“接受”口令,而是会忽略口令。原因是在这种情况下,口令是多余的。如果远程装载程序是作为应用程序运行,而不是作为服务运行的,则可以使用此口令。

要停止某个驱动程序实例,请执行以下操作:

Remote Loader

输入 rdxml -config filename -u 命令。例如:

rdxml -config config.txt -u
Java Remote Loader

输入 dirxml_jremote -config filename -u 命令。例如:

dirxml_jremote -config config.txt -u