B2B 同步

OneDrive 同步 应用中的 B2B 同步功能允许用户同步Microsoft SharePoint 或 Microsoft OneDrive 中从其他组织共享的库或文件夹。 此方案通常称为企业到企业 (B2B) 协作。

Microsoft Entra来宾帐户在实现B2B 协作方面起着关键作用。 一个组织中的来宾帐户链接到另一个组织中的成员帐户。 创建后,来宾帐户允许 Microsoft 365 服务(如 OneDrive 和 SharePoint)向网站和文件夹授予来宾权限,就像向组织内成员授予权限一样。 由于两个组织中的帐户已链接,因此用户只需记住其组织中的帐户的用户名和密码。 因此,通过单一登录其帐户,可以访问其自己的组织以及为其创建来宾帐户的任何其他组织的内容。

重要

建议启用 SharePoint 和 OneDrive 与 Microsoft Entra B2B 的集成,以帮助确保在组织的目录中创建共享收件人所需的Microsoft Entra来宾帐户。

B2B 同步要求

让组织外部的人员同步共享库和文件夹:

  • 必须为组织启用外部共享。
  • 必须为网站或 OneDrive 启用外部共享。
  • 必须在网站或文件夹级别与组织外部的人员共享内容。 如果文件夹是共享的,则它必须通过需要登录的链接。
  • 共享收件人必须在内容租户所在的Microsoft Entra ID) (Microsoft 365 工作或学校帐户(Microsoft Azure 商业版、Microsoft Azure 政府或 azure 中国世纪互联Microsoft)。 (Microsoft Azure 商业版包含 Microsoft 365 商业版和 GCC 云环境,Microsoft Azure 政府 包含 GCC High 和 DoD 云环境。)
  • 任何Microsoft Entra条件访问策略都必须与来宾兼容。 有关外部访问和兼容性的详细信息,请参阅 条件访问策略
  • 如果使用 19.086 之前的版本,则不得启用Microsoft身份验证库。

本文概述了 B2B 同步体验,并更详细地介绍了这些要求。

此版本的已知问题

  • 不支持在不同云中的用户之间进行同步。例如,Microsoft Azure 中国世纪互联中租户共享的内容不会为具有 Microsoft Azure 商业云的用户同步。
  • 在 Mac 上,不会从外部组织的站点显示文件按需缩略图。 用户自己组织中的文件的缩略图正确显示。
  • 在 Mac 上,如果创建来宾帐户时的电子邮件地址格式不同于其用于同步应用的表单,则无法同步外部网站的内容。 例如, first.last@fabrikam.comalias@fabrikam.com
  • 在 Mac 上,外部内容可以放在用户自己组织文件夹的本地计算机上,而不是具有外部组织名称的文件夹中。
  • 同步客户端不支持外部组织的来宾帐户的交互式身份验证 UI。

B2B 同步体验概述

下面是“Contoso”中的某人与“Fabrikam”中的某人共享网站或文件夹后所发生的情况示例:

  1. Fabrikam 收件人会收到如下电子邮件。

    共享邀请电子邮件

  2. 当收件人选择电子邮件中的链接以转到共享项目时,他们需要选择“组织帐户”以使用其 Fabrikam 帐户登录。 在后台,这会在 Microsoft Entra ID 中创建 Contoso 来宾帐户。

    接受邀请

  3. 收件人可能需要输入其 Fabrikam 用户名或密码,然后他们才能查看共享项目。 如果他们不想同步共享的所有内容,可以浏览到要同步的库或文件夹。若要设置同步,需要选择“同步”按钮。

    SharePoint 文档库中的“同步”按钮

  4. 来宾的浏览器会显示一条消息,询问他们是否要打开“Microsoft OneDrive”,他们需要允许此作。

  5. 如果这是来宾首次使用其 Fabrikam 帐户的同步应用,则需要登录。 电子邮件地址会自动设置为前面步骤中使用的 Fabrikam 帐户。 来宾需要选择“登录”。

  6. 如果来宾使用同一帐户登录到 Windows,则无需输入 Fabrikam 密码即可登录到同步应用。 否则,他们需要输入其密码。

  7. 来宾确认要在其计算机上同步共享项的位置。

    注意

    内容放置在文件夹中,该文件夹中的名称包括组织名称 ( 在此示例中为“SharePoint - Contoso”) 。 如果用户也从 Fabrikam 同步 SharePoint 内容,则他们还将具有“SharePoint - Fabrikam”文件夹。

  8. 来宾继续完成OneDrive 同步应用设置。

  9. 来宾完成设置后,站点将开始同步。 用户可以选择通知区域中的蓝色云图标,以打开OneDrive 同步活动中心并查看正在同步的文件、打开包含文件的本地文件夹或在 Web 浏览器中打开 SharePoint 网站。

为组织启用外部共享

为了使组织中的用户能够与其他组织中的合作伙伴共享,必须在组织级别启用外部共享。 为此,您必须是 Microsoft 365 中的全局管理员或 SharePoint 管理员。 在组织级别启用外部共享后,可以逐个站点限制外部共享。 网站的设置可以与组织设置相同,或者更严格,但不能更宽松。

可以在两个不同位置更改组织级别的共享设置, (两者控制) 相同的内容:

  • 在新的 SharePoint 管理中心的“共享”页上。 有关详细信息,请参阅 更改组织级外部共享设置
  • 在Microsoft 365 管理中心的“组织设置”页上>,SharePoint。

重要

如果允许任何人链接 (有时称为“匿名访问”链接) ,则这些链接不会创建来宾帐户,因此外部共享收件人在接收该链接类型时将无法使用 B2B 同步。

有关详细信息,请参阅 外部共享概述

控制外部共享

允许用户在外部共享组织的内容时,可以使用 Microsoft 365 中的多项功能来管理谁有权访问内容。 管理员和网站所有者可以查看权限并审核对网站的访问权限。 有关信息,请参阅 搜索与组织外部人员共享的网站内容启用外部共享通知。 可以仅使用特定的 Internet 域启用外部共享,也可以阻止特定域。 有关信息,请参阅 受限域共享。 还可以仅允许特定安全组的成员在外部共享。 有关信息,请参阅 打开或关闭外部共享

建议 (网站集创建单独的网站,而不是为要外部共享的每个工作单元创建子网站) 。 这样,可以清楚地注释网站,以指示组织外部的人员有权访问,并避免无意中泄露信息。 对于从 OneDrive 共享内容的单个用户,我们建议为不同的项目或协作组创建单独的文件夹。

可以删除来宾对网站或文件夹的权限,也可以删除来宾帐户以删除他们对组织所有内容的权限。

重要

删除权限后,任何同步的内容都将保留在用户的计算机上。

为网站启用外部共享

若要查看或更改任何网站的共享设置,请使用新的 SharePoint 管理中心。

  1. 转到 SharePoint 管理中心中的“活动网站”,并使用对组织具有管理员权限的帐户登录。

    注意

    如果使用的是由世纪互联(中国)运营的 Office 365,请登录 Microsoft 365 管理中心,然后浏览到 SharePoint 管理中心并打开“活动站点”页面。

  2. 根据需要自定义视图以查看“外部共享”列。

  3. 如果需要,请 更改网站的外部共享设置

确保任何Microsoft Entra条件访问 (CA) 策略都与外部访问兼容

租户管理员可以在其租户中启用多种条件访问策略。 当来宾要访问租户的内容时,可能需要针对来宾调整这些策略,以便他们获得访问权限。

  • 同步外部内容时,同步客户端当前不支持交互式身份验证 UI。 需要登录 UI(如 MFA (多重身份验证) 或 TOU (使用条款) 提示)的任何策略都将阻止从该租户同步外部内容。 如果租户管理员在来宾开始从该租户同步之前部署了此类策略,则用户无法建立同步关系。 如果策略是在来宾从租户同步内容之后部署的,该来宾将收到错误,并且无法继续从租户同步。

  • 租户可能会不时更新其使用条款 (TOU) 。 策略可以触发用户通过交互式身份验证提示查看和接受更新的 TOU。 由于同步不支持外部租户登录 UI,因此同步表示它无法同步外部站点的内容。

  • 设备符合性要求用户计算机由租户管理,然后符合要求。 对于来宾,其计算机可能由自己的组织管理,因此与要求由内容共享租户管理其计算机不兼容。

  • 当用户未从受信任的位置(如租户的办公室网络 () )进行连接时,基于位置的条件访问策略通常用于强制实施 MFA 等更多要求。 通常,在来宾方案中,客户端计算机不会位于受信任位置,并且由于同步不支持 MFA,因此你可能不希望此策略应用于来宾。

有关详细信息,请参阅 外部标识的身份验证和条件访问

共享方法

可以在 SharePoint 和 OneDrive 中以不同方式共享网站和文件夹:

  • 如果用户正在同步某个文件夹,则可以在文件资源管理器中右键单击该文件夹进行共享。
  • 用户可以转到 Web 上的 SharePoint 网站或文件夹,然后选择“共享”按钮进行共享。
  • 用户可以在 SharePoint 和 OneDrive 移动应用中共享网站和文件夹。
  • 管理员可以创建来宾帐户,并使用管理中心或 PowerShell 将其添加到网站。

注意

有关这些方法的详细信息,请参阅 了解如何共享网站了解如何共享文件夹

B2B 同步适用于所有这些共享方法。 它只有以下要求:

  • 要使来宾同步共享内容,必须在网站或文件夹级别共享内容。 来宾无法同步单独 (共享的文件,例如,从 Office 应用) 。
  • B2B 同步仅在组织中创建来宾帐户以及收件人具有Microsoft Entra帐户时有效。 如果用户通过创建“任何人”链接 (也称为“匿名访问”链接) 共享,或者与拥有Microsoft帐户或其他个人帐户的人员共享,则它不起作用。

将来宾添加到 SharePoint 网站

作为 Microsoft 365 中的管理员,您可以通过在Microsoft Entra 管理中心单独创建来宾,然后将来宾单独添加到 SharePoint 团队网站,或通过将来宾添加到已对要共享的网站具有权限的安全组来与组织外部的人员共享。 如果使用高级权限页面 (而不是使用“共享网站”按钮) 授予权限,则需要通知来宾你已授予他们访问网站的权限。 他们不会收到邀请电子邮件。

重要

如果使用高级权限页,我们建议在网站级别而不是文档库或文件夹级别授予权限。

使用 PowerShell 批量创建来宾帐户并将其添加到 SharePoint 组

如果需要创建多个来宾帐户并向其授予权限,可以使用以下 PowerShell 脚本创建来宾帐户并向其授予对网站的权限。 该脚本采用 CSV (逗号分隔值) 文件作为输入,其中包含用户显示名称和电子邮件地址的列表。 对于每个名称和电子邮件地址,将创建一个来宾帐户,并将该帐户添加到安全组以向其授予权限。 该脚本经过设计,以便可以在后续运行时将生成的输出 CSV 作为输入馈送给脚本。 这允许将更多用户添加到 CSV 文件或重试创建任何失败的帐户。

注意

自 2024 年 3 月 30 日起,Azure AD 和 MSOnline PowerShell 模块已弃用。 若要了解详细信息,请阅读 弃用更新。 在此日期之后,对这些模块的支持仅限于Microsoft Graph PowerShell SDK 和安全修补程序的迁移帮助。 弃用的模块将继续运行到 2025 年 3 月 30 日。

建议迁移到 Microsoft Graph PowerShell,以便与以前的 Azure AD) Microsoft Entra ID (交互。 有关常见的迁移问题,请参阅 迁移常见问题解答

请注意版本 1.0。MSOnline 的 x 可能会在 2024 年 6 月 30 日之后遇到中断。

将用户添加到Microsoft Entra组时,他们应会收到一封电子邮件,欢迎他们加入该组。 运行脚本后,你需要向用户发送电子邮件,其中包含你向其授予权限的 SharePoint 网站的直接链接。 当他们选择链接时,会显示以下 UI 以接受邀请条款。 一旦他们接受,他们就会被带到你与他们共享的网站。 此时,他们可以选择“同步”按钮,开始将网站文件同步到其电脑或 Mac。

接受共享邀请

# first line of InviteGuests.ps1 PowerShell script
# requires latest AzureADPreview
# Get-Module -ListAvailable AzureAD*
# Uninstall-Module AzureAD
# Uninstall-Module AzureADPreview
# Install-Module AzureADPreview


# customizable properties for this script

$csvDir = ''
$csvInput = $csvDir + 'BulkInvite.csv'
$csvOutput = $csvDir + 'BulkInviteResults.csv'

$___domain = 'YourTenantOrganization.onmicrosoft.com'
$admin = "admin@$___domain"
$redirectUrl = 'https://YourTenantOrganization.sharepoint.com/sites/SiteName/'
$groupName = 'SiteName'


# CSV file expected format (with the header row):
# Name,Email
# Jane Doe,jane@contoso.com

$csv = import-csv $csvInput

# will prompt for credentials for the tenantorganization admin account
# (who has permissions to send invites and add to groups)
Connect-AzureAD -TenantDomain $___domain -AccountId $admin

$group = (Get-AzureADGroup -SearchString $groupName)

foreach ($row in $csv)
{
    Try
    {
        if ((Get-Member -inputobject $row -name 'error') -and `
            ($row.error -eq 'success'))
        {
            $out = $row  #nothing to do, user already invited and added to group
        }
        else
        {
            echo ("name='$($row.Name)' email='$($row.Email)'")

            $inv = (New-AzureADMSInvitation -InvitedUserEmailAddress $row.Email -InvitedUserDisplayName $row.Name `
                        -InviteRedirectUrl $redirectUrl -SendInvitationMessage $false)

            $out = $row
            $out|Add-Member -MemberType ScriptProperty -force -name 'time' -Value {$(Get-Date -Format u)}
            $out|Add-Member -MemberType ScriptProperty -force -name 'status' -Value {$inv.Status}
            $out|Add-Member -MemberType ScriptProperty -force -name 'userId' -Value {$inv.InvitedUser.Id}
            $out|Add-Member -MemberType ScriptProperty -force -name 'redeemUrl' -Value {$inv.inviteRedeemUrl}
            $out|Add-Member -MemberType ScriptProperty -force -name 'inviteId' -Value {$inv.Id}

            # this will send a welcome to the group email
            Add-AzureADGroupMember -ObjectId $group.ObjectId -RefObjectId $inv.InvitedUser.Id

            $out|Add-Member -MemberType ScriptProperty -force -name 'error' -Value {'success'}
        }
    }
    Catch
    {
        $err = $PSItem.Exception.Message
        $out|Add-Member -MemberType ScriptProperty -force -name 'error' -Value {$err}
    }
    Finally
    {
        $out | export-csv -Path $csvOutput -Append
    }
}

# for more information please see
# https://learn.microsoft.com/azure/active-directory/b2b/b2b-tutorial-bulk-invite
# end of InviteGuests.ps1 powershell script

有关详细信息,请参阅:

当来宾失去对共享内容的访问权限时

如果删除了用户的来宾帐户或删除了他们对共享内容的权限,则同步应用会显示错误。

  • 此时会显示一条通知,指示无法同步库。

    无法同步文档库通知

  • 通知区域中的 OneDrive 图标显示错误。

    OneDrive 同步错误图标

    当来宾选择图标时,他们在活动中心看到错误横幅。

    OneDrive 需要注意消息 “请求访问或停止同步库

用于阻止 B2B 同步的策略设置

OneDrive 同步应用的 B2B 同步功能允许组织中的用户从另一个组织同步与他们共享的内容。 如果要阻止组织中的用户使用 B2B 同步,可以在用户的 Windows 电脑或 Mac 上设置策略值来阻止外部同步。

仅当希望阻止组织中的用户使用 B2B 同步功能 (阻止同步其他组织共享的库和文件夹) 时,才需要执行这些作。

作为OneDrive 同步产品内部版本 19.086.* 或更高版本的一部分安装的 adm\OneDrive.admx 和 OneDrive.adml 文件中介绍了新的 BlockExternalSync 设置。 如果使用 ADM 管理同步应用策略,请像平常一样导入新文件,以查看新设置。

如果使用其他管理系统将策略部署到用户的 Windows 电脑,请使用以下命令来阻止 B2B 同步:

reg add "HKLM\SOFTWARE\Policies\Microsoft\OneDrive" /v BlockExternalSync /t REG_DWORD /d 1

在具有 Apple Store 版本的 OneDrive 的 Mac 上,使用以下命令的等效项来阻止 B2B 同步:

defaults write com.microsoft.OneDrive-mac BlockExternalSync -bool YES

在具有独立版 OneDrive 的 Mac 上,使用以下命令的等效项来阻止 B2B 同步:

defaults write com.microsoft.OneDrive BlockExternalSync -bool YES