使用Microsoft Exchange自建电子邮件系统的企业,AD系统作为电子邮件系统的认证平台。作为办公环境的信息中心,AD账号已经关联诸多应用,可谓牵一发而动全身。实现AD账号同步创建对应的阿里邮箱组织架构,邮件系统实现平滑迁移并保持AD账号认证登入阿里邮箱,以实现统一的账号管理。
一、同步规则和注意点
1. 同步对象为部门OU、账号user、邮箱组distribution group、以及邮件组内成员group user;
2. 同步支持DC或OU。如只同步某根OU,不需要同步的对象请勿放置根OU下,或通过给OU的url打上nombx字符标记,AD user的WWWHomePage打上nombx字符标记,安全组的WWWHomePage打上nombx字符标记,OU下的通讯组都同步不支持单个不同步。
3. 同步只做新增、禁用、更新操作,无法执行同步删除邮箱账号、邮件组、部门的操作(如更改sAMAccountName值等于和原邮箱账号解除同步关系,且会根据新的sAMAccountName值新建出邮箱账号)。
4. cn在阿里侧是“默认昵称”对内的,发给同域的账号收件人会看到来信账号显示名为“姓名(默认昵称)”; displayname在阿里侧是“自定义昵称”对外的,发给外部邮件收件人会看到来信账号显示名为设置的 “自定义昵称”。
域管需要添加超过两个账号别名的情况下不建议做mail同步,因为同步AD mail后即以AD为基准,邮箱侧添加的别名会被mail覆盖删除,只保留AD mail同步过来的别名地址;
邮箱需要用到多个独立域名的,做AD同步前请先在域管添加上其他的多域子域,然后新建一个多域账号,最后再做AD同步。已先做AD同步后添加多域子域的,如账号删除了无法进行恢复,如有历史数据需要备份,请通过邮件转移实现,邮件转移操作请参考什么是账号回收站;
同步周期一般为分钟级别,最长同步周期为 1 小时/ 次, 1000账号大概5分钟左右同步完成,确保您的AD服务器的时间是准确的。如多台AD服务器之间也有同步,请确保用于直接同步阿里邮箱的那台AD服务器上的生效时间,以保证增量同步至阿里侧的时效性。
为保证离职员工邮箱及时冻结,强烈建议维护离职员工 OU,对离职的 AD 账号做禁用操
作,后期统一做删除维护。这样可以保证邮箱账号及时冻结,即使离职员工邮箱 app 处于登入态,也可以保证其邮件收发处于禁用状态。
当 AD 中删除了账号又新建同一个账号时,邮箱同步为了防止重复账号发生,会先检查原
邮箱是否存在,存在则做账号重命名-账号_backup 操作,再同步新建的 AD 账号对应的邮箱。
例如:删除 AD 账号 user@a.com, 又在 AD 中新建 user@a.com,则邮箱会先生成一个
user_backup@a.com 的邮箱,再同步生成 user@a.com 邮箱。
同步支持的字段 1、如下是默认支持同步的字段,除账号名外,其他字段支持自定义,可选择AD任意属性字段进行同步; 2、可自定义的这些字段也支持不同步,如无需同步请提前告知。 | |
AD侧 | 邮箱侧 |
cn | 姓名 |
sAMAccountName | 账号名,默认邮箱地址@前缀 |
title | 职位 |
telephoneNumber | 工作电话 |
mobile | 手机 |
域别名/账号别名/独立多域账号 | |
displayname | 自定义昵称(你发到公司外的邮件,发件人将显示自定义昵称) |
暂无默认对应属性字段 | 默认昵称(企业内账号间可见) |
暂无默认对应属性字段 | 工号 |
组同步特殊说明 | |
通讯组 | 安全组 |
sAMAccountName要符合邮箱账号名格式 | sAMAccountName要符合邮箱账号名格式 |
Name可以中文 | Name可以中文 |
Mail要符合邮箱地址格式 | Mail要符合邮箱地址格式 |
组作用域可以全局或通讯 | 组作用域可以全局或通讯 |
组内成员可以同步 | 组内成员可以同步 |
外域组员需填写mail值 | 外域组员需填写mail值 |
二、认证规则和注意点
做完认证原本的鉴权中心会从邮箱切到了AD系统,即当用户在客户端或网页端输入账号密码的时候,通过标准LDAP协议查询到企业的AD账号服务,由AD系统校验账号和密码的正确性,如果正确则返回给阿里邮箱告知可以登录。
1. 请务必在AD侧创建postmaster账号,且postmaster的userPrincipalname属性值必须填写与邮箱侧postmaster一样的地址,否则认证后将无法登录管理员邮箱。
2. AD服务器地址和端口需要在公网以供阿里邮箱调用。为保证AD服务的安全性,AD服务可以设置acl来源ip: 115.124.XX.XX 、59.82.XX.XX进行访问控制。
一旦选择通过AD账号认证登入阿里邮箱,那么所有关于登入鉴权及密码的修改操作均在您的AD服务器上实现。若AD系统宕机则无法继续登录邮箱。阿里支持主备AD进行认证,避免一台机器宕机后无法继续登录邮箱。
三、实现场景对比
支持的三类场景:只做同步不做认证、只做认证不做同步、既做同步又做认证。三类场景略有区别,且有需要特别注意的地方。
场景 | 区别 |
只做同步 | 1. user的userPrincipalname可以与登录的邮箱地址不一致。 2. 不能同步密码,同步后邮箱账号是没有密码的,需要在邮箱域管进行密码设置才能登录阿里邮箱。 重要 切换场景时需要特别注意,如原本AD同步认证都做,后续改成不认证只同步,请事先做好准备。 |
只做认证 | 1. 要求AD中所有需要认证登录的user中userPrincipalname(如有)字段有 email 地址值, 且该值与登录的邮箱地址保持一致。 重要 切换场景时需要特别注意,如原本AD同步和认证都做,后续改成不同步只认证,请事先做好准备。 2. 登录邮箱需使用AD账号密码,邮箱侧设置的密码无法登录邮箱。 |
同步认证都做 | 1. 除了postmaster其他user的userPrincipalname可以与登录的邮箱地址不一致。 2. 登录邮箱需使用AD账号密码,邮箱侧设置的密码无法登录邮箱。 |
四、属性获取
打开“Active Directory 用户和计算机”,勾选上查看中的“高级功能”,否侧无法看到AD对象的属性。
部门或用户或邮件组对象,右键-属性-属性编辑器,找到所需的相关属性。
ps:点击任意属性键盘输入需要查找的属性首字母,可以快速找到所查属性。
五、小技巧
如果同步出现较严重延迟,过了很久部门账号或邮件组都没同步至邮箱侧,建议刷新AD对象的任意非同步认证相关的关键属性值来触发同步。如果涉及到对象比较多,也可以通过如下指令进行批量操作。
方案1:直接打开cmd命令框
csvde -f C:\Users\Administrator\Desktop\20210908.csv -r "(objectClass=user)" -d "OU=小OU,OU=大OU,DC=xxx,DC=com" -l "SamAccountName,Mail"
ps:有一些特殊的值也不能直接导出,如 wWWHomePage,如果要修改可以参考方案2的 import-Csv 命令
方案2:通过PowerShell 的 AD模块实现
在管理工具中打开用于Windows PowerShell的ActiveDirectory 模块命令行窗口或打开命令提示符窗口输入PowerShell回车再输入import-module activedirectory 导入AD模块。
批量修改导出的csv中账号的相关属性
Import-Csv -Path C:\Users\Administrator\Desktop\20210908.csv | foreach {Get-ADUser -Identity $_.SamAccountName |Set-ADUser -email $_.mail -HomePage $_.wWWHomePage }