共计 4415 个字符,预计需要花费 12 分钟才能阅读完成。
企业中使用 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 格式不正确