Compartir a través de

多租户用户管理的常见注意事项

本文是一系列文章中的第三篇文章,提供在Microsoft Entra多租户环境中配置和提供用户生命周期管理的指导。 本系列中的以下文章提供了所述的详细信息。

  • 多租户用户管理简介是系列文章中的第一篇,旨在为在 Microsoft Entra 多租户环境中配置和管理用户生命周期提供指导。
  • 多租户用户管理方案 描述了可以使用多租户用户管理功能的三种方案:最终用户启动、脚本化和自动化。
  • 当单租户不适合你的场景时多租户用户管理的常见解决方案,这篇文章介绍应对以下挑战的指导:跨租户的自动化用户生命周期管理和资源分配、跨租户共享本地应用。

本指导可帮助你实现一致的用户生命周期管理状态。 生命周期管理包括通过可用的Azure工具(包括Microsoft Entra B2B协作)进行跨租户的用户预配、管理和取消预配(B2B)。

同步要求根据组织的特定需求而异。 当你设计符合组织要求的解决方案时,本文中的以下注意事项可帮助你确定最佳选项。

  • 跨租户同步
  • 目录对象
  • Microsoft Entra条件访问
  • 附加访问控制
  • Office 365

目录对象注意事项

使用 UPN 与 SMTP 地址邀请外部用户

Microsoft Entra B2B 预期用户的 UserPrincipalName (UPN) 是发送邀请的主要简单邮件传输协议(SMTP)(电子邮件)地址。 当用户的 UPN 与其主 SMTP 地址相同时,B2B 将按预期工作。 但是,如果 UPN 与外部用户的主 SMTP 地址不同,则用户接受邀请时可能无法解析。 如果你不知道用户的真实 UPN,该问题可能是一个挑战。 在发送 B2B 邀请时,需要发现并使用 UPN。

本文的 Microsoft Exchange Online 部分介绍如何更改外部用户的默认主 SMTP。 如果你希望外部的所有电子邮件和通知都流向真实的主要 SMTP 地址而不是 UPN,则此方法很有用。 如果 UPN 不能路由邮件流,这可能是一个要求。

转换外部用户的用户类型

使用控制台手动为外部用户帐户创建邀请时,将创建具有来宾用户类型的用户对象。 使用其他方法创建邀请可将用户类型设置为除外部来宾帐户以外的其他类型。 例如,在使用 API 时,可将帐户配置为外部成员帐户或外部来宾帐户。

如果您将外部来宾用户转换为外部成员用户帐户,Exchange Online 在处理B2B帐户时可能会遇到问题。 您不能为您邀请为外部成员用户的帐户启用邮件功能。 若要对外部成员帐户启用邮件,请使用以下最佳方法。

  • 邀请跨组织用户作为外部来宾帐户。
  • 显示 GAL 中的帐户。
  • 将“用户类型”设置为“成员”。

使用此方法时,帐户在 Exchange Online 和整个 Office 365 中显示为 MailUser 对象。 另外,请注意计时问题。 通过检查 Microsoft Entra 用户的 ShowInAddressList 属性与 Exchange Online PowerShell 的 HiddenFromAddressListsEnabled 属性(这两个属性互为逆向)来确保用户在 GAL 中可见。 本文的 Microsoft Exchange Online 部分提供了有关更改可见性的详细信息。

可以将成员用户转换为来宾用户,此功能对于要限制为来宾级权限的内部用户非常有用。 内部来宾用户为非组织员工但你要为其管理用户和凭据的用户。 它可能让你能够避免向内部来宾用户授予许可。

使用邮件联系人对象而不是外部用户或成员时出现的问题

可以使用传统的 GAL 同步来代表另一个租户中的用户。 如果执行 GAL 同步而不是使用 Microsoft Entra B2B 协作,则会创建邮件联系人对象。

  • 邮件联系人对象和启用邮件的外部成员或来宾用户不能以相同的电子邮件地址共存于同一租户中。
  • 如果与受邀外部用户相同的邮件地址存在邮件联系人对象,则会创建外部用户但不启用邮件。
  • 如果具备邮件功能的外部用户使用相同的电子邮件存在,则在创建邮件联系人对象时会抛出异常。

重要

使用邮件联系人需要Active Directory服务(AD DS)或Exchange Online PowerShell。 Microsoft Graph不提供用于管理联系人的 API 调用。

下表显示了邮件联系人对象和外部用户状态的结果。

现有状态 预配方案 有效结果
邀请 B2B 会员 未启用邮件功能的成员用户。 请参阅重要说明。
邀请 B2B 访客 为外部用户启用邮件功能。
邮件联系人对象已存在 邀请 B2B 会员 错误。 代理地址冲突。
邮件联系人对象已存在 邀请 B2B 访客 邮件联系人和未启用邮件的外部用户。 请参阅重要说明。
邮件功能已启用的外部访客用户 创建邮件联系人对象 错误
已启用邮件的外部成员用户存在 创建邮件联系人 错误

Microsoft建议使用 Microsoft Entra B2B 协作(而不是传统的 GAL 同步)来创建:

  • 允许在 GAL 中显示的外部用户。
  • 默认显示在 GAL 中但未启用邮件的外部成员用户。

可以选择使用邮件联系人对象在 GAL 中显示用户。 由于邮件联系人不是安全主体,因此,此方法会在不提供其他权限的情况下集成 GAL。

按照下面建议的方法实现目标:

  • 邀请来宾用户。
  • 在 GAL 中取消隐藏这些用户。
  • 通过阻止他们登录来禁用他们。

邮件联系人对象无法转换为用户对象。 因此,与邮件联系人对象关联的属性无法传输(例如组成员身份和其他资源访问权限)。 使用邮件联系人对象表示用户存在以下挑战。

  • Office 365组。 Office 365组支持策略,控制允许成为组成员的用户类型并与与组关联的内容进行交互。 例如,用户组可能不会允许来宾用户加入。 这些策略无法管理邮件联系人对象。
  • Microsoft Entra 自助服务组管理(SSGM)。 邮件联系人对象不符合条件,不能成为使用 SSGM 功能组的成员。 可能需要更多工具,通过将收件人表示为联系人而不是用户对象的方式来管理组。
  • Microsoft Entra ID Governance,访问评审。 可以使用访问评审功能来评审和证明Office 365组的成员身份。 访问评审是基于用户对象进行的。 由邮件联系人对象表示的成员不在访问审查范围内。
  • Microsoft Entra ID治理与权限管理(EM)。 使用 EM 在公司的 EM 门户中为外部用户启用自助访问请求时,会在请求时创建用户对象。 它不支持邮件联系人对象。

Microsoft Entra 条件访问注意事项

用户在其主租户下的用户、设备或网络的状态不会传递给资源租户。 因此,外部用户可能无法满足使用以下控制的条件访问策略。

在允许的情况下,你可以使用遵守主租户中多重身份验证和设备合规性的跨租户访问设置 (CTAS) 来替代此行为。

  • 要求进行多重身份验证。 如果未配置CTAS,则外部用户必须在资源租户中注册或响应多重身份验证(即使在主租户中已满足多重身份验证的要求)。 这种情况会造成多种多重身份验证难题。 如果来宾用户需要重置其多重身份验证证明,他们可能无法识别跨租户的多个多重身份验证证明注册。 由于缺乏认识,用户可能需要联系家庭租户或资源租户的管理员,或同时联系两者的管理员。
  • 要求将设备标记为合规。 如果未配置 CTAS,设备标识不会在资源租户中注册,因此外部用户无法访问需要此控制的资源。
  • 需要Microsoft Entra混合加入的设备。 如果未配置 CTAS,则设备标识不会在资源租户中注册(或者在与资源租户相连的本地 Active Directory 中注册)。 因此,外部用户无法访问需要此控制的资源。
  • 需要使用批准的客户端应用或应用保护策略。 如果未配置 CTAS,外部用户无法应用资源租户 Intune 移动应用管理 (MAM) 策略,因为还需要设备注册。 资源租户的条件访问策略使用此控制时,不允许主租户的 MAM 保护满足该策略。 从每个基于 MAM 的条件访问策略中排除外部用户。

此外,虽然可以使用以下条件访问条件,但请认识到其可能的后果。

  • 位置。 资源租户中的“命名位置定义”决定了策略的范围。 策略的范围不会评估在主租户中管理的受信任位置。 如果您的组织希望跨租户共享受信任位置,请在定义资源和条件访问策略的每个租户中定义这些位置。

保护多租户环境

要保护多租户环境,首先要确保每个租户都遵循安全最佳做法。 有关保护租户的指导,请查看安全清单和最佳做法。 确保遵循这些最佳做法,并与你密切协作的任何租户一起了解这些最佳做法。

保护管理员帐户并确保最低权限

  • 对用户和应用程序使用最低特权原则增强安全性。 审查 Microsoft Entra ID 中按任务划分的最小特权角色。
  • 通过启用Privileged Identity Management来最大程度地减少持久性管理员访问权限。

监视多租户环境

  • 使用 audit 日志 UIAPIAzure Monitor 集成(用于主动警报)监视跨租户访问策略的更改。 审核事件使用类别“CrossTenantAccessSettings”和“CrossTenantIdentitySyncSettings”。通过监视这些类别下的审核事件,可以识别租户中的任何跨租户访问策略更改并采取措施。 在Azure Monitor中创建警报时,可以创建查询,例如以下查询来标识任何跨租户访问策略更改。
AuditLogs
| where Category contains "CrossTenant"
  • 监控添加到跨租户访问设置的任何新合作伙伴。
AuditLogs
| where OperationName == "Add a partner to cross-tenant access setting"
| where parse_json(tostring(TargetResources[0].modifiedProperties))[0].displayName == "tenantId"
| extend initiating_user=parse_json(tostring(InitiatedBy.user)).userPrincipalName
| extend source_ip=parse_json(tostring(InitiatedBy.user)).ipAddress
| extend target_tenant=parse_json(tostring(TargetResources[0].modifiedProperties))[0].newValue
| project TimeGenerated, OperationName,initiating_user,source_ip, AADTenantId,target_tenant
| project-rename source_tenant= AADTenantId
  • 监视对跨租户访问策略允许/禁止同步的更改。
AuditLogs
| where OperationName == "Update a partner cross-tenant identity sync setting"
| extend a = tostring(TargetResources)
| where a contains "true"
| where parse_json(tostring(TargetResources[0].modifiedProperties))[0].newValue contains "true"
  • 使用跨租户访问活动仪表板监视租户中的应用程序访问。 通过监视,你可以了解谁正在访问租户中的资源,以及这些用户来自何处。

默认设置为拒绝

  • 要求为应用程序分配用户。 如果应用程序将需要用户分配? 属性设置为,则外部用户可以访问该应用程序。 将Microsoft Entra应用分配给Microsoft Entra租户中的一组用户说明默认情况下,Microsoft Entra 租户中已注册的应用程序如何可供成功进行身份验证的租户所有用户使用。
  • 更新外部协作设置,以便只有“分配给特定管理员角色的成员用户和用户可以邀请来宾用户,包括具有成员权限的来宾用户”。这会阻止租户中的来宾邀请其他用户。
  • 仅在对特定租户具有高度信任时,启用跨租户同步或信任 MFA 的跨租户访问策略。
  • 创建默认阻止出站策略,仅允许用户使用其企业标识以来宾身份登录已批准的租户。 这将确保租户隔离,以及租户之间的跨信息流。
  • 使用 租户限制来限制外部用户访问预定义的租户列表
  • 验证来宾访问限制是否未设置为“来宾用户具有与成员相同的访问权限(最具包容性)。

深层防御

条件访问

  • 定义访问控制策略以控制对资源的访问。
  • 在设计条件访问策略时考虑到外部用户。
  • 检查是否将登录频率条件访问策略应用于所有来宾登录。登录频率应限制为不超过 24 小时。 从非托管设备登录的来宾令牌面临更高的令牌外泄和令牌重播攻击的风险。 限制令牌生存期可降低此风险的风险。 这将确保即使令牌被泄露,威胁参与者的使用窗口也有限。
  • 为外部帐户创建专用的条件访问策略。 如果组织在现有条件访问策略中使用所有用户”动态成员组条件,则此策略会影响外部用户,因为他们在“所有用户”的范围内。

受限管理单元

使用安全组控制跨租户同步范围内的用户时,需要限制可以更改安全组的用户。 尽量减少分配给跨租户同步作业的安全组的所有者数,并将这些组包含在受限的管理单元中。 这将限制可以添加或删除群组成员的人员数量,并跨租户预配用户帐户。

其他访问控制注意事项

条款和条件

Microsoft Entra使用条款提供了一种简单的方法,组织可以使用该方法向最终用户显示信息。 你可以通过使用条款要求外部用户在访问资源之前批准使用条款。

具有 Microsoft Entra ID P1 或 P2 功能的来宾用户的许可注意事项

Microsoft Entra External ID定价基于每月活跃用户(MAU)。 活跃用户数是指在一个日历月内发生了身份验证活动的唯一用户计数。

Office 365注意事项

本文所讨论的场景中涉及的 Office 365 信息如下。 有关详细信息,请参阅 Microsoft 365 租户间协作 租户间协作。 本文介绍多种选项,包括使用中心位置存储文件和对话、共享日历、使用即时消息、音频/视频通信通话,以及保护对资源和应用程序的访问。

Microsoft Exchange Online

Exchange Online限制外部用户的某些功能。 可以通过创建外部成员用户而不是外部来宾用户来减少限制。 对外部用户的支持存在以下限制。

  • 可以将Exchange Online许可证分配给外部用户。 但是,无法向他们颁发Exchange Online令牌。 结果是他们无法访问该资源。
    • 外部用户无法使用资源租户中的共享或委派Exchange Online邮箱。
    • 可以将外部用户分配到共享邮箱,但他们无法访问该邮箱。
  • 需要取消隐藏外部用户才能将其包含在 GAL 中。 默认情况下,它们是隐藏的。
    • 隐藏的外部用户是在邀请时创建的。 创建过程与用户是否已兑换其邀请无关。 因此,如果未取消隐藏所有外部用户,则列表将包含尚未兑换邀请的外部用户的用户对象。 根据你的方案,你可能希望列出这些对象,也可能不希望列出这些对象。
    • 外部用户可能使用 Exchange Online PowerShell取消隐藏。 可以执行 Set-MailUser PowerShell cmdlet,将 HiddenFromAddressListsEnabled 属性设置为 $false 值。

例如:

Set-MailUser [ExternalUserUPN] -HiddenFromAddressListsEnabled:\$false\

其中 ExternalUserUPN 是计算出的 UserPrincipalName。

例如:

Set-MailUser externaluser1_contoso.com#EXT#@fabrikam.partner.onmschina.cn\ -HiddenFromAddressListsEnabled:\$false

外部用户可能在Microsoft 365管理中心内取消隐藏。

  • 只能将更新设置为特定于 Exchange 的属性(如 PrimarySmtpAddressExternalEmailAddressEmailAddressesMailTipExchange Online PowerShell。 Exchange Online管理中心不允许使用图形用户界面(GUI)修改属性。

如示例所示,可对特定于邮件的属性使用 Set-MailUser PowerShell cmdlet。 可以使用 Set-User PowerShell cmdlet 修改某些用户属性。 可以使用Microsoft Graph API 修改大多数属性。

Set-MailUser 的最有用功能之一是操控 EmailAddresses 属性。 此多值属性可能包括外部用户的多个代理地址(例如,SMTP、X500、会话启动协议 [SIP])。 默认情况下,外部用户的主要 SMTP 地址已戳记为与 UserPrincipalName (UPN) 相关。 如果要更改主 SMTP 或添加 SMTP 地址,可以设置此属性。 不能使用 Exchange 管理中心;必须使用 Exchange Online PowerShell。 在 Exchange Online 中添加或删除邮箱的电子邮件地址 显示了修改多值属性(如 EmailAddresses)的不同方法。

Microsoft 365中的Microsoft SharePoint

在 Microsoft 365 中的 SharePoint 具有其特定服务的权限,这取决于用户(内部或外部)在 Microsoft Entra 租户中的类型是成员还是来宾。 Microsoft 365外部共享和Microsoft Entra B2B 协作介绍了如何实现与SharePoint和OneDrive的集成,以便与组织外部的人员共享文件、文件夹、列表项、文档库和网站。 Microsoft 365执行此作,同时使用 Azure B2B 进行身份验证和管理。

在 Microsoft 365 中启用 SharePoint 外部共享后,默认情况下,Microsoft 365 中的 SharePoint 人员选取器中搜索来宾用户的功能是关闭的。 此设置禁止来宾用户在从 Exchange Online GAL 中隐藏后被发现。 可通过两种方式(不互相排斥)使来宾用户可见:

  • 可通过以下方式来启用搜索来宾用户的功能:
    • 在租户和网站集级别修改 ShowPeoplePickerSuggestionsForGuestUsers 设置。
    • 使用 Set-SPOTenantSet-SPOSiteSharePoint 通过 Microsoft 365 PowerShell 设置该功能。
  • Exchange Online GAL 中显示的来宾用户也可以在Microsoft 365人员选取器中的SharePoint中看到。 无论 ShowPeoplePickerSuggestionsForGuestUsers 的设置如何,这些帐户都可见。

Microsoft Teams

Microsoft Teams具有限制访问权限和基于用户类型的功能。 更改用户类型可能会影响内容访问和可用功能。 Microsoft Teams 要求用户在其主租户之外的 Teams 中工作时,使用 Teams 客户端的租户切换机制来更改其工作上下文。

Microsoft Teams 的租户切换机制可能在用户在非主租户的 Teams 中工作时需要手动切换 Teams 客户端的上下文。

您可以通过启用 Teams 联合,使来自其他整个外部域的 Teams 用户能够查找您的用户、与其通话、聊天和举行会议。 管理外部会议以及与使用 Microsoft 标识的人员和组织聊天介绍了如何使组织中的用户能够与组织外部使用 Microsoft 作为标识提供者的人员聊天和开展会议。

Teams 中来宾用户的许可注意事项

将 Azure B2B 配合 Office 365 工作负载使用时,关键注意事项包括来宾用户(内部或外部)在某些情况下与成员用户没有相同的体验。

  • Microsoft Groups.向Office 365组添加 Microsoft 365 Groups来宾介绍了如何通过授予来宾访问组对话、文件、日历邀请和组笔记本的权限,使你和团队能够与组织外部的人员协作。
  • Microsoft Teams. Teams 中的团队所有者、成员和来宾功能描述了Microsoft Teams中的来宾帐户体验。 可以使用外部成员用户在 Teams 中启用全保真体验。
    • 对于商业云中的多个租户,在其主租户中获得许可的用户可以访问同一法律实体内另一个租户中的资源。 可以使用外部成员设置授予访问权限,这不会产生额外的许可费用。 此设置适用于团队和组的 SharePoint 和 OneDrive。
    • 对于其他Azure云中的多个租户以及不同云中的多个租户,B2B 成员许可证检查尚不可用。 使用 Teams 的 B2B 成员需要为每个 B2B 成员提供额外的许可证。 此要求还可能会影响其他工作负荷,例如Power BI。
    • 不属于同一法律实体的租户的 B2B 成员使用情况受其他许可证要求的约束。
  • 身份治理功能 权利管理和访问评审可能需要外部用户的其他许可证。
  • 其他产品。 Dynamics客户关系管理(CRM)等产品可能需要在用户所属的每个租户中获得许可。

后续步骤

  • 多租户用户管理简介是系列文章中的第一篇,旨在为在 Microsoft Entra 多租户环境中配置和管理用户生命周期提供指导。
  • 多租户用户管理方案 描述了可以使用多租户用户管理功能的三种方案:最终用户启动、脚本化和自动化。
  • 当单租户不适合你的场景时多租户用户管理的常见解决方案,这篇文章介绍应对以下挑战的指导:跨租户的自动化用户生命周期管理和资源分配、跨租户共享本地应用。
  • 适用于美国国防工业基地的 Microsoft 协作框架介绍了供标识适应多租户组织 (MTO) 的候选参考体系结构。 此方案特别适用于那些正在美国主权云中部署 Microsoft 365 美国政府版(GCC High)和 Azure 政府版的 MTO。 它还解决了高度管控环境中的外部协作问题,包括驻留在商业或美国主权云中的组织。