AIX 5L LDAP 用户管理
2008-11-10 08:25:25 来源:WEB开发网引言
对于 AIX 5L™ 操作系统,基于轻量级目录访问协议 (LDAP) 的用户管理越来越受到广泛的关注。通常,客户端可以使用 LDAP 或带 Kerberos 的 LDAP 来实现他们的身份验证和用户管理需求。LDAP 为维护系统配置和策略信息提供了一种集中的机制。这使得客户端可以仅使用一组用户标识配置信息来配置和管理多个系统,并且可以简化系统管理工作。AIX 5L LDAP 客户端支持对各种系统的用户、组和网络信息的管理数据库进行集中式管理。
术语
在本文中,我们将使用到下列术语和定义:
表 1. 术语
术语 | 描述 |
Active Directory 服务 | Microsoft® Active Directory Server 提供的目录服务 |
AIX 5L V5.3 TL 05 | AIX 5L Service Release Technology Level 05 |
LDAP | 轻量级目录访问协议,一种用于用户安全存储库和身份验证机制的开放标准 |
SFU | Microsoft's Services For UNIX® 软件模块,它以接近于符合 RFC 2307 的 LDAP 服务器的方式提供 Active Directory 配置 |
AIX 5L LDAP 用户管理概述
本部分描述了 AIX 5L 操作系统 V5.3 在 TL5 更新之前的 LDAP 用户管理特性。在下面的文档中对所有的特性进行了详细的描述:AIX® 文档“Configuring an AIX Client System for User Authentication and Management through LDAP”白皮书、以及 Integrating AIX 5L into Heterogeneous LDAP Environments IBM 红皮书(请参见参考资料部分)。
AIX 操作系统是 20 世纪 90 年代首批引入基于 LDAP 的用户管理的操作系统之一。在 Request for Comment (RFC) 2307 成为维护用户或组信息的标准方法后,各种操作系统都需要为目录支持提供更标准化的方法。为了符合 RFC 2307 标准,对 AIX 5L 基于 LDAP 的用户管理进行了相应的改造,允许客户端管理 AIX 5L 系统以及符合 RFC 2307 的其他平台类型的系统。
AIX 5L 基于 LDAP 的用户管理中一些重要的部分包括:
支持 AIX 5L 用户和组属性全集 当选择 AIX 5L 操作系统平台作为 LDAP 服务器(以及 AIX 5L 媒体中包含的 LDAP 软件)时,AIX 5L 操作系统比 RFC 2307 支持更多的属性,并且对用户登录提供了附加的控制功能。AIX 5L 操作系统提供了完整的密码和登录控制。(有些属性是 AIX 5L 中所特有的,在 AIX 5L Version 5.3 安全指南中对其进行了说明。请参见参考资料部分。)
AIX 5L 操作系统在其 LDAP 实现中支持下列数据库:
RFC 2307 指定的信息和其他用户或组信息
高级统计配置表
与 AIX 5L 用户管理命令和工具的无缝集成 可以使用客户所熟悉的一组相同的命令和系统管理工具 (SMIT) 接口来完成 LDAP 相关的管理工作。AIX 5L 操作系统提供了相应的接口以包括 LDAP,从而为 LDAP 客户端和服务器提供简单的配置。
AIX 5L 操作系统还提供了一些工具,用于将配置信息从本地文件迁移到 LDAP 数据库。
支持自动加载 AIX 5L 操作系统为用户提供了自动加载功能,使得用户可以使用网络文件系统 (NFS) 建立自己的 home 目录。 多服务器配置和故障转移功能 可以对 AIX 5L 操作系统进行配置以使用多个 LDAP 服务器来检索配置信息,并且可以确定这些服务器的优先级,这样一来,为 LDAP 服务器信息提供了冗余保护。如果主 LDAP 服务器出现了故障,那么 AIX 5L 操作系统将自动故障转移到另一台服务器。
受支持的 LDAP 服务器
可以通过将 AIX 5L 服务器配置为 LDAP 服务器的客户端,从而实现 AIX 5L LDAP 用户管理。AIX 5L 基于 LDAP 的用户和组管理支持下列类型的目录服务器:
IBM Tivoli® Directory Server,推荐的 LDAP 服务器
非 IBM 的目录服务器
Microsoft Active Directory Server
IBM Tivoli Directory Server
建议您使用 IBM Tivoli Directory Server 进行 AIX 5L LDAP 用户或组管理。IBM Tivoli Directory Server 具有符合 RFC 2307 的内置模式支持,并且提供了扩展的 AIX 5L 用户和组属性。IBM Tivoli Directory Server 提供了三种类型的与用户或组相关的模式:AIX、rfc2307 和 rfc2307aix。
模式类型 rfc2307aix 完全符合 RFCS 2307 规范,所以可以对其他的操作系统(如 Linux)进行配置以使用该信息。这种模式还提供了 AIX 5L 特定的扩展信息,如附加的用户控制、统计策略等等。建议将 rfc2307aix 模式类型用于用户和组对象。
不鼓励使用 AIX 模式类型,除非您希望服务器支持 AIX 5L 操作系统 V5.1 和更早版本的系统。AIX 5L 之外的操作系统可能无法使用 AIX 模式类型的 IBM Tivoli Directory Server 进行用户管理。
非 IBM 目录服务器
可以对 AIX 5L 服务器进行配置以使用非 IBM LDAP 服务器,但具有一定的限制。AIX 5L 操作系统支持符合 RFC 2307 的 LDAP 服务器的配置。其配置的复杂性和支持的级别有所差别,并且在下面的部分中进行了详细的描述。
符合 RFC 2307 的目录服务器 可以对 AIX 5L LDAP 客户端进行配置以使用非 IBM LDAP 服务器进行用户或组管理。如果目录服务器支持符合 RFC 2307 模式的用户或组信息,那么这样做是可行的。这些服务器还需要支持 LDAP Version 3 协议。
AIX 5L 客户端对这类服务器的操作不支持用户或组管理的完整功能。因为这些服务器通常不支持 AIX 5L 特定的用户或组属性,所以 AIX 5L 操作系统中一些很好的用户控制功能将无法使用。。
不符合 RFC 2307 的目录服务器 AIX 5L 操作系统不支持不符合 RFC 2307 的目录服务器。然而,如果这类服务器包含所需的属性组,AIX 5L 操作系统可以按照 RFC 2307 中指定的那样与它们一起工作(假设该信息以不兼容的方式存储)。在这些情况下,管理员必须通过在 AIX 5L 客户端创建映射文件,将目录中的自定义信息映射为 RFC 2307 相关的信息。AIX 5L 操作系统提供的模式映射机制正是为了解决这个问题。
有关模式文件格式和模式文件使用的更详细信息,请参见 AIX 5L 安全指南中的“LDAP Attribute Mapping File Format”(参考资料)。
Microsoft Active Directory
可以对 AIX 5L LDAP 客户端进行配置以使用 Active Directory 服务。对于不同的 Microsoft® Windows® 发行版,基于 Active Directory 的用户和组信息也不相同。正因为这样,所以管理员应该完整地阅读本部分内容,并在 AIX 5L LDAP 客户端上建立所需的配置。
在 Windows 2000 和 Windows 2003 发行版中,Active Directory 可以通过 Windows Service For UNIX 包将用户和组信息映射为 UNIX 模式类型。要使得 AIX 5L 客户端能够通过基于 Active Directory 的信息进行身份验证,客户必须在基于 Active Directory 服务的系统中安装“Windows Services for UNIX”,然后配置 AIX 5L 客户端。稍后将提供有关这一配置的更详细信息。
AIX 5L 操作系统支持运行于 Windows 2000 和 2003 之上的安装了 Services for UNIX 模式版本 3.0 和 3.5 的 Active Directory 服务。
对于基于 Windows 2003 R2 的 Active Directory,不需要附加的 Windows Services for UNIX (SFU) 层。Windows 2003 R2 UNIX 支持模式与 Services for UNIX 3.0 和 3.5 中定义的模式不同。AIX 5L 操作系统需要 APAR IY91514 以支持 Windows 2003 R2 模式的 Active Directory。要检查是否安装了这个 APAR,可以运行下面的命令:# instfix -ik APAR IY91514
由于 AIX 5L 操作系统和 Windows 系统在用户和组管理上存在差别,所以当使用 Active Directory 作为中央 LDAP 服务器时,并非所有的 AIX 5L 命令都能够正常使用。无法使用的命令包括 mkuser 和 mkgroup。其他大多数用户和组管理命令可以正常使用,这取决于对 AIX 5L 操作系统绑定到 Active Directory 的标识所赋予的访问权限。这些命令包括:
lsuser
chuser
rmuser
lsgroup
chgroup
rmgroup
id
groups
passwd
chpasswd(仅适用于 unix_auth 模式)
对 AIX 5L 客户端进行配置以使用 Windows 服务器
对于 Windows 服务器,AIX 5L 操作系统支持两种用户身份验证机制:LDAP 身份验证和 Kerberos 身份验证。使用其中任何一种机制时,AIX 5L 操作系统支持针对 Active Directory 通过 LDAP 协议进行用户标识,而不需要在 AIX 5L 操作系统中存在对应的用户帐户。
在配置 AIX 5L 操作系统之前,必须在 Windows 服务器端完成下列操作步骤:
Active Directory 必须安装了 UNIX 支持模式。
Active Directory 必须包含支持 UNIX 的用户。
对于 Kerberos 身份验证,必须在 Windows 服务器上创建主机主体。
有关在 Active Directory 中安装这些模式,并为 Active Directory 用户提供 UNIX 支持,请参考相关的 Microsoft 文档。
对于 LDAP 身份验证,管理员可以使用 mksecldap 命令将 AIX 5L LDAP 客户端配置为使用 Active Directory 服务器,在使用 IBM Tivoli Directory Server 时也要进行这样的配置。mksecldap 命令查询服务器,发现远程服务器是基于 Active Directory 的,然后对 AIX 5L 操作系统进行相应的配置。
对于 Kerberos 身份验证,除了 LDAP 之外还必须配置 Kerberos。
下面的部分详细描述了使用 Windows 服务器进行 LDAP 身份验证和 Kerberos 身份验证的配置步骤。
配置 AIX 5L 以使用 unix_auth 模式与 Active Directory 协同工作
# mksecldap -c -h <Active Directory hostname> -a
<cn=binduser,cn=users,dc=ADdomain,dc=abc,dc=com> -p <password>
其中:
Active Directory hostname 是您的 Windows Active Directory 服务器。
cn=binduser,cn=users,dc=ADdomain,dc=abc,dc=com 是一个示例绑定凭据。它可以是 Active Directory 中定义的一个用户帐户。要成功地进行身份验证,该用户必须拥有对 Active Directory 用户的 UNIX 密码的读权限,要让用户更改他们的密码,还必须拥有对 Active Directory 用户的 UNIX 密码的写权限。
密码 指的是上面的 binduser 帐户的密码。
这将对 AIX 5L 操作系统进行配置以使用所指定的 Active Directory 服务器。身份验证模式将设置为 unix_auth。secldapclntd 守护进程将使用 cn=binduser,cn=users,dc=ADdomain,dc=abc,dc=comcn 标识绑定到 Active Directory。您可以使用 Active Directory 中定义的另一个有效的用户来替换 cn=binduser,cn=users,dc=ADdomain,dc=abc,dc=comcn。这个 Windows 用户帐户应该仅由 UNIX 客户端系统使用,以绑定到 Active Directory 服务器。
在 mksecldap 命令成功返回之后,检查 /etc/security/ldap/ldap.cfg 文件以确保 userbasedn 和 groupbasedn 指向所需的基本专有名称 (DN)。在缺省情况下,mksecldap 保存从 Active Directory 中找到的具有有效用户和组的第一个基本 DN,并且将这个基本 DN 保存到 /etc/security/ldap/ldap.cfg 文件。
例如,如果您的大部分用户和组位于 cn=users 容器中,并且 userbasedn 和 groupbasedn 指向其他地方,那么可以手动更正 userbasedn 和 groupbasedn。在将该更改保存到 /etc/security/ldap/ldap.cfg 文件之后,重新启动 secldapclntd 守护进程以使得该更改生效,如下所示。
# restart-secldapclntd
AIX 5L 操作系统还支持多个基本 DN。支持多个基本 DN 部分中提供了更详细的信息。
要验证是否正确配置了 AIX 5L LDAP 客户端,可以运行 lsuser 命令以列出 Active Directory 中定义的用户:# lsuser –R LDAP <username>
,其中 username 应该是 Active Directory 中定义的有效用户。
要允许 Windows 用户登录到 AIX 5L 操作系统,管理员需要通过在 AIX 5L 操作系统中运行下列命令,对用户的 SYSTEM 和 registry 属性进行正确设置:# chuser -R LDAP SYSTEM=LDAP registry=LDAP foo
其中,foo 是 Active Directory 中定义的一个示例用户。 在完成该更改之后,用户 foo 就可以登录到 AIX 5L 操作系统。
请注意,当用户的 Windows 密码更改时,Windows 2000 和 2003 服务器会为这些支持 UNIX 的用户设置 UNIX 密码。该用户可以使用这个密码登录到 AIX 5L 操作系统,直到 AIX 5L 操作系统对这个密码进行了更改。在撰写本文时,当用户的 Windows 密码更改时,Window 2003 R2 不会设置 UNIX 密码。在这些情况下,root 用户必须在 AIX 5L 操作系统中运行 passwd 命令,以便为 Windows 用户设置 UNIX 密码,从而使他们能够登录到 AIX。
如果要让所有的 Windows 用户都能够登录到 AIX 5L 操作系统,对每个用户进行这样的操作可能非常麻烦。在这些情况下,管理员可以手动编辑 /etc/security/user 文件,并将 default 节的 SYSTEM 和 registry 属性设置为 LDAP。如果 default 节中不包含这些属性,那么需要添加它们。修改后的 default 节应该与下面所示类似:default:
...
SYSTEM = "LDAP"
registry = LDAP
...
如果已将 default 节更改为 LDAP,这些本地定义的用户可能无法登录到 AIX 5L 操作系统,除非将他们的 SYSTEM 设置为 compat,registry 设置为 files。管理员必须找出这些帐户,并为每个用户运行下面的命令以进行相应的更改。# chuser SYSTEM=compat registry=files <local user>
配置 AIX 5L 以使用 ldap_auth 身份验证模式与 Active Directory 协同工作
# mksecldap -c -h <Active Directory hostname> -a
<cn=binduser,cn=users,dc=ADdomain,dc=abc,dc=com> -p <password> -A ldap_auth
其中:
Active Directory hostname 是您的 Windows Active Directory 服务器。
cn=binduser,cn=users,dc=ADdomain,dc=abc,dc=com 是一个示例绑定凭据。它可以是 Active Directory 中定义的一个用户帐户。
密码 指的是上面的 binduser 帐户的密码。
要验证是否正确配置了 AIX 5L 操作系统,可以运行 lsuser 命令以列出 Active Directory 中定义的用户:# lsuser -R LDAP <username>
其中 username 应该是 Active Directory 中定义的有效用户。
注意:如果您尚未安装 APAR IY91514(请参见 Microsoft Active Directory 部分,以了解如何查看是否安装了该 APAR),那么可能无法 将 AIX 5L spassword 属性映射为正确的 Active Directory 密码属性。这可能导致身份验证失败,即使您使用了正确的密码。请按照下面的步骤对映射进行更正:
编辑 /etc/security/ldap/sfu30user.map 文件,找到以单词 spassword 开头的行,例如spassword SEC_CHAR msSFU30Password s
,将 msSFU30Password 替换为 unicodePwd。虽然上面的示例中显示的是 msSFU30Password,但也可能是其他的内容。
这一行变成了:spassword SEC_CHAR unicodePwd s
保存该文件。
重新启动 secldapclntd 守护进程以使上面的更改生效:# restart-secldapclntd
要允许 Windows 用户登录到 AIX 5L 操作系统,管理员需要通过在 AIX 5L 操作系统中运行下列命令,对用户的 SYSTEM 和 registry 属性进行正确设置:# chuser -R LDAP SYSTEM=LDAP registry=LDAP foo
其中,foo 是 Active Directory 中定义的一个示例用户。
在完成该更改之后,用户 foo 就可以使用其 Windows 密码登录到 AIX 5L 操作系统。
如果要让所有的 Windows 用户都能够登录到 AIX 5L 操作系统,为每个用户进行上述的操作可能非常麻烦。在这些情况下,管理员可以手动编辑 /etc/security/user 文件,并将 default 节的 SYSTEM 和 registry 属性设置为 LDAP。如果 default 节中不包含这些属性,那么需要添加它们。default 节应该与下面所示类似:default:
...
SYSTEM = "LDAP"
registry = LDAP
...
如果已将 default 节更改为 LDAP,这些本地定义的用户可能无法登录到 AIX 5L 操作系统,除非将他们的 SYSTEM 设置为 compat,registry 设置为 files。管理员需要找出这些帐户,并为每个用户运行下面的命令以进行相应的更改。# chuser SYSTEM=compat registry=files <local user>
AIX 5L 操作系统的 passwd 命令支持更改 Windows 用户 unicodePwd 密码。如果 Windows Active Directory 需要通过 LDAP 进行密码更改,则必须通过安全连接来实现。有关在 AIX 5L 操作系统中配置 SSL 以使用 Active Directory 的详细信息,请参阅“Integrating AIX into Heterogeneous LDAP Environments”红皮书(参见参考资料部分)。要更改 unicodePwd 密码,AIX 5L 操作系统还需要 APAR IY91922。要检查是否安装了这个 APAR,可以运行下面的命令:# instfix -ik APAR IY91922
配置 AIX 5L 操作系统以通过 Windows 密钥分发中心使用 Kerberos 身份验证
除了通过 LDAP 对用户进行身份验证之外,AIX 5L 还支持通过 Kerberos 协议对 Windows 进行身份验证。使用 Kerberos 的好处是不需要通过网络传输密码,从而提高了安全性。Kerberos 和 LDAP 的结合允许通过 Windows 密钥分发中心 (KDC) 使用 Kerberos 进行用户身份验证,而 LDAP 用户标识通过 Active Directory 完成。因为用户信息来自于 Active Directory,所以不需要在 AIX 5L 操作系统上创建相应的用户标识。这种配置需要在 AIX 5L 操作系统上创建 KRB5ALDAP 复合加载模块。请按照下面的步骤配置 AIX 5L 操作系统。
安装 Network Authentication Services (NAS) 文件集。
必须从 AIX 5L Expansion Pack CD 中安装下面的 NAS 文件集:
krb5.client
krb5.lic
配置 AIX 5L 操作系统以使用 Windows KDC。
运行 configure.krb5 命令。/usr/krb5/sbin/config.krb5 -C -r <Windows domain name> -d <DNS domain> -c
<Windows server name> -s <Windows server name>
例如:# /usr/krb5/sbin/config.krb5 -C -r ADDOMAIN.ABC.COM -d abc.com -c
win2003.abc.com -s win2003.abc.com
Initializing configuration...
Creating /etc/krb5/krb5_cfg_type...
Creating /etc/krb5/krb5.conf...
The command completed successfully.
对于 Kerberos 领域名,Windows KDC 要求其全部是大写字母。这些设置将会保存到 /etc/krb5/krb5.conf 文件。
Windows 仅支持 des-cbc-md5 和 des-cbc-crc 加密。编辑 /etc/krb5/krb5.conf 文件的 libdefaults 节以删除所有其他的加密机制,该节应该与如下所示类似:[libdefaults]
default_realm = ADDOMAIN.ABC.COM
default_keytab_name = FILE:/etc/krb5/krb5.keytab
default_tkt_enctypes = des-cbc-md5 des-cbc-crc
default_tgs_enctypes = des-cbc-md5 des-cbc-crc
同步 AIX 和 Windows 服务器的时钟。
使用有效的 Windows 用户运行 /usr/krb5/bin/kinit 命令,并确保该命令成功返回。还需确保 /usr/krb5/bin/klist 命令显示了该用户的 Kerberos 凭据,如下所示:# /usr/krb5/bin/kinit foo
Password for foo@ADDOMAIN.ABC.COM: <enter password>
# /usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: foo@ADDOMAIN.ABC.COM
Valid starting Expires Service principal
11/27/06 15:33:55 11/28/06 01:33:28 krbtgt/ADDOMAIN.ABC.COM@ADDOMAIN.ABC.COM
Renew until 11/28/06 15:33:55
#
配置 AIX 5L LDAP 以使用 Active Directory。
要使用 mksecldap 命令对 AIX 5L LDAP 进行配置以使用 Active Directory,请按照前面的“配置 AIX 5L 以使用 unix_auth 模式与 Active Directory 协同工作”部分中的说明进行操作。不要为用户设置 SYSTEM 和 registry 属性,不要修改 /etc/security/user 文件的 default 节。
创建 KRB5ALDAP 复合加载模块。
向 /usr/lib/security/methods.cfg 文件中手动追加下列内容。KRB5A:
program = /usr/lib/security/KRB5A
options = authonly
KRB5ALDAP:
options = db=LDAP,auth=KRB5A
或者,如果不需要 TGT 验证,可以按照如下所示设置复合加载模块。在这些情况下,您可以省略步骤 5 和 6,直接转到步骤 7。
KRB5A:
program = /usr/lib/security/KRB5A
options = tgt_verify=no
KRB5ALDAP:
options = db=LDAP,auth=KRB5A
在 Windows 服务器上创建 AIX 5L 主体。
在 Windows 服务器上创建一个用户帐户。使用 AIX 5L 主机名作为用户名,例如 aixhost。
通过在 Windows 服务器上运行 ktpass 命令,将该帐户映射为 AIX 5L 主机主体,并将 ktpass 命令的 keytab 输出到一个文件。
ktpass – princ host/aixhost.ibmabc.com@ADDOMAIN.ABC.COM –mapuser
aixhost –pass password –out aixhost.keytab
将 aixhost.keytab 文件复制到 AIX 系统,并使用 ktutil 工具将密钥添加到 AIX keytab。# /usr/krb5/sbin/ktutil
ktutil: rkt aixhost.keytab
ktutil: wkt /etc/krb5/krb5.keytab
ktutil: q
允许 Windows 用户登录到 AIX 5L 操作系统。
要允许 Windows 用户使用 KRB5ALDAP 机制登录到 AIX 5L 操作系统,管理员需要在 AIX 5L 操作系统中运行下面的命令:# chuser -R KRB5ALDAP SYSTEM=KRB5ALDAP registry=KRB5ALDAP foo
其中,foo 是一个示例用户。
在进行了更改之后,Windows 用户可以使用他们的 Windows 密码登录到 AIX 5L 操作系统。不需要在 AIX 5L 操作系统中创建相应的用户。用户的标识信息来自于 Windows Active Directory。
如果要让所有的 Windows 用户都能够登录到 AIX 5L 操作系统,为每个用户进行上述的操作可能非常麻烦。在这些情况下,管理员可以手动编辑 /etc/security/user 文件,并将 default 节的 SYSTEM 和 registry 属性设置为 KRB5ALDAP。如果 default 节中不包含这些属性,那么需要添加它们。default 节应该与下面所示类似:default:
...
SYSTEM = KRB5ALDAP
registry = KRB5ALDAP
...
如果已将 default 节更改为 KRB5ALDAP,这些本地定义的用户可能无法登录到 AIX 5L 操作系统,除非将他们的 SYSTEM 设置为 compat,registry 设置为 files。管理员需要找出这些帐户,并为每个用户运行下面的命令以进行相应的更改。# chuser SYSTEM=compat registry=files <local user>
在对 KRB5ALDAP 机制进行配置之后,用户无法使用他们旧的 unix_auth 模式 LDAP 密码登录到 AIX 5L 操作系统。不过,如果用户使用了 ldap_auth 模式,则可以继续使用相同的密码登录到 AIX 5L 操作系统。这是因为 ldap_auth 使用了 Windows 本身的密码,而 unix_auth 模式则使用了不同的密码。
有关 Active Directory 的注意事项
本部分内容简要地介绍了您在为 AIX 5L 客户端使用 Microsoft Active Directory 作为 LDAP 服务器时可能碰到的一些问题。
在 Active Directory 中支持多个密码
可以看出,Active Directory 在其数据库中为用户提供了四种不同的密码属性:
userPassword
unixUserPassword
msSFU30Password
unicodePwd
因此,相对于 Active Directory,AIX 5L 操作系统上的密码管理可能是个问题。对于密码管理来说,客户应该使用哪个属性并不确定。AIX 5L LDAP 属性映射功能允许客户对这个方面进行研究,并根据他们的需求对密码管理进行自定义。
AIX 5L 操作系统支持两种身份验证机制:unix_auth 和 ldap_auth。下面是可以用于这些身份验证模式的密码管理策略:
unix_auth 模式身份验证 使用 AIX 5L 身份验证的 unix_auth 模式时,Active Directory 需要加密格式的密码。在进行身份验证时,从 Active Directory 中检索到加密的密码,并将其与用户输入的加密格式的密码进行比较。缺省情况下,在操作 Windows 2000 和 2003 时,AIX 5L 操作系统使用 Active Directory 中的 msSFU30Password 属性,而在操作 Windows 2003 R2 时,则使用 userPassword 属性。
如果要使用不同的密码,那么管理员需要手动修改 /etc/security/ldap/sfu30user.map 文件(或 /etc/security/ldap/sfur2user.map,如果 Active Directory 运行于 Windows 2003 R2 上)。查找以单词 spassword 开头的行,并将该行的第三个字段更改为所需的 Active Directory 密码属性名称。有关更详细的信息,请参阅 AIX 5L 安全指南中的“LDAP Attribute Mapping File Format”。在进行了更改之后,运行 mksecldap 命令以配置 AIX 5L LDAP 客户端。如果已经配置了 AIX 5L 客户端,可以运行 restart-secldapclntd 命令,重新启动 secldapclntd 守护进程以使该更改生效。
在这种身份验证的模式中,AIX 5L 客户端不能使用 unicodePwd 属性,因为它采用的是 unicode 格式,而不是 unix_auth 身份验证模式所需的加密格式。
使用 unix_auth 身份验证模式的缺点是,AIX 5L 和 Windows 系统的密码完全不同。如果用户从 AIX 5L 客户端更改密码,就会出现这种情况。尽管用户可以从 AIX 5L 客户端使用 passwd 命令将他们的密码设置为与 Windows 密码相同的密码,但是当用户在 AIX 5L 操作系统中更改他们的密码时,AIX 5L 客户端不支持自动更改其 Windows 密码。
ldap_auth 身份验证模式 使用 ldap_auth 模式时,AIX 5L 操作系统通过使用用户标识信息和所提供的密码对服务器执行 LDAP 绑定操作,以便对用户进行身份验证。要实现这种类型的基于 Active Directory 服务器的身份验证,必须将 AIX 5L 密码映射为 Active Directory 的 unicodePwd 属性。在将 AIX 5L LDAP 配置为使用 ldap_auth 模式时,mksecldap 会将密码属性映射为 Active Directory 的 unicodePwd 属性。该特性需要 APAR IY91514,如果尚未安装,请参见 Microsoft Active Directory 以手动更改密码映射。
当用户登录到 Windows 系统时,将使用 unicodePwd 属性。通过将 AIX 5 L 密码映射为 unicodePwd,Active Directory 中定义的用户可以使用相同的密码登录到 Windows 系统和 AIX 5L 系统。AIX 5L 操作系统仅支持在 ldap_auth 模式中使用 unicodePwd。这样做还允许用户从 AIX 5L 系统更改密码,该更改将会在 AIX 5L 和 Windows 系统中生效。
使用 Active Directory 组属性进行组管理
与密码问题类似,Microsoft Services for UNIX 定义了与多个组成员相关的属性:
memberUid
msSFU30MemberUid
msSFU30PosixMember
memberUid 和 msSFU30MemeberUid 属性接受用户帐户名,而 msSFU30PosixMember 仅接受完整的 DN。例如,对于用户帐户 foo(其名字为 bar),它在 Active Directory 中的定义如下:
memberUid:foo
msSFU30MemberUid:foo
msSFU30PosixMember:cn=foo bar,cn=users,dc=ADdomain,dc=abc,dc=com
可以对 AIX 5L LDAP 客户端进行配置,以使用这些属性。您可以与 Active Directory 管理员讨论,以确定使用哪些属性。建议使用 memberUid 或 msSFU30MemberUid 代替 msSFU30PosixMember,因为前者将节省存储空间和网络流量,并具有更好的性能。在缺省情况下,mksecldap 对 AIX 5L LDAP 客户端进行配置以便对运行于 Windows 2000 和 2003 的 Active Directory 使用 msSFU30PosixMember 属性,对运行于 Windows 2003 R2 的 Active Directory 使用 memberUid 属性。这种选择是因为 Active Directory 的行为,当在 Windows 中将用户添加到组中时,它会选择相应的属性。您的组织策略可能需要使用非缺省的组成员属性以支持多种平台。
与密码中的情况一样,AIX 5L 管理员可以对 LDAP 客户端进行配置,以使用不同的组成员属性。通过手动编辑组映射文件,您可以更改映射。对于运行于 Windows 2000 和 2003 的 Active Directory,组映射文件为 /etc/security/ldap/sfu30group.map;对于运行于 Windows 2003 R2 的 Active Directory,组映射文件为 /etc/security/ldap/sfur2group.map。查找以单词“users”开头的行,并使用组成员所需的属性名称替换其中的第三个字段。有关更详细的信息,请参见 AIX 5L 安全指南中的“LDAP Attribute Mapping File Format”。
在完成更改后,执行 mksecldap 命令对 AIX 5L LDAP 客户端进行配置。如果已经配置了 AIX 5L 客户端,可以运行 restart-secldapclntd 命令以重新启动 secldapclntd 守护进程使得更改生效。
多个组织单元
Active Directory 支持分布于不同子树的用户信息。大多数 Active Directory 用户定义于 cn=users,... 子树,但有一些可能定义在其他位置。Active Directory 服务器还可以定义多个组织单元,其中每一个组织单元包含一组用户。AIX 5L 操作系统的多个基本 DN 的支持特性可用于针对这种 Active Directory 服务器进行配置。有关该特性更详细的信息,请继续阅读接下来的部分。
支持多个基本 DN
在 AIX 5L TL5 更新之前,LDAP 用户管理仅支持一个基本 DN。例如,您可以在 /etc/security/ldap/ldap.cfg 文件中仅指定一个用户基本 DN。在存在多个子树的情况下,userbasedn 属性必须指向 AIX 5L 操作系统中所有可见用户的子树的公共父节点。这需要所有的子树都位于相同的后缀中,因为后缀之间不存在公共父节点。
AIX 5L Version 5.3 TL 5 更新实现支持多个基本 DN。在 /etc/security/ldap/ldap.cfg 文件中,可以为每个实体最多指定 10 个基本 DN。根据其在 /etc/security/ldap/ldap.cfg 文件中出现的顺序确定这些基本 DN 的优先级。根据这些基本 DN 的优先级执行 AIX 5L 命令的操作。
将根据其优先级对基本 DN 执行查询操作,如 lsuser 命令,直到找到了匹配的帐户。
如果搜索了所有的基本 DN 而没有找到匹配项,将返回一个错误。如果查询所有的基本 DN,那么将返回每个基本 DN 的所有帐户。
将仅对第一个匹配的帐户执行修改操作,如 chuser 命令。
将仅对第一个匹配的帐户执行删除操作,如 rmuser 命令。
将仅对第一个基本 DN 执行创建操作,如 mkuser 命令。AIX 5L 操作系统不支持为其他基本 DN 创建帐户。
AIX 5L LDAP 客户端不支持在 Active Directory 中创建用户和组。
目录服务器管理员的职责是维护没有冲突的帐户数据库。如果相同的帐户存在多个定义,分别位于不同的子树中,那么对于 AIX 5L 操作系统来说,只有第一个帐户是可见的。搜索操作仅返回第一个匹配的帐户。与之类似,将仅对第一个匹配的帐户执行修改或删除操作。
当使用 mksecldap 命令配置 LDAP 客户端时,将查找基本 DN 并将其保存到 /etc/security/ldap/ldap.cfg 文件。如果对于一个实体,LDAP 服务器中存在多个可用的基本 DN,那么 mksecldap 可随机使用任何一个。如果 AIX 5L LDAP 客户端要使用多个基本 DN,在成功地执行 mksecldap 对 AIX 5L LDAP 客户端进行配置之后,您需要手动编辑 /etc/security/ldap/ldap.cfg 文件。在文件中找到合适的基本 DN 定义,并添加所需的附加基本 DN。对于每个实体,AIX 5L LDAP 客户端最多支持 10 个基本 DN,任何附加的基本 DN 将会被忽略。
下面的示例显示了 /etc/security/ldap/ldap.cfg 中的两个用户基本 DN。
userbasedn: CN=Users,DC=ADdomain,DC=abc,DC=com
userbasedn: OU=sales,OU=DomainControllers,DC=ADdomain,DC=abc,DC=com
AIX 5L 客户端还为每个基本 DN 支持用户定义的筛选器和搜索范围。基本 DN 可以具有自己的筛选器和范围,并且可以与其同等的基本 DN 有所不同。筛选器可用于定义一组对 AIX 5L 操作系统可见的帐户。对 AIX 5L 操作系统来说,只有那些满足筛选器的帐户才是可见的。
接下来的部分将提供更多有关多个基本 DN 格式和筛选器格式的信息。
扩展的基本 DN 格式
在 TL5 更新级别和更新的版本中,AIX 5L 操作系统 V5.3 还支持使用扩展的基本 DN 格式将自定义的 filter 和 scope 字段与每个基本 DN 关联起来,字段之间使用“?”字符分隔。scope 和 filter 属性是可选的。在 AIX 5L 中,支持下列基本 DN 格式:
userbasedn:ou=people, cn=aixdata
userbasedn:ou=people, cn=aixdata?scope
userbasedn:ou=people, cn=aixdata??filter
userbasedn:ou=people, cn=aixdata?scope?filter
第一种格式代表了 secldapclntd 守护进程所使用的缺省格式。分别通过使用 scope 属性或 filter 属性,第二种和第三种格式允许对搜索进行限定。第四种格式允许同时使用范围和筛选器。
scope 属性接受下列取值:
sub
one
base
如果没有指定 scope 字段,其缺省值为 sub。
filter 属性允许进一步对 LDAP 服务器中定义的条目进行限定。您可以使用该筛选器仅使得那些具有某种特性的用户对系统来说是可见的。下面介绍了一些有效的筛选器格式,其中 attribute 是一个 LDAP 属性的名称,而 value 指定了搜索条件。value 可以为通配符“*”。
(attribute=value)
(&(attribute=value)(attribute=value))
(|(attribute=value)(attribute=value))
附录 A. Service for UNIX 3.0 和 3.5 模式映射
下面是面向运行于安装了 Microsoft Service for UNIX Version 3.0 或 3.5 的 Windows 2000 和 2003 服务器上的 Active Directory 的用户和组属性映射文件。AIX 5L V5.3 TL5 更新中附带了该映射文件。
表 2. /etc/security/ldap/sfu30user.map
username | SEC_CHAR | msSFU30Name | s |
id | SEC_INT | msSFU30UidNumber | s |
pgrp | SEC_CHAR | msSFU30GidNumber | s |
home | SEC_CHAR | msSFU30HomeDirectory | s |
shell | SEC_CHAR | msSFU30LoginShell | s |
gecos | SEC_CHAR | msSFU30Gecos | s |
spassword | SEC_CHAR | msSFU30Password | s |
lastupdate | SEC_INT | msSFU30ShadowLastChange | s |
maxage | SEC_INT | msSFU30ShadowMax | s |
minage | SEC_INT | msSFU30ShadowMin | s |
maxexpired | SEC_INT | msSFU30ShadowExpire | s |
pwdwarntime | SEC_INT | msSFU30ShadowWarning | s |
#spassword | SEC_CHAR | unicodePwd | s |
最后的注释行显示了用于 ldap_auth 身份验证模式的密码映射。
表 3. /etc/security/ldap/sfu30group.map
groupname | msSFU30Name | msSFU30Name | s |
id | SEC_INT | msSFU30GidNumber | s |
users | SEC_LIST | msSFU30PosixMember | s |
#users | SEC_LIST | msSFU30MemberUid | s |
最后的注释行显示了替代的组成员属性映射。
附录 B. Windows 2003 R2 模式映射
下面是面向运行于使用 Windows R2 模式的 Windows 2000 R2 上的 Active Directory 的用户和组属性映射文件。这些映射仅作为参考,在附带提供时可能进行了更改。
表 4. Windows 2003 R2 模式的用户属性映射
username | SEC_CHAR | uid | s |
id | SEC_INT | uidNumber | s |
pgrp | SEC_CHAR | gidNumber | s |
home | SEC_CHAR | unixhomeDirectory | s |
shell | SEC_CHAR | loginShell | s |
gecos | SEC_CHAR | gecos | s |
spassword | SEC_CHAR | userPassword | s |
lastupdate | SEC_INT | shadowLastChange | s |
maxage | SEC_INT | shadowMax | s |
minage | SEC_INT | shadowMin | s |
maxexpired | SEC_INT | shadowExpire | s |
pwdwarntime | SEC_INT | shadowWarning | s |
#spassword | SEC_CHAR | unixuserPassword | s |
#spassword | SEC_CHAR | unicodePwd | s |
表 5. Windows 2003 R2 模式的组属性映射
groupname | SEC_CHAR | cn | s |
id | SEC_INT | gidNumber | s |
users | SEC_LIST | memberUid | s |
附录 C. 重要的 APAR
IY91514 要使 AIX 5L 操作系统与运行于 Windows 2003 R2 上使用新的 UNIX 模式的 Active Directory 协同工作,需要使用这个 APAR。 IY91922 支持 ldap_auth 模式密码更改。如果 Windows Active Directory 需要通过 LDAP 进行密码更改,则必须通过安全连接来实现。
更多精彩
赞助商链接