天天看点

Azure Active Directory Connect深度解析

AADC(Azure Active Directory Connect),这个是微软开发的第四代同步身份同步工具了,从最早的Directory Synchronization 一直到现在。

中小型的企业在使用这个工具的时候,往往就是下一步下一步的设置,就完成了,但是对于企业级用户,有很多需要考虑的地方。这里我们从下面这些点一个一个说起:

1.AADC的拓扑架构

2.数据流

3.同步服务器角色

4.SOA和UPN

5.AADC服务账户

6.同步过滤选项

7.常见问题

8.AADC 健康状态监视

1.AADC的拓扑架构

这个参考官方文档里提到的架构(https://docs.microsoft.com/en-us/azure/active-directory/hybrid/plan-connect-topologies),但是主要记住下面的两种情况,这是很多企业都会犯错的两种架构

Azure Active Directory Connect深度解析

不支持1个AADC服务器向多个Office 365租户同步,也不支持1个林里多个AADC服务器向同一个Office 365 租户同步。

有人会问那右上角这个图,很明显是要做高可用的,如果不支持这个架构,那么高可用怎么做?

Azure Active Directory Connect深度解析

另外架构上需要注意的就是如果你是要跟21世纪互联的Office 365做tango,那么也不属于AADC的支持范围,这个做法参考我另外一篇博客。

2.数据流

整个同步的数据流见下图:(metaverse不知道怎么翻译比较好)

Azure Active Directory Connect深度解析

每个同步过程分6步,但是通过图可以看出来其实是对称的,所以一共是3步:

1.导入–数据导入到metaverse中

2.同步–metaverse中进行同步,应用同步规则,过滤等等设置

3.导出–将同步好的信息导出到本地AD和Azure AD

举个例子:本地新入职一个用户,Office 365里有个用户在云端修改了密码

1.本地和Office 365都将这个数据变化导入到metaverse中

2.metaverse将数据同步,告诉本地AD有个用户改密码了,这里是她/他的新密码,也告知Azure AD,这里新添加了一个用户需要同步到Azure AD

3.两边把更新的信息导出到各自的数据库中

Azure Active Directory Connect深度解析

打开Synchronization service manager可以看到每个同步记录,import/export/sync。因为同步默认是每半个小时进行一次,所以导入跟同步都是delta的,也就是增量,输入和同步变化/更改的部分。除了第一次配置AADC或者手动使用PowerShell强制一次full sync。

3.同步服务器角色

这个上面基本覆盖到了:

每个林中都有一个连接器

连接器代表每一个ADDC的数据源

metaverse是一个SQL数据库,这里应用逻辑和规则

Azure Active Directory Connect深度解析

4.Source Anchor和UPN

我们介绍一下这两者的基本概念以及该如何选择

Source Anchror就是用户的GUID,被转换为Base 64后到云端变为Immutable ID:

Azure Active Directory Connect深度解析

同步GUID其实本身没毛病,但是对于一些企业并购的情况,会在本地有林到林迁移的过程,这个动作会使得用户的GUID发生改变。这个改变对AADC的同步来说是个大问题,对AADC来说等于是一个全新的用户了。所以目前官方建议的是同步另外一个ID,也就是MS-DS-CONSISTENCYGUID:

Azure Active Directory Connect深度解析

这个是不会变的。如果目前你在使用用户的objectid,想换成MSDS这个,必须在AADC的setup wizard中去改:source Anchor

Azure Active Directory Connect深度解析

如果跳了下面这个警告:

Azure Active Directory Connect深度解析

使用PowerShell命令来重新打开:AzureADConnect.exe /skipldapsearch

Azure Active Directory Connect深度解析
Azure Active Directory Connect深度解析

注:这个操作其实就是在重写现有的MS-DS,等于用objectGUID去替换了MS-DS,所以还要先确认MS-DS没有正在使用到其他的服务里和应用中。

UPN也不是每个企业都允许使用,也可能是本地环境问题,所以同步的时候可能需要选择其他的登录方式,比如用alternative login id。具体的配置方式可以参考官方文档–https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/configuring-alternate-login-id

5.AADC服务账户

这里有3个账户:

1.AD同步服务账户

2.云连接器服务账户

3.AD服务账户

AD同步服务账户是运行AADC服务的账户,也是具有访问数据库权限的账户,如果用的SQL EXPRESS,用的NETWORK SERVICE这个账户 ,这种情况也是不能改账户的,因为这个账户可以访问加密密钥。如果一开始要换账户,或者有代理服务器的情况,那么可以选择可以访问代理服务器的账户。当然如果你有代理服务器,配置AADC的时候还有额外的步骤要做(在配置文件里做修改,添加代理信息和端口信息)

对于云连接器服务账户,这个账户是AADC 部署向导创建的,千万注意的是不要把这个账户设置为全球管理员,更不要去更改这个账户的密码。可以在Azure AD里找到这个账户(office 365的活跃用户也可以)

Azure Active Directory Connect深度解析
Azure Active Directory Connect深度解析

最后一个是用来查询AD,密码同步以及密码回写的账户。

这里提到了密码同步,那么密码同步与账户同步不是同时进行的,有经验的应该注意到过,在Office 365里同步健康状态下会分开来显示上一次账户同步的时间和密码同步的时间,而且这个差别不是运行一次完全同步(full sync)就可以协调的。

想要运行一次密码同步的方式就是禁用AADC再启用。

6.同步过滤选项

可以设置的过滤有:

1.组过滤,建议测试的时候用,不建议在生产环境使用

2.OU过滤,特别注意不要移动OU里的账户

3.属性过滤,比较建议的,根据特定的用户属性来过滤

Azure Active Directory Connect深度解析

4.域过滤,这个不用过多解释,多域的情况就在AADC设置的时候一个一个添加

Azure Active Directory Connect深度解析

对于一些optional feature,这要看实际情况,比如设置Exchange hybrid,如果你确实部署混合部署那么必须勾选上,不然有11个属性无法回写的本地那么在你在Exchange Online选择需要迁移的账户的时候无法找到任何本地账户。又或者密码回写,没有AADP的许可证也是做不了的。

7.常见问题

第一个需要注意的就是当你打开AADC做修改的时候,同步是暂停的,AADC也会提示你,所以这个时候如果有人反应一些同步问题,这就是原因

Azure Active Directory Connect深度解析

第二个问题就是发现一些Object没有同步到云端

要做的就是检查一下当前设置的过滤条件,还有一些AADC的默认设置会屏蔽掉一些账户。比如内置–bulit in的账户

对于设备没有同步的情况,检查synchronization rule manager,因为默认是不同步设备信息的

Azure Active Directory Connect深度解析

权限导致的同步问题:

如果出现类似图中的报错,(只能网上找一张报错图片,不是很清楚)

Azure Active Directory Connect深度解析

说明是当前使用的账户权限错误,如果不想使用全球管理员的话,可以把这个账户添加到account operator组里:

Azure Active Directory Connect深度解析

8.AADC的健康状态监视:

首先这个需要AADP P1的许可证

Azure Active Directory Connect深度解析

其他

对于比如密码问题:

如果是密码哈希同步,运行下面的PowerShell:

invoke-adsyncdiagnostics -passwordsync

invoke-adsynccsobjectpasswordhashsync

密码回写问题:

get-adsyncaadpasswordresetconfiguration -connector"deltasway.onmicrosoft.com -aad"

如果涉及同步directory extension 的情况,只能用以下3种方式排错:

1.Azure AD Module(注意不是PowerShell,一定要下载Azure AD module)

2.Microsoft Graph API

3.Exchange-比如extension attribute

Azure Active Directory Connect深度解析

继续阅读