背景:我想使用 Google Apps Directory Sync (GADS) 从运行 Open Directory 的 Mac OS X Server (10.9) 同步用户帐户和密码。GADS 安装在 Ubuntu 12.04 LTS 虚拟机上,并成功配置为将用户帐户从 Mac OS X 服务器同步到 Google Apps。但是,我意识到似乎无法从 Open Directory 同步用户密码。
对于密码同步,GADS 需要以下内容:密码属性、密码时间戳属性和密码加密方法。支持的加密方法有:SHA1、MD5、Base64、明文。
我正在使用 JXplorer 检查 Open Directory LDAP 模式,并注意到对 authAuthority(身份验证机构)的引用。有两个标记为 authAuthority 的 LDAP 属性 - 一个包含 Kerberosv5 的值,另一个包含 ApplePasswordServer 的值。
根据我对 Open Directory Administrators Guide 的理解:与其他一些 LDAP 目录不同,OS X 不会在 LDAP 记录中存储密码——它使用“SASL”机制——它查询“AuthenticationAuthority”属性以确定存放的位置可以找回用户密码。
谁能证实我的评估?此外,如果是这种情况,您能否确认这会阻止我根据其要求使用 GADS?还有一个具有值的“userPassword”属性:(非字符串数据)。这可能是什么?
我不确定这如何与较新的 OS X 服务器变体一起使用,但至少在 10.6 之前这是正确的。他们使用了一个特殊的密码服务器,该服务器有一个加密的各种哈希格式的密码数据库,所有类型的服务都可以查询这些密码(其中一些是专门修改的,例如 Apples Samba 服务器),但无法获取密码摆脱它,例如迁移到“标准”OpenLDAP 服务器。
据我所知,他们只是在以后的版本中大大降低了 OS X 服务器的性能,但基本结构保持不变。
不过,我不能说这可能与 GADS 有关。
Randy Saeks 记录了他如何在 Google Apps for Education 部署中使用 Open Directory 登录名和密码。他的集成指南可从此处获得 PDF 格式:
http://rsaeks.wordpress.com/papers-and-presentations/