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

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

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

本指导可帮助你实现一致的用户生命周期管理状态。 生命周期管理包括使用 Microsoft Entra B2B 协作 (B2B) 等可用的 Azure 工具在不同的租户中预配、管理和取消预配用户。

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

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

目录对象注意事项

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

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

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

转换外部用户的 UserType

使用控制台手动为外部用户帐户创建邀请时,将创建具有来宾用户类型的用户对象。 使用其他方法创建邀请可将用户类型设置为除外部来宾帐户以外的其他类型。 例如,在使用 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 协作,它会创建一个邮件联系人对象。

  • mail contact 对象和启用邮件的外部成员或来宾用户不能以相同的电子邮件地址同时共存于同一租户中。
  • 如果与受邀外部用户相同的邮件地址存在邮件联系人对象,则会创建外部用户但不启用邮件。
  • 如果已启用邮件的外部用户存在相同的邮件,则尝试创建邮件联系人对象时会引发异常。

重要

使用邮件联系人需要 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 治理、访问评审。 可以使用访问评审功能来评审和证明 Office 365 组的成员身份。 访问评审是基于用户对象进行的。 由邮件联系人对象表示的成员超出了访问评审的范围。
  • Microsoft Entra ID 治理、权利管理 (EM)。 使用 EM 在公司的 EM 门户中为外部用户启用自助访问请求时,会在请求时创建用户对象。 它不支持邮件联系人对象。

Microsoft Entra 条件访问注意事项

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

如果允许,可将此行为替代为支持多重身份验证的跨租户访问设置 (CATS) 以及主租户中的设备合规性。

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

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

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

保护多租户环境

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

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

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

监视多租户环境

  • 使用审核日志 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 使用条款这种简单的方法向最终用户显示信息。 你可以通过使用条款要求外部用户在访问资源之前批准使用条款。

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

Microsoft Entra 外部 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#@fabricam.partner.onmschina.cn\ -HiddenFromAddressListsEnabled:\$false

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

  • 只能使用 Exchange Online PowerShell 设置特定于 Exchange 的属性(例如 PrimarySmtpAddress、ExternalEmailAddress、EmailAddresses 和 MailTip)的更新。 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 隐藏来宾用户时禁止发现这些用户。 可通过两种方式(不互相排斥)使来宾用户可见:

  • 可通过以下方式来启用搜索来宾用户的功能:
  • 在 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 组将来宾添加到 Office 365 组介绍了你和团队如何使用 Microsoft 365 组中的来宾访问权限,通过授予他们对群组对话、文件、日历邀请和组笔记本的访问权限来与组织外部的人员协作。
  • Microsoft Teams。Teams 中的团队所有者、成员和来宾功能介绍了 Microsoft Teams 中的来宾帐户体验。 可以使用外部成员用户在 Teams 中启用全保真体验。
    • 对于商业云中的多个租户,在其主租户中获得许可的用户可以访问同一法律实体内另一个租户中的资源。 可以使用外部成员设置授予访问权限,这不会产生额外的许可费用。 此设置适用于 SharePoint以及 Teams 和组的 OneDrive。
    • 对于其他 Azure 云中的多个租户以及不同云中的多个租户,企业对企业会员许可证检查尚不可用。 对 Teams 使用 B2B 成员需要为每个 B2B 成员提供额外的许可证。 此要求也可能会影响其他工作负载,例如 Power BI。
    • 不属于同一法律实体的租户的 B2B 成员使用情况受其他许可证要求的约束。
  • Identity Governance 功能。 权利管理和访问评审可能需要外部用户的其他许可证。
  • 其他产品。 其他产品(例如 Dynamics Customer Relationship Management [CRM])可能需要在代表用户的每个租户中获得许可。

后续步骤

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