一、Microsoft AD服务分类

因为最近在支撑搞云桌面项目时,遇到需要连接微软AD进行鉴权的需求,本篇总结下AD相关的三个服务。微软有三个AD(活动目录)相关的服务,分别是:

  • Active Directory (AD):其全称实际上是AD DS — 这里面实际上是活动目录和域管理服务(domain service)两个东西,线下或云上单独windows server服务器部署;它是面向企业的轻量级目录访问协议 (LDAP) 服务器,提供身份和对象管理功能以及组策略、身份验证和信任功能。它由组织实施,主要用于管理其本地 IT 环境。
  • Azure Active Directory (AAD):简称AAD,是Azure云上提供的SaaS化的AD服务,提供身份认证、单点登录、多因子认证;它是用于移动设备和基于云的身份管理的集成解决方案,包括 SaaS 应用程序和服务的帐户和用户身份验证方法。
  • Azure Active Directory Domain Services (AADDS):是Azure云上提供的SaaS化的AD DS服务,这个其实和单独搭建的AD更接近,其提供了Windows Domain Join, group policy, LDAP, and Kerberos 认证相关的能力。而这些能力是AAD所不具备的,AAD可以认为是更接近云化时代的产物。它是一项提供托管域体验的服务,可通过降低复杂性来简化 AD DS 的实施,同时提供相同的核心服务组件。

除此之外,云上还有一个 Azure Active Directory External Identities 服务 — 用于更简单的实现Google、Facebook等常见的社媒登录。其和 AAD AADDS都属于 Microsoft Entra 的一部分。

1. Microsoft AD

Active Directory 是一个组织公司用户和计算机的数据库。它为网络上的应用程序、文件服务、打印机和其他资源提供身份验证和授权。它使用 Kerberos 和 NTLM 等协议进行身份验证,并使用LDAP来查询和修改 Active Directory 数据库中的项目。其具有如下特性:

  • 安全对象存储,包括用户、计算机和组
  • 对象组织 – 组织单位 (OU)、域和林
  • 通用身份验证和授权提供商
  • LDAP、NTLM、Kerberos(加入域的设备之间的安全身份验证)
  • 组策略 – 用于对域中的 PC 和服务器进行细粒度控制和管理

2. AAD

AAD 没有域控制器,只有身份管理解决方案,子 dns 名称默认为 onmicrosoft.com,但可以自定义现代身份验证机制:OAuth2、SAML、WS-FED、云身份验证、PTA,无缝连接到任何 Microsoft 在线服务、数千个 SaaS 应用程序。但其做不到以下功能:

  • 不提供组策略、LDAP、NT LAN Manager (NTLM) 和 Kerberos 身份验证
  • 您无法将服务器加入其中
  • 您无法以相同的方式将 PC 连接到它 – 仅适用于 Windows 10 的 Azure AD Join
  • 它是一个扁平的目录结构——没有 OU 或森林

3. AADDS

Microsoft AZURE 托管,支持 OU 和 GPO(Group Policy Object),未连接到 AD、不同站点/林(site/forest),客户不是企业管理员,不是架构管理员,也不是域管理员,对应的权限是受限的。其通常使用在以下场景:

  • 传统身份验证即服务(Kerberos、NTLM)
  • 需要域加入的云解决方案(Microsoft 虚拟桌面、文件共享的 AD 身份验证

其常用应用场景可以查看官方文档:Common use-cases

三、数据同步

1. 三者之间数据同步

三者间的数据同步,我们可以参看官方文档:How objects and credentials are synchronized in an Azure Active Directory Domain Services managed domain

microsoft-ad-synchronization
microsoft-ad-synchronization

从图上不难看出,AD 和 AAD 之间的同步是双向的,而从AAD 到 AADDS之间的同步是单向的,虽然AD 和AADDS 之间有更多的功能相似性,但其中间是经过AAD中转的(其实很容易理解,域控制器在微软看来属于旧时代的产物,云化时代为了兼容一些遗留系统才有了AADDS,后续新产生的应用肯定是向 AAD 来演化的)。

2. AD 和 AAD之间数据同步

线下数据中心 On-permises AD 和 AAD 之间是通过 AAD Connect 进行同步的,其通过本地安装AAD connect程序后,将本地AD里的数据转化为SQL,再将SQL数据同步给云上的AAD程序。

azure-ad-connect
azure-ad-connect.png

3. 云上 AAD 和 AADDS 间的数据同步

这两者之间的同步比较简单,在Azure的web页面上直接可以通过点选配置:

synchronzation-azure-portal
synchronzation-azure-portal

三、Microsoft AD服务间的区别

1. AD 与 AADDS

以下是 AD(不是 AAD)和 AADDS 之间的一些主要区别:

特征 AADDS AD
托管服务
安全部署 自行保护部署
DNS服务器 (托管服务)
域或企业管理员权限
域加入
使用 NTLM 和 Kerberos 进行域身份验证
Kerberos 约束委派 基于资源 基于资源和基于帐户
自定义OU结构
组策略
模式扩展
AD域/林信任
安全 LDAP (LDAPS)
LDAP 读取
LDAP 写入 (受管域内)
地理分布式部署

AADDS 提供与 Active Directory 的部分功能完全兼容的体验,由于它是托管目录服务,因此 DC 具有高可用性,并且 AADDS 将自动备份。同时 AADDS 对应的缺点是:

AADDS 确实支持组策略。但是,本地没有 GPO 复制;您必须在托管目录服务中重新创建所需的策略。如果您更改本地目录,则必须在托管目录中执行相同的更改(这很好理解,中间的 AAD 没有组策略的能力)。同样的,从 Azure AD 租户到 AADDS 的复制是一种单向复制。该虚拟网络中的托管域之外没有用于 LDAP 写回的工具,这意味着更改不会通过 AD Connect 同步过程写回到本地 AD。

2. AAD 与 AADDS

这里没选用中文版本,因为翻译的意思感觉有点不太对,这里选用英文原文:

Aspect Azure AD-joined Azure AD DS-joined
Device controlled by Azure AD Azure AD DS managed domain
Representation in the directory Device objects in the Azure AD directory Computer objects in the Azure AD DS managed domain
Authentication OAuth / OpenID Connect based protocols Kerberos and NTLM protocols
Management Mobile Device Management (MDM) software like Intune Group Policy
Networking Works over the internet Must be connected to, or peered with, the virtual network where the managed domain is deployed
Great for… End-user mobile or desktop devices Server VMs deployed in Azure

这部分参考:compare-identity-solutions

3. AD 与 AAD

两者之间通过下表的以下维度进行区分:

对比维度 AD AAD
可扩展性 强,Azure AD 基于基于 REST 的图形 API,因此它比 AD DS 更容易扩展。Azure AD 专门设计为多租户解决方案,比如 Office 365 订阅鉴权
安全性 强,毕竟受众受限。AD DS 是一个域控制器,可以在本地或虚拟机上实施。它保存用户帐户的信息,并允许其他授权用户访问这些信息以进行用户和资源管理。AD DS 和 Azure AD DS 都使用 Kerberos 和 NTLM 协议进行身份验证。 弱,保护依赖 OAuth 和 OpenID Connect 协议进行身份验证的设备和应用程序访问互联网的服务。
集成度 AD DS 是一个用于管理本地网络资源(例如服务器、卷、打印机以及在用户之间共享的网络用户和计算机帐户)的目录。 Azure AD 使用户不仅可以访问一些最常用的 Microsoft 应用程序(例如 Excel、Word 和 SharePoint Online),还可以使用单点登录 (SSO) 。
简单性 在 AD DS 中,整个基础设施资产必须由专职人员监控和管理。 Azure AD 是这两个解决方案中更简单的一个。订阅者可以开始使用其内置功能,而无需担心其部署、管理、修补和安全设置。
管理 AD DS 和 Azure AD DS 依赖组策略进行管理。此目录由计算机对象(例如已部署在 Azure 虚拟网络中的服务器 VM)组成。 Azure AD 由移动设备管理 (MDM) 软件(例如 Intune)管理。其目录由可以访问企业应用程序的最终用户手机、笔记本电脑和台式机等设备对象组成。