阿里邮箱AD同步&认证

使用Microsoft Exchange自建电子邮件系统的企业,AD系统作为电子邮件系统的认证平台。作为办公环境的信息中心,AD账号已经关联诸多应用,可谓牵一发而动全身。实现AD账号同步创建对应的阿里邮箱组织架构,邮件系统实现平滑迁移并保持AD账号认证登入阿里邮箱,以实现统一的账号管理。 AD同步效果图

1

一、同步规则和注意点

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在阿里侧是“自定义昵称”对外的,发给外部邮件收件人会看到来信账号显示名为设置的 “自定义昵称”。

重要
  1. 域管需要添加超过两个账号别名的情况下不建议做mail同步,因为同步AD mail后即以AD为基准,邮箱侧添加的别名会被mail覆盖删除,只保留AD mail同步过来的别名地址;

  2. 邮箱需要用到多个独立域名的,做AD同步前请先在域管添加上其他的多域子域,然后新建一个多域账号,最后再做AD同步。已先做AD同步后添加多域子域的,如账号删除了无法进行恢复,如有历史数据需要备份,请通过邮件转移实现,邮件转移操作请参考什么是账号回收站

  3. 同步周期一般为分钟级别,最长同步周期为 1 小时/ 次, 1000账号大概5分钟左右同步完成,确保您的AD服务器的时间是准确的。如多台AD服务器之间也有同步,请确保用于直接同步阿里邮箱的那台AD服务器上的生效时间,以保证增量同步至阿里侧的时效性。

  4. 为保证离职员工邮箱及时冻结,强烈建议维护离职员工 OU,对离职的 AD 账号做禁用操

    作,后期统一做删除维护。这样可以保证邮箱账号及时冻结,即使离职员工邮箱 app 处于登入态,也可以保证其邮件收发处于禁用状态。

  5. 当 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

手机

mail

域别名/账号别名/独立多域账号

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对象的属性。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 }