MusahIssah/Automated-AD-User-Provisioning-Lab.
GitHub: MusahIssah/Automated-AD-User-Provisioning-Lab.
一个完整的Microsoft混合身份实验室构建项目,记录了从本地AD用户同步到Entra ID并启用MFA的全过程及故障排除经验。
Stars: 0 | Forks: 0
# Azure AD 混合身份实验室
### 项目 5 — IT 支持作品集系列
## 项目概述
本实验记录了完整的 **Microsoft Entra ID (Azure AD) 混合身份环境**构建过程——将 51 个本地 Active Directory 用户从运行在 Hyper-V 上的 Windows Server 2022 域控制器同步到 Microsoft Azure Entra ID,并通过安全默认值强制执行 MFA。
这是一个真实的家庭实验室构建——包括我遇到的错误、诊断方法和修复方法。每张截图都是真实的。
## 架构
```
┌─────────────────────────────────┐ ┌──────────────────────────────────┐
│ ON-PREMISES (Hyper-V) │ │ MICROSOFT AZURE CLOUD │
│ │ │ │
│ Windows Server 2022 (DC-01) │ │ Microsoft Entra ID │
│ Domain: company.org │◄───────►│ Tenant: musahissahghoutlook │
│ 51 AD Users across OUs: │ Entra │ .onmicrosoft.com │
│ - Finance │ Connect │ │
│ - IT-DEPT │ Sync │ 54 Users (51 synced + 3 cloud) │
│ - Sales │ │ Security Defaults: ENABLED │
│ - Users │ │ MFA: ENFORCED for all users │
└─────────────────────────────────┘ └──────────────────────────────────┘
```
## 使用的技术
| 技术 | 用途 |
|---|---|
| Windows Server 2022 (Hyper-V) | 本地域控制器 |
| Active Directory 域服务 | 身份源 — 51 个用户 |
| Microsoft Entra Connect Sync v2.6.3.0 | 混合身份同步引擎 |
| Microsoft Entra ID (Azure AD) | 云身份平台 |
| Microsoft Azure(免费层) | 云基础设施 |
| PowerShell | 自动化和同步管理 |
| 安全默认值 | 强制所有用户使用 MFA |
## 我的构建过程 — 分阶段说明
### 阶段 1 — Azure 租户设置
- 创建了 Microsoft Azure 免费账户
- 以全局管理员身份访问 Microsoft Entra 管理中心
- 在本地 Active Directory 域和信任中添加了 `musahissahghoutlook.onmicrosoft.com` 作为备用 UPN 后缀
- 将测试用户 `arobinson` 的 UPN 更新为 `arobinson@musahissahghoutlook.onmicrosoft.com`
- 在 Entra ID 自定义域名中验证域状态为 **可用**
**截图:** Azure 门户 → Entra 管理中心 → 域已验证



### 阶段 2 — UPN 后缀配置
- 在 DC-01 上打开 Active Directory 域和信任
- 添加 `musahissahghoutlook.onmicrosoft.com` 作为备用 UPN 后缀
- 在 ADUC 中更新用户账户以使用新的 UPN 后缀
- 这一步至关重要——如果不匹配 UPN 后缀,用户可以同步但无法登录 Azure


### 阶段 3 — Microsoft Entra Connect 安装
- 从 Entra 管理中心下载了 Entra Connect v2.6.3.0(不是 Microsoft 下载中心——2025 年已更改)
- 运行自定义安装向导,选择密码哈希同步
- 连接本地林 `company.org` — 配置了具有复制权限的 MSOL 服务账户
- 选择的 OU:Finance、IT-DEPT、Sales、Users(排除 Builtin、Computers、域控制器)
- 通过选择"继续而不匹配所有 UPN 后缀"来跳过 UPN 不匹配警告



### 阶段 4 — 同步验证
- 在 DC-01 上打开同步服务管理器
- 确认两个连接器上共有 18 次成功同步运行
- 验证 Entra ID 中有 54 个用户 — 所有用户的 **已启用本地同步:是**
- 所有 OU 中的用户均已成功同步


### 阶段 5 — 通过安全默认值强制执行 MFA
- 在 Entra ID → 属性中启用了安全默认值
- 安全默认值强制执行:
- 首次云登录时所有用户都需要 MFA
- 管理员账户始终需要 MFA
- 阻止传统身份验证
- 所有用户必须在 14 天内注册 MFA
- 测试了 MFA 强制执行:以同步用户 `arobinson` 登录 — 立即收到 MFA 设置提示

## 我遇到的错误及修复方法
这是本仓库最有价值的部分。真实项目会遇到真实问题。
### 错误 1 — AADSTS50020:Entra Connect 中使用了错误的账户类型
**发生了什么:** 当 Entra Connect 向导要求连接 Microsoft Entra ID 时,我输入了我的个人 Outlook 账户(`musah.issah.gh@outlook.com`)。收到错误:`User account from identity provider 'live.com' does not exist in tenant 'Microsoft Services'`
**根本原因:** Entra Connect 需要一个仅限云的 Entra ID 工作账户——而不是个人 Microsoft/Outlook 账户。
**修复方法:** 在 Entra 租户内直接创建了一个具有全局管理员角色的专用管理员账户 `syncadmin@musahissahghoutlook.onmicrosoft.com`,然后在向导中使用该账户。
**经验教训:** 始终使用仅限云的 `@yourtenant.onmicrosoft.com` 账户进行 Entra Connect——切勿使用个人 Microsoft 账户。
### 错误 2 — M365 开发沙盒不可用
**发生了什么:** 尝试注册 Microsoft 365 开发者计划以获取免费的 E5 租户和条件访问。收到消息:`"You don't currently qualify for a Microsoft 365 Developer Program sandbox subscription."`
**根本原因:** Microsoft 在 2024-2025 年收紧了资格条件。没有 GitHub 或 Visual Studio 上活跃开发活动的账户通常会被拒绝。
**修复方法:** 使用现有的 Azure 免费账户租户。每个 Azure 账户附带的 Entra ID 免费层足以运行 Entra Connect 和同步用户。对于 MFA,使用安全默认值(无需许可证)而不是条件访问(需要 P1/P2)。
**经验教训:** M365 开发者沙盒拒绝非常常见。Azure 免费租户非常适合混合身份实验室。安全默认值提供等效的免费 MFA 基线保护。

### 错误 3 — AADSTS700016:应用注册在错误的租户中失败
**发生了什么:** 在最后配置步骤期间,Entra Connect 尝试在租户中注册自身但失败:`Application with identifier '0ca877e8...' was not found in the directory 'Microsoft Services'`
**根本原因:** 向导仍使用之前失败尝试中的个人 Outlook 账户进行身份验证。应用注册尝试进入 `Microsoft Services`(个人账户租户)而不是我的实际 Entra 租户。
**修复方法:**
1. 从 Azure → 应用注册 → 所有应用程序中找到并删除了孤立的应用程序注册
2. 正确创建了 `syncadmin@musahissahghoutlook.onmicrosoft.com` 账户
3. 让该账户登录 Azure 门户并完成密码激活
4. 使用 syncadmin 账户重新运行 Entra Connect 向导 — 成功完成
**经验教训:** 当 Entra Connect 安装中途失败时,始终在重新运行之前清理孤立的应用程序注册。检查 Azure → 应用注册 → 所有应用程序,查找在失败运行日期创建的任何条目。
### 错误 4 — 条件访问创建按钮变灰
**发生了什么:** 导航到 Identity → Protection → Conditional Access — 尝试创建策略 — 创建按钮无法点击。
**根本原因:** 条件访问需要 Microsoft Entra ID P1 或 P2 许可证。Azure 免费层仅包含 Entra ID 免费层。
**修复方法:** 切换到安全默认值,它提供等效的基线 MFA 强制执行,无需付费许可证。这实际上是 Microsoft 为没有 P1/P2 许可证的组织推荐的配置。
**经验教训:** 了解许可模型。安全默认值 = 免费、租户范围的 MFA 基线。条件访问 = 付费、精细策略控制。对于家庭实验室,安全默认值可实现相同的安全目标。
## PowerShell 脚本
### 强制同步
```
# 强制立即从本地 AD 同步到 Microsoft Entra ID
# 在安装 Entra Connect 的服务器上运行 (DC-01)
Import-Module "C:\Program Files\Microsoft Azure AD Sync\Bin\ADSync\ADSync.psd1"
Write-Host "Starting Entra Connect delta sync..." -ForegroundColor Cyan
Start-ADSyncSyncCycle -PolicyType Delta
Write-Host "Sync initiated. Check Synchronization Service Manager for results." -ForegroundColor Green
```
### 批量更新 UPN 后缀
```
# 批量更新特定 OU 中所有用户的 UPN 后缀
$NewSuffix = '@musahissahghoutlook.onmicrosoft.com'
$OUPath = 'OU=Users,DC=company,DC=org'
$users = Get-ADUser -Filter * -SearchBase $OUPath
foreach ($user in $users) {
$newUPN = $user.SamAccountName + $NewSuffix
Set-ADUser $user -UserPrincipalName $newUPN
Write-Host "Updated: $($user.SamAccountName) -> $newUPN" -ForegroundColor Green
}
```
### 检查同步状态
```
# 检查 ADSync 服务状态和上次同步时间
Get-Service ADSync
Get-ADSyncScheduler | Select-Object NextSyncCycleStartTimeInUTC, CurrentlyRunning, SyncCycleEnabled
```
## 安全配置
完整文档请参阅 [docs/security-decisions.md](docs/security-decisions.md)。
**摘要:** 已启用安全默认值 — 强制对所有 54 个用户(包括从本地 AD 同步的 51 个用户)执行 MFA。这是 Microsoft 为没有 Entra ID P1/P2 许可证的组织推荐的基线安全配置。
## 经验教训
1. **Entra Connect 仅从 Entra 管理下载** — 不是 Microsoft 下载中心(2025 年已更改)
2. **个人 Microsoft 账户不能用于 Entra Connect** — 始终在租户中创建专用的仅限云管理员账户
3. **M365 开发者沙盒拒绝很常见** — Azure 免费租户足以进行混合身份实验室建设
4. **在重试之前清理失败的安装** — 孤立的应用程序注册会导致 AADSTS700016 错误
5. **UPN 后缀匹配至关重要** — 没有它,用户可以同步但无法向云资源进行身份验证
6. **安全默认值不是安慰奖** — 它是一个合法的、广泛使用的企业安全基线
## 项目统计
| 指标 | 值 |
|---|---|
| 构建时间 | 约 6 小时(包括故障排除) |
| 同步用户 | 51 个本地用户 |
| Entra 中的总用户 | 54(包括仅限云的管理员账户) |
| 完成的同步运行 | 18 次(在同步服务管理器中可见) |
| 遇到的错误 | 4 |
| 解决的错误 | 4 |
| MFA 强制执行 | 是 — 安全默认值 |
## 作者
**Musah Issah**
IT 支持专员 | 纽约州纽约市
- LinkedIn:[linkedin.com/in/musah-issah-925ba2313](
标签:Active Directory, AD DS, AI合规, Azure AD, Azure AD Connect, Entra Connect, GPO, Hyper-V, IT运维, Libemu, MFA, Microsoft Entra ID, Plaso, PowerShell自动化, Socks5代理, Windows Server 2022, 云身份, 企业安全, 域控制器, 多因素认证, 安全默认, 混合云, 混合身份, 用户同步, 用户生命周期管理, 目录服务, 组策略, 网络资产管理, 身份安全, 身份管理