发布日期:2024-10-06 04:41 点击次数:189
iPlanet Directory Server 5.1 所提供的 UID 惟一性插件可用于管制 UID 属性的惟一性好看的第四色。
本章将在以下各节中先容属性惟一性插件及 UID 惟一性插件:
属性惟一性插件概括
UID 惟一性插件概括
属性惟一性插件的语法
创建属性惟一性插件的实例
设立属性惟一性插件
属性惟一性插件语法示例
复制和属性惟一性插件
属性惟一性插件概括 属性惟一性插件是一种预处理插件。这就意味着该插件将在行状器施行 LDAP 操作前查验悉数更新操作。该插件将细目操作是否适用于已设立为监控对象的某个属性及后缀。淌若更新操作适用于该插件所监控的属性和后缀,且会使两个条件具有换取的属性值,行状器就会断绝该操作,同期向客户机复返 LDAP_CONSTRAINT_VIOLATION 失实。
属性惟一性插件对下列对象施行查验:
单个属性
一个或多个子树
淌若但愿查验多个属性的惟一性,则必须为所要查验的各个属性创建孤苦的插件实例。还不错对属性惟一性插件的操作进行设立:
它不错查验所指定的子树中的各个条件。
举例,淌若您所属的公司 siroe.com 有目次 Company333 和 Company999,则在添加诸如 uid=jlittle,ou=people,o=Company333,dc=siroe,dc=com 等条件时,则只需要在 o=Company333,dc=siroe,dc=com 子树中强制实施惟一性。这时,需要在 UID 惟一性插件设立中明确列出子树的 DN。
关系该设立选项的详确阐发,请参阅“指定后缀或子树”。
您不错在更新条野心 DN 中指定与条件关系的对象类,然后对底下的悉数条件施行惟一性查验。
该选项在主机环境中较为灵验。举例,添加诸如 uid=jlittle,ou=people,o=Company333,dc=siroe,dc=com 等条件时,不错在 o=Company333,dc=siroe,dc=com 下强制实施惟一性,但在设立中不解确列出该子树,而是率领 marker 对象类。淌若指定的 marker 对象类为 organization,则惟一性查验算法将找到 DN 中含有该对象类 (o=Company333) 的条件,然后对底下的悉数条件施行查验。
此外,还不错指定仅在更新条件中包含指定对象类的情况下施行惟一性查验。举例,不错指定仅在更新条件包含 objectclass=inetorgperson 时施行查验。
关系该设立选项的详确阐发,请参阅“使用 markerObjectClass 和 requiredObjectClass 重要字”。
淌若诡计在复制环境中使用属性惟一性插件,请参阅“复制和属性惟一性插件”。
UID 惟一性插件概括 iPlanet Directory Server 5.0 中提供了属性惟一性插件的一个实例:UID 惟一性插件。缺省情况下,该插件可确保赋予 UID 属性的值在为目次所设立的后缀中是惟一的(后缀对应于 userRoot 数据库)。
您不错革新设立,从而指定其它后缀或子树,梗概指定仅在包含所提供的对象类的条现时施行查验。UID 惟一性插件的语法和设立与其它悉数属性的换取。关系不错对设立进行何种革新的详信托息,请参阅“设立属性惟一性插件”。
由于 UID 惟一性插件会影响多原版复制操作,因此缺省情况下将处于禁用景色。关系在复制环境中使用属性惟一性插件的信息,请参阅“复制和属性惟一性插件”。
属性惟一性插件的语法 属性惟一性插件的设立信息是在 cn=plugins,cn=config 条现时的条件中指定的。可能的 nsslapd-pluginarg 属性语法结构有两种。区别之处已在以下部分隆起显现。
使用下列语法不错在后缀或子树下施行惟一性查验:
dn: cn=descriptive_plugin_name,cn=plugins,cn=config objectClass: top objectClass: nsSlapdPlugin objectClass: extensibleObject cn: descriptive_plugin_namee nsslapd-pluginPath: /usr/iplanet/ds5/lib/uid-plugin.so nsslapd-pluginInitfunc: NSUniqueAttr_Init nsslapd-pluginType: preoperation nsslapd-pluginEnabled: state nsslapd-pluginarg0: attribute_name nsslapd-pluginarg1: dn1 [ nsslapd-pluginarg2: dn2 ] nsslapd-plugin-depends-on-type: database nsslapd-pluginId: NSUniqueAttr nsslapd-pluginVersion: 5.0 nsslapd-pluginVendor: Sun | Netscape Alliance nsslapd-pluginDescription: Enforce unique attribute values
防止:
不错在 cn 属性中指定任何称呼来定名插件。称呼应具有阐发性。该属性不含要进行惟一性查验的属性的称呼。
您只可指定一个要进行惟一性查验的属性。
关于要施行惟一性查验的后缀或子树而言,通过每次使 nsslapd-pluginarg 属性后缀递加 1,不错指定该后缀或子树的几个 DN。
关系属性惟一性插件语法的变量部分,请参阅表 17-1。使用下列语法不错指定在包含指定对象类的条现时施行惟一性查验:
dn: cn=descriptive_plugin_name,cn=plugins,cn=config objectClass: top objectClass: nsSlapdPlugin objectClass: extensibleObject cn: descriptive_plugin_name nsslapd-pluginPath: /usr/iplanet/ds5/lib/uid-plugin.so nsslapd-pluginInitfunc: NSUniqueAttr_Init nsslapd-pluginType: preoperation nsslapd-pluginEnabled: state nsslapd-pluginarg0: attribute=attribute_name nsslapd-pluginarg1: markerObjectClass=objectclass1 [ nsslapd-pluginarg2: requiredObjectClass=objectclass2 ] nsslapd-plugin-depends-on-type: database nsslapd-pluginId: NSUniqueAttr nsslapd-pluginVersion: 5.0 nsslapd-pluginVendor: Sun | Netscape Alliance nsslapd-pluginDescription: Enforce unique attribute values
防止:
不错在 cn 属性中指定任何称呼来定名插件。称呼应具有阐发性。该属性不含要进行惟一性查验的属性的称呼。
您只可指定一个要进行惟一性查验的属性。
淌若 nsslapd-pluginarg0 属性以 attribute= attribute_name 起头,则行状器就会但愿 nsslapd-pluginarg1 属性中包含 markerObjectClass。
关系属性惟一性插件语法的变量部分,请参阅表 17-1。
表 17-1 属性惟一性插件变量
变量
界说
descriptive_plugin_name
指定该属性惟一性插件实例的称呼。关于要确保惟一性的属性而言,并非必须包含其称呼,但最佳已经包含。举例 cn=mail uniqueness,cn=plugins,cn=config。
extension
插件的文献延迟名。(.so)
state
界说是否启用该插件。可收受的值为 on 或 off。关系详信托息好看的第四色,请参阅“掀开或关闭插件”。
attribute_name
要确保其值具有惟一性的属性的称呼。这里只可指定一个属性名。
dn
要确保其属性具有惟一性的后缀或子树的 DN。关于每个附加后缀或子树而言,通过将 nsslapd-pluginarg 属性的值递加 1,即可指定几个后缀或子树。
attribute=attribute_name
要确保其值具有惟一性的属性的称呼。这里只可指定一个属性名。
markerObjectClass=objectclass1
关于在 markerObjectClass 重要字中指定了对象类的更新条件而言,淌若某个条件属于该条野心 DN,系统就会在其中施行属性惟一性查验。
请勿在等号前后包含空格。
requiredObjectClass=objectclass2
可选。使用 markerObjectClass 重要字而非 DN 来指定惟一性查验的鸿沟时,不错指定仅在更新条件中包含 requiredObjectClass 重要字中指定的对象类时才施行查验。
请勿在等号前后包含空格。
创建属性惟一性插件的实例 淌若念念确保目次中的某个特定属性恒久具有惟一的值,则必须为要查验的属性创建属性惟一性插件的实例。举例,淌若念念确保目次中包含 mail 属性的各个条件王人有该属性的惟一值,则必须创建 mail 惟一性插件。
要创建属性惟一性插件的实例,您必须修改 dse.ldif 文献,在 cn=plugins,cn=config 条现时为新插件添加一个条件。新条野心神气必须妥当“属性惟一性插件的语法”中所述的语法。
举例,要实例化 mail 属性的属性惟一性插件,您需要施行下列才气:
在 dse.ldif 文献中,查找 UID 惟一性插件条件 cn=uid uniqueness,cn=plugins,cn=config。
在 UID 惟一性插件条野心前后,为 mail 惟一性插件条件添加以下各行:
dn: cn=mail uniqueness,cn=plugins,cn=config objectClass: top objectClass: nsSlapdPlugin objectClass: extensibleObject cn: mail uniqueness nsslapd-pluginPath: /usr/iplanet/ds5/lib/uid-plugin.so nsslapd-pluginInitfunc: NSUniqueAttr_Init nsslapd-pluginType: preoperation nsslapd-pluginEnabled: on nsslapd-pluginarg0: mail nsslapd-pluginarg1: dc=siroe,dc=com nsslapd-plugin-depends-on-type: database nsslapd-pluginId: NSUniqueAttr nsslapd-pluginVersion: 5.0 nsslapd-pluginVendor: Sun | Netscape Alliance nsslapd-pluginDescription: Enforce unique attribute values
从头启动 iPlanet Directory Server。
本例中,系统将对包含 mail 属性的 dc=siroe,dc=com 条件中的各个条件施行惟一性查验。设立属性惟一性插件 本节先容如何使用 iPlanet Directory Server Console 来检察为目次所设立的插件,同期阐发如何修改属性惟一性插件的设立。
检察插件设立信息 在 iPlanet Directory Server Console 中,不错按如下所示显现属性惟一性插件的设立条件:
在 iPlanet Directory Server Console 中,单击“目次”选项卡。
在左侧的导航树中,张开 config 文献夹,然后张开 Plugins 文献夹。
插件列表将显现在右侧的导航窗口中。此时应看到 UID 惟一性插件及在“创建属性惟一性插件的实例”示例中所创建的其它悉数属性惟一性插件。
在右侧导航窗口中,双击要检察的插件条件。
此时显现“属性裁剪器”。其中包含悉数插件属性和值的列表。
从 iPlanet Directory Server Console 设立属性惟一性插件 在 iPlanet Directory Server Console 中不错通过几种步地来更新插件设立:
av女友从“属性裁剪器”中
按“检察插件设立信息”中所述显现属性裁剪器,然后裁剪属性值字段。
从“设立”选项卡中 要从 iPlanet Directory Server Console“设立”选项卡中修改属性惟一性插件的设立:
在 iPlanet Directory Server Console 上,选拔“设立”选项卡,然后在导航树中张开 Plugins 文献夹,之后选拔要修改的属性惟一性插件。
插件的设立参数将显现在左侧窗口中。
要掀开或关闭插件,请选中或断根“启用插件”复选框。
要添加后缀或子树,请单击“添加”,然后在空的文本字段中键入 DN。
淌若不念念添加 DN,不错使用 markerObjectClass 重要字。淌若使用该语法,则可再次单击“添加”,按“属性惟一性插件的语法”中所述指定 requiredObjectClass。
防止 此列表中不得添加属性名。淌若念念查验其它属性的惟一性,则必须为所要查验的属性创建属性惟一性插件的实例。关系信息,请参阅创建属性惟一性插件的实例。
要从列表中删除某一项,请将光标置于要删除的文本字段中,然后单击“删除”。
单击“保存”可保存革新成果。
从号令行设立属性惟一性插件 本节提供关系从号令行设立插件的信息。其中波及以下任务:
掀开或关闭插件
指定后缀或子树
使用 markerObjectClass 和 requiredObjectClass 重要字
掀开或关闭插件 要从号令行掀开插件,则必须创建包含下列 LDIF 更新语句的 LDIF 文献:
dn: cn=descriptive_plugin_name,cn=plugins,cn=config changetype: modify replace: nsslapd-pluginenabled nsslapd-pluginenabled: on
使用 ldapmodify 号令不错将 LDIF 文献导入到目次中。
要禁用插件,请革新 LDIF 更新语句:将 nsslapd-pluginenabled: on 语句替换为 nsslapd-pluginenabled: off 语句。
启用或禁用插件时,必须从头启动行状器。关系从头启动行状器的信息,请参阅“启动和住手 iPlanet Directory Server”。
指定后缀或子树 您不错指定但愿插件确保其本色具有属性惟一性的后缀或子树,范例是在界说该插件的条件中使用 nsslapd-pluginarg 属性。
通过创建包含如下例中所示的更新语句的 LDIF 文献,即可指定子树:
dn: cn=mail uniqueness,cn=plugins,cn=config changetype: add nsslapd-pluginarg2: dc=iplanet,dc=sun,dc=com nsslapd-pluginarg3: dc=iplanet,dc=netscape,dc=com
本 LDIF 文献示例将查验子树 dc=siroe,dc=com、dc=iplanet,dc=sun,dc=com 和 dc=iplanet, dc=netscape.com 下 mail 属性的惟一性。
使用 ldapmodify 号令不错将 LDIF 文献导入到目次中。
进行上述类型的设立革新时,必须从头启动行状器。关系从头启动行状器的信息,请参阅“启动和住手 iPlanet Directory Server”。
使用 markerObjectClass 和 requiredObjectClass 重要字 除了在属性惟一性插件的设立中指定后缀或子树外,还不错对属于更新条野心 DN,且更新条件中具有 markerObjectClass 重要字中所指定的对象类的条件施行查验。
要指定对包含组织单位 (ou) 对象类的更新条件 DN 中的条件进行惟一性查验,则不错创建如下例中所示的 LDIF 文献:
dn: cn=mail uniqueness,cn=plugins,cn=config objectClass: top objectClass: nsSlapdPlugin objectClass: extensibleObject cn: mail uniqueness nsslapd-pluginPath: /usr/iplanet/ds5/lib/uid-plugin.so nsslapd-pluginInitfunc: NSUniqueAttr_Init nsslapd-pluginType: preoperation nsslapd-pluginEnabled: on nsslapd-pluginarg0: attribute=mail nsslapd-pluginarg1: markerObjectClass=ou nsslapd-plugin-depends-on-type: database nsslapd-pluginId: NSUniqueAttr nsslapd-pluginVersion: 5.0 nsslapd-pluginVendor: Sun | Netscape Alliance nsslapd-pluginDescription: Enforce unique attribute values
淌若不但愿行状器查验组织单位条现时的各个条件,则可指定仅在更新条件中包含指定对象类的情况下才施行查验,从而舍弃查验的鸿沟。
举例,淌若是查验 mail 属性的惟一性,则可能有必要仅在添加或修改包含 person 或 inetorgperson 对象类的条件时才施行查验。
通过使用 requiredObjectClass 重要字,不错遏抑查验鸿沟,如下例所示:
dn: cn=mail uniqueness,cn=plugins,cn=config objectClass: top objectClass: nsSlapdPlugin objectClass: extensibleObject cn: mail uniqueness nsslapd-pluginPath: /usr/iplanet/ds5/lib/uid-plugin.so nsslapd-pluginInitfunc: NSUniqueAttr_Init nsslapd-pluginType: preoperation nsslapd-pluginEnabled: on nsslapd-pluginarg0: attribute=mail nsslapd-pluginarg1: markerObjectClass=ou nsslapd-pluginarg2: requiredObjectClass=person nsslapd-plugin-depends-on-type: database nsslapd-pluginId: NSUniqueAttr nsslapd-pluginVersion: 5.0 nsslapd-pluginVendor: Sun | Netscape Alliance nsslapd-pluginDescription: Enforce unique attribute values
通过递加 nsslapd-pluginarg 属性后缀的计数器并不行重迭 markerObjectClass 或 requiredObjectClass 重要字。
防止 nsslapd-pluginarg0 属性恒久包含要确保惟一性的属性的称呼。
属性惟一性插件语法示例 本节在 dse.ldif 文献中含有属性惟一性插件语法的示例。悉数示例所示的插件语法与其在 UNIX 系统上出现的语法王人换取。
指定一个属性及一个子树
指定一个属性及多个子树
指定一个属性及一个子树 本例将对插件进行设立,确保 dc=siroe,dc=com 子树下 mail 属性的惟一性。
dn: cn=mail uniqueness,cn=plugins,cn=config objectClass: top objectClass: nsSlapdPlugin objectClass: extensibleObject cn: mail uniqueness nsslapd-pluginPath: /usr/iplanet/ds5/lib/uid-plugin.so nsslapd-pluginInitfunc: NSUniqueAttr_Init nsslapd-pluginType: preoperation nsslapd-pluginEnabled: on nsslapd-pluginarg0: mail nsslapd-pluginarg1: dc=siroe,dc=com nsslapd-plugin-depends-on-type: database nsslapd-pluginId: NSUniqueAttr nsslapd-pluginVersion: 5.0 nsslapd-pluginVendor: Sun | Netscape Alliance nsslapd-pluginDescription: Enforce unique attribute values
指定一个属性及多个子树 本例将对插件进行设立,确保 l=Chicago,dc=siroe,dc=com 和 l=Boston,dc=siroe,dc=com 子树下 mail 属性的惟一性。
dn: cn=mail uniqueness,cn=plugins,cn=config objectClass: top objectClass: nsSlapdPlugin objectClass: extensibleObject cn: mail uniqueness nsslapd-pluginPath: /usr/iplanet/ds5/lib/uid-plugin.so nsslapd-pluginInitfunc: NSUniqueAttr_Init nsslapd-pluginType: preoperation nsslapd-pluginEnabled: on nsslapd-pluginarg0: mail nsslapd-pluginarg1: l=Chicago,dc=siroe,dc=com nsslapd-pluginarg2: l=Boston,dc=siroe,dc=com nsslapd-plugin-depends-on-type: database nsslapd-pluginId: NSUniqueAttr nsslapd-pluginVersion: 5.0 nsslapd-pluginVendor: Sun | Netscape Alliance nsslapd-pluginDescription: Enforce unique attribute values
防止 nsslapd-pluginarg0 属性恒久包含要确保惟一性的属性的称呼。其它悉数位置出现的 nsslapd-pluginarg(nsslapd-pluginarg1 至 nsslapd-pluginargx)王人包含 DN。
期骗该设立,插件允许 mail 属性值的实例划分在 l=Chicago,dc=siroe,dc=com 子树和 l=Boston,dc=siroe,dc=com 子树下各存在一次。举例,下列情况是允许的:
mail=bjensen,l=Chicago,dc=siroe,dc=com
mail=bjensen,l=Boston,dc=siroe,dc=com
淌若念念确保两个子树下唯独值的一个实例,则需要对插件进行设立,以确保悉数这个词 dc=siroe,dc=com 子树的惟一性。
复制和属性惟一性插件 在波及复制契约的 iPlanet Directory Server 上使用属性惟一性插件时,必须审慎探讨在各个行状器上如何设立插件。
应试虑下列情况:
节略复制:有一个供给器及一个或多个客户
复杂复制:有多个原版
作为为复制操作的一部分而施行更新时,属性惟一性插件不会对属性值施行任何查验。
节略复制环境 由于客户机应用圭臬所作念的悉数修改王人是在供给行状器上进行的,因此应启用供给器上的属性惟一性插件。客户行状器上没必要启用该插件。
启用客户上的属性惟一性插件不会禁锢 iPlanet Directory Server 的宽敞动手,但可能会导致性能缩短。
多原版复制环境 在多原版复制环境中,两个原版同期充任归并副本的供给器和客户。由于多原版复制使用松散的一致性复制模式,因此在一个行状器上启用属性惟一性插件尚不及以确保属性值在给定的期间内在两个原版上保合手惟一性。因此,在一个行状器上启用属性惟一性插件可导致各个副本上所合手数据的不一致。
但在赋闲下列悉数条件的前提下,不错使用属性惟一性插件:
进行惟一性查验的属性为定名属性
两个原版上王人已启用属性惟一性插件
在赋闲上述条件的情况下,复制时的属性惟一性龙套将诠释为定名龙套。定名龙套需要进行手动处分。关系若那儿分复制龙套的信息,请参阅“处分常见复制龙套”。