跳过导航链接 | |
退出打印视图 | |
系统管理指南:命名和目录服务(DNS、NIS 和 LDAP) Oracle Solaris 10 8/11 Information Library (简体中文) |
4. 网络信息服务 (Network Information Service, NIS)(概述)
11. 为使用 LDAP 客户机设置 Sun Java System Directory Server(任务)
nisplusLDAPdatabaseIdMapping 属性
nisplusLDAPattributeFromColumn 属性
nisplusLDAPcolumnFromAttribute 属性
配置 Sun Java System Directory Server
client_info 和 timezone 表(从 NIS+ 转换为 LDAP)
NIS+ 验证依赖主体名(由域名限定的用户名或主机名)和网络名(主体名的安全 RPC 等效名称)来唯一地标识可以进行验证的实体(主体)。尽管 RFC 2307 提供用于存储 NIS+ 验证所用 Diffie-Hellman 密钥的位置,却没有为主体名或网络名指定任何位置。
/var/nis/NIS+LDAPmapping.template 文件可通过从 cred.org_dir 表的所有者名称(本身就是主体名称)派生主体和网络名的域部分来解决此问题。因此,如果 NIS+ 域是 x.y.z.,cred.org_dir 表的所有者是 aaa.x.y.z.,那么,从 LDAP 数据创建的 NIS+ 项的所有主体名将采用以下形式:
user or system.x.y.z.
网络名采用以下形式:
unix.uid@x.y.z.
unix.nodename@x.y.z.
虽然这种构造主体和网络名的方法可能足以满足大多数 NIS+ 安装要求,但在某些情况下,该方法也会失败,如下所示:
cred.org_dir 表的所有者名称不属于由 cred.org_dir 表中的主体和网络名共享的域。对于子域中的 cred.org_dir 表,如果所有者是来自父域的主体,可能会出现这种情况。此问题可通过以下方法之一来解决:
更改 cred.org_dir 表的所有者,使其与该表中项的域一致。
更改 cred.org_dir 数据库 ID 的映射规则,以使用其他某个 NIS+ 对象(如果不存在合适的对象,可能会为此目的专门创建一个)的所有者。
例如,如果 <literal>sub.dom.ain.</literal> 域中的 <filename>cred.org_dir </filename> 表由 <literal> master.dom.ain.</literal> 拥有,但是 <literal>cred.org_dir.sub.dom.ain. </literal> 中的主体和网络名应当属于 <literal>sub.dom.ain</literal>,则可以按以下方式创建一个链接对象:
# nisln cred.org_dir.sub.dom.ain. \ credname.sub.dom.ain.
按以下方式将链接对象的所有者设置为 sub.dom.ain. 中的相应主体:
# nischown trusted.sub.dom.ain. credname.sub.dom.ain.
编辑映射文件。将以下内容:
(nis+:zo_owner[]cred.org_dir, "*.%s")), \
更改为:
(nis+:zo_owner[]credname.sub.dom.ain., "*.%s")), \
请注意,名为 credname 的链接对象仅用于举例说明,可以使用任何有效的对象类型(项对象除外)和对象名称。要点是设置对象的所有者,使其拥有正确的域名。
如果不想将所有权(甚至特殊用途对象的所有权)交给来自主体和网络名所用域中的主体,请按照以下详细说明来创建 nisplusPrincipalName 和 nisplusNetname 属性。
cred.org_dir 表中包含属于多个域的主体和网络名。
请查阅 LDAP 服务器的文档,并创建 nisplusPrincipalName 和 nisplusNetname 属性以及 nisplusAuthName 对象类。(以下是 ldapadd 的 LDIF 数据。属性和对象类 OID 仅用于说明。)
dn: cn=schema changetype: modify add: attributetypes attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.7.0 NAME 'nisplusPrincipalName' \ DESC 'NIS+ principal name' \ SINGLE-VALUE \ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.9.0 NAME 'nisplusNetname' \ DESC 'Secure RPC netname' \ SINGLE-VALUE \ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) dn: cn=schema changetype: modify add: objectclasses objectclasses: ( 1.3.6.1.4.1.42.2.27.5.42.42.10.0 NAME 'nisplusAuthName' \ SUP top AUXILLIARY DESC 'NIS+ authentication identifiers' \ MAY ( nisplusPrincipalName $ nisplusNetname ) )
现在,需要启用 cred.org_dir 映射,以便使用新创建的 nisplusNetname 和 nisplusPrincipalName 属性。模板映射文件 /var/nis/NIS+LDAPmapping.template 中包含出于此目的注释掉的行。请参见 credlocal、creduser 和 crednode 数据库 ID 的 nisplusObjectDN 和 nisplusLDAPattributeFromColumn/nisplusLDAPcolumnFromAttribute 属性值。在对映射文件进行编辑并获得此效果之后,重新启动 NIS+ 服务。