在一个项目中,我需要使用存储在基于Mac服务器的LDAP中的用户数据库来使用postfix + courier和samba创build邮件服务器。 你能告诉我,如果有人做了这个,或者如果可能的话(理论应该是)。 如果你能给我一个提示,我会感谢你的剩余时间:)
提前致谢
看来postfix , Courier和Samba都支持从LDAP中提取用户信息。
您需要知道OS X服务器的LDAPsearch基础(您可以在服务器pipe理 – >侧边栏中的开放目录模块 – >工具栏中的概述中find它) – 它通常是服务器在LDAP中的完整域名(例如,macserver.example.com将是dc = macserver,dc = example,dc = com); 用户帐户将在cn = users,searchbase(例如cn = users,dc = macserver,dc = example,dc = com)下。
用户属性映射应该相当简单,因为OS X遵循unix标准(RFC 2307)。 如果您确实需要查看用户的LDAP属性以了解如何configuration服务,请使用Workgroup Manager,在应用程序首选项中启用其“所有logging”选项卡和检查器(这是“工作组pipe理器”菜单下的“首选项”,而不是工具栏中的首选项标签); 启用该function后,select一个用户,然后select右侧的Inspector选项卡,然后查找“Native”(aka dsAttrTypeNative)属性,查看用户logging在LDAP中的存储方式(注意:通过单击可以简化视图选项button,并closures除“显示本地属性”之外的所有内容)。
您可能碰到的最大障碍是默认情况下,OS X的Open Directory不会以“标准”格式(LDAP中的用户logging中的unix crypt表单)存储用户密码,因此您可能在configuration时遇到问题快递和桑巴validation用户密码。 OD通常通过Kerberos或基于SASL的密码服务器来validation用户。 如果你能弄清楚如何configurationKerberos(并且客户端软件/configuration支持它),那么你的状态良好。 我怀疑Courier或Samba是否知道如何通过密码服务进行身份validation,但是我可能是错的(如果是的话,我很想知道 – 请留下一个指向更多信息的注释!)。
如果这两者都不可行,则另一个select是将服务器configuration为通过LDAP绑定进行身份validation(即,通过尝试使用密码来validation与OD服务器的LDAP连接来检查用户密码) – 如果可能,请避免这种情况要求从客户端到Linux服务器以及从Linux服务器到OD LDAP服务器以明文forms发送密码(使用SSL可以避免IMAP和LDAP的这个问题,但是不能用于SMB;而且最近的SMB客户端也会拒绝以明文forms发送密码)。 (我不知道Courier或者Samba是否支持这个。)
最后,你可以将用户的密码保存为隐藏forms(在工作组pipe理器中有一个选项,在用户的高级选项卡下) – 避免这一点,因为这意味着密码在客户端和Linux服务器之间是未encryption的(除非你使用SSL), 也容易受到任何有权读取LDAP域的人的字典攻击。