zimbra自动同步AD帐户

开源世界 Winter 3年前 (2016-06-01) 5824次浏览 已收录 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)
发表我的评论
取消评论

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

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 回复
  2. 如果公司AD有两处目录设定账号,比如OU=Userx,CN=Users,OU不在CN下面,zimbra如何同时同步这两个目录内的AD账号,以及是否可以以mail为主键同步
    yanzy2017-06-16 14:09 回复
    • 搜索多个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 回复