Microsoft 365 用户、许可证与 B2B 来宾协同:从创建到治理的全链路实战

发布时间:2026/8/3 19:13:58
Microsoft 365 用户、许可证与 B2B 来宾协同:从创建到治理的全链路实战 〇、2025 推荐身份治理架构整篇博文的实操都围绕这张图展开HR 系统Workday / SAP / 自研 │ ▼ Lifecycle WorkflowEntra ID Governance │ ─── 入职 / 调岗 / 离职 触发 Joiner-Mover-Leaver 流程 ▼ Cloud Sync / Entra Connect Sync │ ─── 新建混合场景优先 Cloud SyncExchange Hybrid / 设备写回 / 复杂过滤仍需 Connect Sync ▼ Microsoft Entra ID User │ ├── Group-based License需要 Entra ID P1 或包含该能力的许可证 │ ├── Conditional AccessZero-Trust Baseline │ ├── Authentication Method Policy │ ├── Phishing-resistant MFA │ ├── PasskeyFIDO2 / 平台密钥结合 TAP 完成首次注册 │ └── Temporary Access PassTAP │ └── 资源访问 ├── Microsoft 365 Groups → Teams / SharePoint / Planner / Loop ├── Security Group → Conditional Access / Intune / Power BI ├── Application → Entra Enterprise Applications └── Distribution Group / Mail Contact → Exchange Online一、身份模型先选对再创建用户Microsoft 365 的用户身份本质上是Microsoft Entra ID中的一个对象。Module 2 反复强调先选模型再创建用户原因很简单身份模型决定后续的认证、SSO、Conditional Access、合规边界。三种身份模型模型身份来源认证位置适用场景Cloud-only云身份直接在 Entra ID 创建Entra ID小型公司、无 AD 基础设施Synchronized同步身份本地 AD → Entra Connect / Cloud Sync同步后本地或云皆可大多数混合企业Federated联合身份本地 AD FS / 第三方 IdP如 Okta、PingIdP复杂 SSO、合规要求高的企业2025 年的工程性变化Microsoft Entra Cloud Sync对大多数新建混合场景已成为优先推荐方案但Cloud Sync 并不完全替代 Entra Connect Sync——以下场景仍需 Connect SyncExchange Hybrid混合部署设备写回Device Writeback复杂 OU / 属性过滤部分高级同步能力如 Group Writeback。PasskeyFIDO2 / 平台密钥已完全 GAMicrosoft 鼓励把所有管理员账户升级到Phishing-resistant MFACross-Tenant Sync让多子公司场景不再需要 ADFS 信任链直接跨租户同步用户/组Temporary Access PassTAP让新员工入职当天即可无密码登录 → 设置 Passkey——管理员应通过Authentication Methods Policy控制允许的认证方式。Authentication Strength认证强度Conditional Access 2023 GA、2024–2025 大规模采用可针对不同资源强制不同强度Passwordless MFA / Phishing-resistant MFA / Multifactor 等Authentication Method Reports Insights管理员可通过 Entra → Protection → Authentication Methods 看每个方法的注册率 / 使用率是评估 Passkey 推广进度的重要工具。二、创建用户4 种主流方式对比方式适用上限/特点Microsoft 365 管理中心临时少量一次一个CSV 批量导入中等规模上线单次最多 50,000 个用户Microsoft Graph PowerShell / CLI自动化、IT 脚本化可结合 HR 系统事件驱动目录同步Entra Connect Sync / Cloud Sync本地 AD → 云持续同步1. CSV 批量导入的关键字段CSV 模板必须包含的列简化版User Name,First Name,Last Name,Display Name,Job Title,Department,Office Number,Office Phone,Mobile Phone,Fax,Address,City,State,ZIP/Postal Code,Country or Region,Usage Location,User Type,Domain Name,PasswordUsage Location一定不能省略——这是触发某些区域受限服务许可证如 Teams 电话、Copilot 区域可用性开关的关键字段User Type默认为 Member关于 Password 字段是否自动生成初始密码由导入向导决定不是单纯CSV 留空 自动生成。导入完成后可下载包含初始密码的结果文件请妥善保存。2. PowerShell 批量创建Graph SDK 推荐Import-Module Microsoft.Graph.Users $params { accountEnabled $true displayName Ada Liu mailNickname adaliu userPrincipalName adaliucontoso.com passwordProfile { forceChangePasswordNextSignIn $true password (New-Guid).Guid Aa1! } usageLocation CN jobTitle Senior PM department Engineering } New-MgUser -BodyParameter $params三、用户生命周期删了之后 30 天还能救——但要分清恢复对象和恢复数据1. 删除用户的软删除机制用户被删除后分配的 M365 许可证立即释放License Slot 不需要等 30 天账号进入soft-deleted状态 30 天期间任何登录被拒绝但管理员可以恢复30 天后变为hard-deletedEntra ID 中的用户对象永久删除无法直接恢复。2. 恢复到底恢复什么⚠️必须区分两个完全不同的概念维度恢复 Entra ID 用户对象恢复 Microsoft 365 数据可恢复时限30 天软删除窗口内由备份方案决定30 天 → 数年恢复手段Entra 管理中心 / Graph APIRestore-MgDirectoryDeletedItemMicrosoft 365 Backup / 第三方备份Veeam / Acronis / Druva ...恢复的是什么用户账号、组成员关系、License 分配Exchange 邮箱、OneDrive 文件、SharePoint 文档实际工程中超过 30 天的场景Entra ID 用户对象重新创建业务数据从Microsoft 365 Backup或第三方备份还原License、组成员关系重建。3. 恢复操作30 天内# 查看已删除用户 Get-MgDirectoryDeletedItem -DirectoryObjectId objectId # 恢复 Entra ID 用户对象 Restore-MgDirectoryDeletedItem -DirectoryObjectId objectId⚠️恢复后的会话与 Token 处理恢复后的用户必须重新登录才能使用 M365旧的 Refresh Token / 浏览器会话 / 移动设备缓存全部失效。如果该用户在被删除前存在已登录的设备会话需要调用Revoke-MgUserSignInSession强制使旧 Token 失效通知用户在新设备或重新登录后建立新会话复核 Conditional Access 是否对恢复用户仍正确应用。4. 离职流程 Checklist✅ 转移 OneDrive 所有权管理员接管窗口已 GA✅ 转移邮箱Shared Mailbox 或另一位用户✅ 取消许可证分配立即释放 License Slot✅ 移除管理员角色如果有✅ 阻断登录 TokenRevoke-MgUserSignInSession✅ 删除账号30 天内可恢复 Entra ID 对象超过 30 天需重新创建 从备份恢复数据。四、许可证分配2025 年最常见的几类问题1. 我买了 E5为什么有些功能还是用不了最常见原因该用户没被分配 E5而是只被分配了下层 E1/E3该 Service Plan 被单独禁用例如某些公司为节省成本关闭了电话会议用户 Usage Location 未设置某些国家/区域的服务计划不会启用该用户走的是Direct assignment需要重新基于组Group-based licensing分配。2. 基于组的许可证分配推荐前置条件Group-based licensing 需要Microsoft Entra ID P1或包含该能力的许可证如 M365 E3 / E5、EM E5 等。# 需要 Microsoft Graph PowerShell SDK # 权限LicenseAssignment.ReadWrite.All $sku Get-MgSubscribedSku | Where-Object SkuPartNumber -eq ENTERPRISE_E5 Set-MgGroupLicense -GroupId groupId -AddLicenses ({SkuId $sku.SkuId}) -RemoveLicenses ()好处用户入职/调岗自动生效与Microsoft Entra ID Governance的Access Package Lifecycle Workflow联动可实现全自动报表、计费、回滚简单。重要机制细节Group-based Licensing 并不会绕开用户 License 的本质——组作为授权聚合层最终每个用户仍会写入assignedLicenses字段User 对象上的实际授权。也就是说计费仍按实际分配 License 的用户数计Get-MgUser -PropertyId assignedLicenses仍能看到用户实际持有的 Service Plan组的角色是驱动授权的容器不是 License 的存放位置。五、B2B 来宾协同把外部人员装进你的 Entra ID1. B2B 的本质Microsoft Entra B2B 让外部用户以guest身份存在于你的租户里不复制用户凭据——外部用户用自己的 IdPGoogle、Facebook、企业 AD、组织账号…来宾账户是 Entra ID 中的一个 User 对象userTypeGuest可以加入安全组Security Group、Microsoft 365 Group并因此访问 Teams、SharePoint、Planner、Loop、Power BI 等资源前提是相应服务支持 Guest资源支持的边界部分旧应用、第三方 SaaS、特定自定义角色可能不直接支持 Guest需要评估。2. 来宾权限默认级别B2B 来宾在目录里的默认权限为Limited access远低于 Member。管理员可在 Entra 管理中心 → External Identities → External collaboration settings 中调整为Same as member users极少使用等于完全信任Restricted access默认之上进一步限制——例如来宾不能枚举其他用户。2025 年新引入的External Collaboration Settings还多了信任 MFA 状态跨租户传递等新能力可以避免外部合作伙伴在每次邀请时再 MFA 一次。3. 邀请来宾的方式与对象生命周期正确的邀请与授权逻辑邀请阶段 │ ▼ Guest 对象在租户中创建userTypeGuest │ ▼ 管理员/Owner 授予对特定组、应用、Teams、SharePoint 站点等资源的访问权限也就是说先有 Guest 对象再授予资源访问。邀请到某个组/应用实际上是邀请 → 创建 Guest → 加入到组/应用两阶段动作。邀请入口Entra 管理中心手动填邮箱发邀请Graph API自动化Self-service sign-up via user flow为应用/资源开启注册流外部用户自助注册适用于社区、合作伙伴门户SharePoint / Teams 站点在站点成员页面直接邀请实际仍是先创建 Guest再加入站点。# 通过 Microsoft Graph 邀请来宾 $invitation { invitedUserEmailAddress partnerexample.com inviteRedirectUrl https://myapp.contoso.com/welcome invitedUserDisplayName Partner User sendInvitationMessage $true } New-MgInvitation -BodyParameter $invitation4. 来宾的退出机制来宾账户不会自动过期。Access Review是主要的清理机制可以按组织策略设置为每月、每季度、每半年等周期自动复核90 天是常见实践但不是默认值Access Review 结束后具体行为取决于 Access Review 的完成设置Completion Settings可配置为自动批准、自动拒绝、自动移除访问权限等不同策略也可以手动清理长期不活跃来宾。5. Cross-Tenant Access Settings未显式配置 Cross-Tenant Access Settings 时双方租户将采用默认跨租户访问策略Allow Default Settings而不是自动阻止。企业应根据业务伙伴关系显式配置Inbound Trust外部用户登录时是否信任其 IdP 的 MFA 状态Outbound Access本租户用户访问外部租户资源的策略MFA Trust跨租户 MFA 是否互认。这样才能实现精细化的跨组织访问控制。6. 区分Cross-Tenant Synchronization vs HR Provisioning2024–2025 年 Entra ID 引入的两个容易混淆的能力能力解决什么问题数据方向典型场景Cross-Tenant SynchronizationCTS多 Entra 租户之间的用户 / 组同步Tenant A ⇄ Tenant B子公司 / 合并收购后身份统一HR ProvisioningWorkday / SuccessFactors / SAPHR 系统作为权威源 → Entra IDHR → EntraWorkday 入职 / 离职自动驱动 Entra 用户生命周期CTS主要解决租户间身份打通不是 HR 源HR Provisioning才是把 Workday 等作为权威源自动驱动 Entra ID 用户创建 / 更新 / 停用Salesforce Provisioning则属于 SaaS 应用层的 Outbound Provisioning把 Entra 用户同步到 Salesforce实施时不要把 CTS 当成 HR 集成来用两者是不同的能力。六、与外部协作的安全默认值2024–2025微软已经把以下能力演进为 GA / 默认推荐来宾邀请的 MFA 满足跨租户信任时不再重复验证External Identities Cross-Tenant Access Settings应根据业务伙伴关系显式配置B2B 同步B2B Sync让 SaaS 应用的来宾账号可以从外部系统如 Workday、Salesforce同步TeamsShared Channels跨组织共享通道已 GA是真正的外部协同主力。来宾激增 ≠ Consent Phishing来宾数量异常增加应结合 Audit Log、Entra Sign-in Logs、Enterprise Applications、Consent Activity 等进一步分析而不是直接判定为 Consent Phishing。可能原因包括大规模项目上线B2B Sync 自动邀请Teams 站点成员扩容合作伙伴门户 Self-service Sign-up 触发真正的 Consent Phishing 攻击。GAL 中 Guest 的可见性根据组织策略决定是否将 Guest 隐藏在地址列表GAL中并定期检查该配置默认情况下 Guest 通常不作为 GAL 的重要成员出现但并非自动隐藏安全起见建议显式设置 Guest 隐藏 GAL。属性归属澄清HiddenFromAddressListsEnabled是Exchange Online Recipient 属性通过 Exchange Online 管理而非 Entra ID User 对象属性。也就是说该属性的设置位置在Exchange 管理中心 / Exchange Online PowerShell如Set-MailUser -HiddenFromAddressListsEnabled $trueEntra ID → Users 界面看不到但 Exchange GAL 渲染时会读取B2B Guest 在 Entra 中是User对象在 Exchange 中是MailUser对象因此走的是Set-MailUser或Set-Recipient而不是Set-MgUser。七、Mail ContactsExchange Online 里的地址簿名片邮件联系人Mail Contact与 B2B 来宾的区别特性Mail ContactB2B Guest出现在 GAL✅✅有可登录的 Entra ID 用户对象❌✅可登录 M365❌✅可加入 Teams❌✅主要用途外发邮件地址簿协作关键澄清Mail Contact 不创建可登录的 Entra ID 用户对象仅用于邮件通讯录和邮件路由这与 B2B Guest创建可登录对象是本质区别而不是占不占用户额度的问题。联系人可在新 Exchange 管理中心 / 经典 EAC / Exchange Online PowerShell中管理所需权限Recipient Management / Organization Management / Mail Recipients 之一。# 新建联系人 New-MailContact -Name John Doe (Vendor) -ExternalEmailAddress john.doevendor.com -DisplayName John Doe何时用 Contact何时用 B2B Guest只需对方收 / 发邮件且不需要任何 M365 协作 →Mail Contact更轻量、不创建可登录对象需要对方加入 Teams / SharePoint / Loop 工作区 / Power BI →B2B Guest混合场景一家供应商的主要联系人作为 Mail Contact频繁邮件往来同时为该公司 IT 接口人开 B2B Guest协同项目。两者不互斥可以共存。八、运营 Checklist身份模型Cloud-only / Hybrid / Federated已明确混合场景已评估 Cloud Sync vs Entra Connect SyncCloud Sync / Entra Connect 已稳定同步超过 7 天这是企业建议的稳定性观察窗口并非产品硬性要求但有助于识别早期同步异常所有用户Usage Location已设置许可证按组Group-based licensing分配Entra ID P1 或以上许可证已具备Passkey TAP 已为所有管理员开启Authentication Methods Policy 已收紧B2B 来宾策略默认 Limited 周期性 Access Review来宾 GAL 可见性已显式配置HiddenFromAddressListsEnabled离职流程已脚本化30 天内可恢复 Entra ID 对象超过 30 天重新创建 从备份恢复数据Mail Contacts 与 B2B Guest 按业务场景分类使用联系人定期清理过期项Cross-Tenant Access Settings 已按业务伙伴关系显式配置。九、与 Operational Excellence 的连接用户与来宾的管理最终要落到Operational Excellence上Daily 巡检Sign-in Risk / Service HealthWeekly 巡检Get-MgUser -Filter userType eq Guest统计来宾数量变化未激活 License 用户清单 → License 浪费报告Monthly 巡检来宾激增、Consent Grant 异常、应用风险评分Quarterly 巡检Access Review、Conditional Access 策略审计、PIM 角色复核Yearly完整 User / Group / Guest 配置审计 Backup Restore 演练。