将 Solaris/AIX 桥接到 Active Directory 的解决方案?

将 Solaris/AIX 桥接到 Active Directory 的解决方案?

我需要让 Solaris 和 AIX 系统获得 AD 的身份验证和名称服务。我在 Solaris 上取得了一些成功使用 OpenLDAP 作为代理用于用户身份验证。我还成功配置了 AIX 以使用 AD kerberos 身份验证和 AD LDAP 命名服务。但是,对于这两个平台,我有两个严重的问题需要帮助:

  1. AD 用户/组可以是大写或小写,也可以是大写或小写的组合,但为了获得一致的最终用户体验和在 UNIX 中按预期运行的实用程序,它们应该是小写的。在 AD 中批量重命名 ID 很难实现。Linux sssd 可以进行小写转换,但 AIX/Solaris 不能。
  2. AIX 和 Solaris 要求组成员具有 rfc2307“memberUid”属性(例如 memberUid=user1),而 AD 使用 rfc2307bis“member”属性(例如 member=cn=user1,dc=foo,dc=com)。有没有办法使用 OpenLDAP 或其他方式为 Solaris/AIX 客户端重写 member 中的 memberUid?slapo-rwm 可以重写 DN,但似乎无法进行这样的转换。

答案1

您可以使用 Kerberos 将 AIX 登录映射到 AD 名称/域。此 IBM 页面是 AD 和服务器配置的一个很好的参考。然后你只需执行以下操作:

chuser auth_name=ADUSER auth_domain=example.com registry=KRB5Afiles SYSTEM=KRB5Afiles login

(请注意,这在 AIX7.1 上略有不同,但在 6.1 和 5.3 上运行良好。)

这就是我们在工作场所对 AD 进行身份验证的方式,而且它非常容易维护,不需要 LDAP 连接。

答案2

考虑到我的需求,我们最终使用的解决方案是 OpenLDAP contrib 模块 (overlay) adremap,它存在于 OpenLDAP 的每个源发行版中,参见此链接。我们与 Symas 签订了合同,让他们开发它并将其放入上游 OpenLDAP。此覆盖将小写用户名并动态将 rfc2307bis 成员属性转换为 memberUid。如果已编译,手册页将提供使用它的文档:man slapo-adremap

我已将 OpenLDAP 配置为 AD 的代理,使用 adremap 覆盖(小写、组转换)和 rwm(man slapo-rwm)将旧的 Solaris/AIX LDAP 客户端想要的 LDAP 属性映射到 AD 等效项。

正在使用的 adremap 配置:

overlay adremap
adremap-downcase uid
adremap-downcase cn
adremap-downcase memberUid
adremap-downcase member
adremap-downcase samaccountname
adremap-dnmap member cn memberUid group posixGroup person dc=example,dc=com

部分 rwm 覆盖配置:

rwm-map attribute       gecos           displayName
rwm-map attribute       uid             samAccountName
rwm-map attribute       homedirectory   unixHomeDirectory
rwm-map objectclass     posixGroup      group
rwm-map objectclass     posixAccount    user

将 OpenLDAP 配置为代理已在 中介绍man slapd-ldap,这超出了我在这里可以提供的内容。

经过一段时间的思考,我发现目前还没有完美的解决方案,但这个解决方案对我们来说是可行的。请注意,此解决方案也适用于较旧的 RHEL(EL6 之前的版本)LDAP 客户端,因为它们无法将用户名小写。

相关内容