企业中使用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格式不正确