add_filter('xmlrpc_enabled', '__return_false'); zimbra自动同步AD帐户 | 癹冬阁
  • 欢迎访问癹冬阁,本站专注于IT服务,记录工作点滴

zimbra自动同步AD帐户

开源世界 Winter 2年前 (2016-06-01) 2283次浏览 已收录 3个评论

企业中使用 AD 作为计算管理中心的还是有蛮多的,我们的zimbra也支持用 AD 来验证,AD 验证设置请浏览https://www.8win.net/2016/06/180.html,但是需要将用户添加到 zimbra ldap 中去,如果用户多的话导入还是有点麻烦的,使用zimbra的迁移工具会丢失一些用户,具体原因目前未知,可能是用户过多导致超时。看 zimbra 的 wiki 发现有autoprov这个工具可以解决,而且还能自动发现后续添加的帐号

1.建立一个批处理文件

$vi /tmp/autoprov.txt

md example.com zimbraAutoProvAccountNameMap “samAccountName” //使用 samaccountname 作为导入帐号主键

md example.com +zimbraAutoProvAttrMap description=description //描述变量

md example.com +zimbraAutoProvAttrMap displayName=displayName //显示名称变量

md example.com +zimbraAutoProvAttrMap sn=sn //姓变量

md example.com +zimbraAutoProvAttrMap givenName=givenName //名变量

md example.com +zimbraAutoProvAttrMap company=company //单位变量

md example.com +zimbraAutoProvAttrMap department=title //部门变量 由于 zimbra 里没有部门这个属性,我把 AD 里的部门属性转换成 zimbra 里的工作职务了,后面的动态组会用到

md example.com +zimbraAutoProvAttrMap cn=cn //帐户名变量

md example.com zimbraAutoProvAuthMech LDAP  //验证方式

md example.com zimbraAutoProvBatchSize 40 //批量大小

md example.com zimbraAutoProvLdapAdminBindDn “CN=vmail,OU=Mail,DC=example,DC=com” //验证用 AD用户

md example.com zimbraAutoProvLdapAdminBindPassword secret //AD用户密码

md example.com zimbraAutoProvLdapBindDn “sAMAccountName=%u,OU=mail,%D” //LDAP 搜索格式

md example.com zimbraAutoProvLdapSearchBase “OU=Mail,dc=example,dc=com”  //LDAP 搜索范围

md example.com zimbraAutoProvLdapSearchFilter “(cn=%u)”  //搜索筛选

md example.com zimbraAutoProvLdapURL “ldap://192.168.100.253:389″  //LDAPURL,也就是 AD 的 LDAP 服务地址

md example.com zimbraAutoProvMode EAGER  //自动配置模式 EAGER 为紧急模式

md example.com zimbraAutoProvNotificationBody “Your account has been auto provisioned. Your email address is ${ACCOUNT_ADDRESS}.” //欢迎邮件内容 可使用中文

md example.com zimbraAutoProvNotificationFromAddress prov-admin@example.com //欢迎邮件发件地址

md example.com zimbraAutoProvNotificationSubject “New account auto provisioned”  //欢迎邮件主题 可使用中文

ms server.example.com zimbraAutoProvPollingInterval “1m”  //循环执行时间间隔,这里为 1 分钟

ms server.example.com +zimbraAutoProvScheduledDomains “example.com” //自动配置的邮件域

2.执行批处理

$zmprov < /tmp/autoprov.txt

prov > md example.com zimbraAutoProvAccountNameMap “samAccountName”

prov > md example.com +zimbraAutoProvAttrMap description=description

prov > md example.com +zimbraAutoProvAttrMap displayName=displayName

prov > md example.com +zimbraAutoProvAttrMap sn=sn

prov > md example.com +zimbraAutoProvAttrMap givenName=givenName

prov > md example.com +zimbraAutoProvAttrMap company=company

prov > md example.com +zimbraAutoProvAttrMap department=title

prov > md example.com +zimbraAutoProvAttrMap cn=cn

prov > md example.com zimbraAutoProvAuthMech LDAP

prov > md example.com zimbraAutoProvBatchSize 40

prov > md example.com zimbraAutoProvLdapAdminBindDn “CN=vmail,OU=Mail,DC=example,DC=com”

prov > md example.com zimbraAutoProvLdapAdminBindPassword secret

prov > md example.com zimbraAutoProvLdapBindDn “sAMAccountName=%u,OU=mail,%D”

prov > md example.com zimbraAutoProvLdapSearchBase “OU=zimbrausers,dc=example,dc=com”

prov > md example.com zimbraAutoProvLdapSearchFilter “(cn=%u)”

prov > md example.com zimbraAutoProvLdapURL “ldap://192.168.100.253:389”

prov > md example.com zimbraAutoProvMode EAGER

prov > md example.com zimbraAutoProvNotificationBody “Your account has been auto provisioned. Your email address is ${ACCOUNT_ADDRESS}.”

prov > md example.com zimbraAutoProvNotificationFromAddress prov-admin@example.com

prov > md example.com zimbraAutoProvNotificationSubject “New account auto provisioned”

prov > ms server.example.com zimbraAutoProvPollingInterval “1m”

prov > ms server.example.com +zimbraAutoProvScheduledDomains “example.com”  配置完成后不需要重启,如果复制我的第一步内容请将描述内容删除。

3.测试

1)在 AD 上 Mail OU 中建立测试帐户 test.

2)查看 zimbra 日志/opt/zimbra/log/mailbox.log

2016-06-01 17:26:00,546 INFO [AutoProvision] [] autoprov – Auto provisioning accounts on domain example.com

2016-06-01 17:26:00,553 INFO [AutoProvision] [] autoprov – 1 external LDAP entries returned as search result

2016-06-01 17:26:00,553 INFO [AutoProvision] [] autoprov – auto creating account in EAGER mode: test@example.com, dn=”CN=test,OU=zimbrausers,DC=example,DC=com”

2016-06-01 17:26:00,558 INFO [AutoProvision] [] autoprov – Auto Provisioning has finished for now, setting last polled timestamp: 20160601092600.550Z

2016-06-01 16:26:00,565 INFO [AutoProvision] [] autoprov – Sleeping for 60000 milliseconds.

出现以上日志表示已经自动创建了 test 邮箱

3)现在就可以登陆邮箱查看了。

4.其它事项

1)相关参数文件请查看/opt/zimbra/docs/autoproc.txt

2)如果使用的 zimbra8.08 以下版本只会第一次能自动创建,在之后在 AD 上创建的帐号将不能自动创建,经查是因为时间戳的原因,8.08 以下的版本时间戳格式为 yyyyMMddHHmmssZ,而 AD 的时间戳格式为 yyyyMMddHHmms.0Z.这个要么禁用时间戳,要么升级.

3)大量用户创建时也会出现部分用户会创建不了,可以修改时间戳来重新创建一次,当然这次的创建不是重复创建之前已经创建的用户.

zmprov md example.com zimbraAutoProvLastPolledTimestamp “20100101010101.123Z”

将这个时间戳修改到 AD 建立之前,基本上就可以创建所有的用户了.

5.错误提示

525 用户未找到

52E 无效证件

530 不允许此时登录

531 不允许在该工作站登录

532 密码过期

533 帐户已禁用

534 用户尚未被授予请求的登录类型在这台机器

701 帐户过期

773 用户必须重新设置密码

775 用户帐户被锁定

8350 DN 格式不正确


癹冬阁版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明zimbra 自动同步 AD 帐户
喜欢 (0)
[winters@8win.net]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(3)个小伙伴在吐槽
  1. 动态组里面,LDAPurl该如何填写啊? 试了以下规则,都无法读到组内成员啊。 ldap://[这里是服务器IP]:3268/??base?(MemberOf=CN=mail002,CN=Users,DC=mailcloud,DC=com) ldap://[这里是服务器IP]:3268/DC=mailcloud,DC=com/??base?(MemberOf=CN=mail002,CN=Users,DC=mailcloud,DC=com) ldap://[这里是服务器IP]:3268/??base?MemberOf=CN=mail002,CN=Users,DC=mailcloud,DC=com
    zimbra小白2017-05-11 13:39 回复 Windows 8.1 | Chrome 57.0.2987.133
  2. 如果公司AD有两处目录设定账号,比如OU=Userx,CN=Users,OU不在CN下面,zimbra如何同时同步这两个目录内的AD账号,以及是否可以以mail为主键同步
    yanzy2017-06-16 14:09 回复 Windows 7 | Chrome 58.0.3029.110
    • 搜索多个OU的话每个OU加一条md example.com +zimbraAutoProvLdapSearchBase “OU=USERX,dc=example,dc=com”,至于CN=USERS这个还真没试过,一般的规划这里面只会有系统默认用户的吧。 至于通过哪个主键同步都可以的的,在md example.com zimbraAutoProvAccountNameMap “samAccountName” 中将"samAccountName"替换为相应的LADP键值就可以了
      Winter2017-07-22 09:18 回复 Windows 7 | Chrome 59.0.3071.115