如果是纯云端的用户,那么我觉得没有什么问题,但如果有一天想把云端的Azure AD的用户同步到本地的AD如何做呢?当然云端的Azure AD用户是无法同步到本地的AD的,但可以曲线救国实现类似的需求目标。接下来详细看看:

假设我这有一个环境是纯云端的Office 365用户(Azure AD)

clip_image001

域是basehome.com.cn

clip_image002

云端的这些用户密码都是统一的abc123!@#,都具备自己的Exchange Online邮箱,并且邮箱里有信件,而不是空邮箱

clip_image003

问题来了,因为企业的不断扩张,想建立本地的AD与Office 365做AD混合,实现张三的账号能在本地AD里,且张三Office 365的邮箱数据不丢失。那怎么办呢?我首先在本地建立一套AD,域名也是basehome.com.cn,同样的建立和云端Office 365用户一样的账户登录名,比如先建立一个账户:

image

clip_image004

本地AD再增加一台Windows Server 2012 R2加域,配置好Azure AD Connect,具体如何配置可以参考《本地AD账户同步到Office 365(21V)Azure AD》,这里我就不再缀诉

同步的也不是本地整个域,而是具体的指定一个OU:

clip_image005

检查同步状态可以用这个工具:miisclient

clip_image006

配置好以后会看到本地AD的zhangjunsen@basehome.com.cn账户同步到了Office 365的Azure AD里并不是覆盖Office 365 Azure AD的zhangjunsen@basehome.com.cn,而是自动出现了一个随机编码的账户名

clip_image007

从同步的信息来看也是写得很清楚的,重复了

clip_image008

当然这不是我们所期望的,还是希望本地AD的张三和Office 365云端的张三能是匹配相关联的。

那怎么办呢?首先需要在本地AD的AADConnect服务器上配置下AD Connect关闭密码同步,避免本地AD账户把云端账户密码覆盖掉(相同账户前提下)

clip_image009

什么是相同账户,判断主要是三个属性:

UserPrincipalName;Emailaddress;Proxyaddresses

所以需要将在本地AD中创建的用户UserPrincipalName,Emailaddress,Proxyaddresses三者的属性值需与云端相对应的账号属性值相匹配,如下示例:

示例:

云端已经使用的账户A地址如下

UserPrincipalName:a@contoso.com

Emailaddress:a@contoso.com

Proxyaddresses :SMTP:a@contoso.com

要匹配至云端的本地用户A创建时

UserPrincipalName:a@contoso.com

Emailaddress:a@contoso.com

Proxyaddresses :SMTP:a@contoso.com

先看看Office 365上云端Azure AD的张三账户属性,连接到Office 365的Azure AD只能看到UserPrincipalName和Proxyaddresses属性:

clip_image010

clip_image011

Emailaddress属性需要该账户开通了Exchange Online才可以连接到Exchange Online里才可以看到

clip_image012

clip_image013

那么我在本地AD里新建张三的账户就需要注意这三点,先不要在同步的OU里创建张三,我在Stand by Users的OU里创建张三

clip_image014

密码我就设置成zhangsan

clip_image015

张三创建好放在Stand by Users的OU里

clip_image016

设置Proxyaddresses需要先点开AD用户和计算机的高级选项

clip_image017

选择张三用户,点击属性会多一个属性编辑器选项,找到Proxyaddresses,点击编辑

因为之前在Office 365 Azure AD里看到了云端的张三这项属性值是:

{smtp:zhangsan@homebase.partner.onmschina.cn, SMTP:zhangsan@basehome.com.cn}

在这里指需要填写SMTP:zhangsan@basehome.com.cn即可(注意大小写的SMTP哦,哪个SMTP是大写就意味着是主要登录地址以及主要邮箱的发件地址)

clip_image018

添加进去点击确定

clip_image019

当然在属性编辑器里也可以看到UserPrincipalName的值是否和Office 365云端的张三一致

clip_image020

对于Emailaddress属性默认是没有的,这里也不用太在意

clip_image021

接下来张三准备就绪了,我就把张三账户从Stand by Users移动到Users的OU里同步到Office 365的Azure AD看有什么变化

默认同步周期为30分钟同步一次,如果您需要立即执行同步,请在本地AADConnect服务器的Powershell执行

增量同步Start-ADSyncSyncCycle -PolicyType Delta

完全同步Start-ADSyncSyncCycle -PolicyType Initial

clip_image022

再看看Office 365上Azure AD的账户会发现没有新建一个随机编码的AD同步账号上来,而是张三的账号由原来的”在云中“变成了”已与AD同步“

clip_image023

此刻让张三的账号登录,当然还是以abc123!@#密码登录看邮箱里的数据是否依然存在,答案是没变化,但账户的同步关系和隶属变了,张三不再是纯云端的用户,而是从本地AD同步上来的用户

clip_image024

下来我在本地AD Connect开启密码哈希同步

clip_image025

我们再试下张三是否还可以以abc123!@#密码登录吗?提示密码错误了

clip_image026

但如果我此刻采用本地AD张三的密码zhangsan来登录呢?答案是可以登录的

clip_image027

这说明说明问题呢?说明可以通过这样的方法实现“曲线救国”式的将云端Office 365实现和本地AD的合并或者说把云端的Office 365账户同步回本地AD吧。

接着我再做个测试,之前的张俊森账户已经同步上Office 365成为了如下这样的账户(因为UserPrincipalName属性重名)

clip_image028

接下来我直接修改本地AD里Users OU里张俊森账户的属性,把Proxyaddresses属性值添加上

clip_image029

看同步会发生变化吗?张俊森的云端账户同步类型也变了,说明本地AD的张俊森也云端张俊森建立了新的匹配对应关系

clip_image030

那么之前那个同步上来的张三(Sync_AADCONNECT_8686494b4295@homebase.partner.onmschina.cn)可以删除吗?答案是无法删除

clip_image031

那么要删除它可以通过Powershell

clip_image032

这样Office 365上就没有这个账户了

clip_image033

张俊森以本地AD的密码登录Office 365邮箱看到邮箱数据依然存在

clip_image034

到此就介绍到这了,最后感谢scnbwy的支持。