rahatislamanik-spec/Meridian-Institute-M365-Lab

GitHub: rahatislamanik-spec/Meridian-Institute-M365-Lab

以虚构院校为场景的 Microsoft 365 身份安全运维实验,完整展示了从租户搭建、动态组治理、条件访问加固到 Graph PowerShell 自动化审计的全流程最佳实践。

Stars: 1 | Forks: 0

# Meridian Institute — Microsoft 365 身份与安全运维实验室 🔗 **[查看实时案例研究](https://rahatislamanik-spec.github.io/Meridian-Institute-M365-Lab/)** ## 概述 Meridian Institute 是一家虚构的高等院校,用作本次 Microsoft 365 管理实操实验的场景。从一个空白的租户开始,我跨 4 个部门配置并管理了 27 个用户,通过 Microsoft Entra ID 实现了动态身份治理,使用 Conditional Access 策略加固了环境,并利用 Microsoft Graph PowerShell 7 自动化了整个审计和生命周期层。 每个操作均附带截图记录,并可通过 PowerShell 复现。 ## 实验架构 — 五个阶段 ### 阶段 1 · 租户基础 - 通过批量 CSV 导入在 4 个部门(IT Operations、Security Operations、Arts 和 Science)中配置了 27 个用户 - 根据最小权限原则为每个角色分配了限定范围的 RBAC 角色: - Barak Obama → SharePoint Administrator - Bill Clinton → User Administrator - Ethan King → Exchange Administrator - Liam Thomas → Helpdesk Administrator - Mia Allen → Global Administrator - 为所有用户更新了联系信息、职位和部门元数据 ### 阶段 2 · 身份治理 - 在 Microsoft Entra ID 中创建了 4 个动态安全组,并配置了基于属性的成员资格规则: | 组 | 成员资格规则 | |---|---| | Professors | `user.jobTitle -eq "Professor"` | | Students 2 | `user.jobTitle -eq "Student"` | | IT Operations | `user.department -eq "IT Operations"` | | Security Operations | `user.jobTitle -eq "Security Operations"` | - 建立了 Identity Secure Score 基线:**65.45%** - 验证了租户健康状况:0 个高风险用户,0 个陈旧/不合规/非托管设备 ### 阶段 3 · Conditional Access 加固 - 通过 Microsoft Entra ID 部署了 2 项 Conditional Access 策略: - **Require MFA for Admin Roles** — 对所有特权登录强制执行 MFA 质询 - **Block Legacy Authentication** — 在整个租户范围内消除旧版协议攻击面 - 两项策略均以 **仅报告模式 (report-only mode)** 暂存,以便在强制执行前进行安全验证 - 在启用之前审查了 CA 覆盖率仪表板、登录日志和策略快照 ### 阶段 4 · PowerShell 自动化 - 安装并配置了 **Microsoft Graph PowerShell 7.4.13** - 通过具有适当权限范围的委派身份验证进行连接 - 完全通过 PowerShell 完成的关键操作: - 具有属性集(UPN、JobTitle、Department、AssignedLicenses)的完整用户枚举 - 整个租户的动态组成员资格规则枚举 - 通过 `Get-MgAuditLogSignIn` 拉取登录遥测数据 - 许可证审计 — 检测到 **6 名无许可学生** - 使用 CSV 备份进行批量取消配置 → 重新配置生命周期循环 - 所有 27 个账户的最后登录时间戳审计 - 通过 `Get-MgOrganization` 和 `Get-MgDomain` 进行组织基线查询 ### 阶段 5 · 审计与报告 - 将登录遥测数据导出至 `SignIn-Audit.csv` 以供 SOC 审查 - 导出了确认所有“添加用户”事件的目录审计日志(结果:成功) - 审查了 SSPR 使用情况与洞察仪表板 — 确定 **96% 的 MFA 注册缺口**为主要补救目标 - 验证了角色分配审计跟踪:记录了 7 个成功的 `Add member to role` 事件 - 确认了设备基线:0 个陈旧设备,0 个不合规设备,0 个非托管设备 - 通过学生和管理员账户上的真实 M365 Copilot 登录验证了端到端用户配置 ## 关键成果 | 指标 | 结果 | |---|---| | 受管理用户数 | 27 | | 动态安全组数 | 4 | | Conditional Access 策略数 | 3 | | 检测到的无许可账户数 | 6 | | Identity Secure Score | 65.45% | | MFA 注册缺口 | 96% (补救目标) | | 陈旧/不合规设备数 | 0 | | 已分配的管理员角色数 | 5 (最小权限限定范围) | ## 工具与技术 | 类别 | 工具 | |---|---| | 身份与访问 | Microsoft Entra ID (Azure AD), RBAC, Dynamic Groups | | 安全 | Conditional Access, MFA, Legacy Auth Blocking, SSPR | | 自动化 | Microsoft Graph PowerShell 7.4.13, Graph API | | 管理门户 | Microsoft 365 Admin Center, Microsoft Entra Admin Center | | 报告 | Sign-in Logs, Directory Audit Logs, SSPR Insights, CSV Export | | 生产力 | Microsoft 365 Copilot, Exchange Online, SharePoint Online | ## 与本项目相关的认证 - Microsoft Azure Fundamentals (AZ-900) - Microsoft 365 Fundamentals (MS-900) - AZ-104 Microsoft Azure Administrator *(进行中)* - SC-900 Microsoft Security, Compliance & Identity *(进行中)* ## 作者 **Md Rahat Islam Anik** IT 支持专员 | 云计算与网络管理,George Brown College (2026) [![LinkedIn](https://img.shields.io/badge/LinkedIn-rahatislamanik-0077B5?style=flat&logo=linkedin)](https://linkedin.com/in/rahatislamanik) [![GitHub](https://img.shields.io/badge/GitHub-rahatislamanik--spec-181717?style=flat&logo=github)](https://github.com/rahatislamanik-spec) *本篇是正在进行的云和基础设施实操项目作品集的一部分。另请参阅:[TechNova Azure Infrastructure](https://github.com/rahatislamanik-spec/TechNova-Azure-Infrastructure) · [Café Nimbus AWS](https://github.com/rahatislamanik-spec)*
标签:Azure AD, Conditional Access, Entra ID, Force Graph, GitHub Advanced Security, Graph API, Graph PowerShell, IAM, IT运维, M365, MFA, Microsoft 365, PowerShell 7, RBAC, Socks5代理, Tenant Provisioning, 动态安全组, 合规性审计, 后端开发, 多因素认证, 安全加固, 安全基线, 安全运营, 实验室环境, 微软安全, 扫描框架, 批量导入, 教学环境, 教育行业, 最小权限原则, 条件访问, 特权身份管理, 用户生命周期管理, 租户管理, 自动化运维, 身份与访问管理, 身份治理, 零信任架构