B2B 同步

OneDrive 同步应用程序现在允许用户同步 Microsoft SharePoint 或 Microsoft OneDrive 中已从其他组织共享的库或文件夹。 此方案通常称为企业到企业 (B2B) 协作。 我们将在 OneDrive 同步 应用中将此新功能称为“B2B 同步”。

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

重要

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

B2B 同步要求

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

  • 必须为组织启用外部共享。
  • 必须为网站或 OneDrive 启用外部共享。
  • 必须在网站或文件夹级别与组织外部的人员共享内容。 如果文件夹是共享的,则它必须通过需要登录的链接。
  • 共享收件人必须具有 Microsoft 365 工作或学校帐户 (与内容租户(Microsoft Azure 商业版、Microsoft Azure 政府或 Microsoft Azure 中国版)位于同一云中的Microsoft Entra ID) 。 (请注意,Microsoft Azure 商业版包含 Microsoft 365 商业版和 GCC 云环境,Microsoft Azure 政府 包含 GCC High 和 DoD 云环境。)
  • 任何Microsoft Entra条件访问策略都必须与来宾兼容, (低于) 。
  • 如果使用 19.086.*之前的生成,则不得启用 ADAL。

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

此版本的已知问题

  • 例如,从一个云中的租户共享的内容 (Microsoft Azure 中国) 不能由用户在不同的云 ((例如 Microsoft Azure 商业) )同步。
  • 在 Mac 上,不会显示外部组织站点中的“文件按需”缩略图。 用户自己组织中的文件的缩略图将正确显示。
  • 在 Mac 上,如果创建的来宾帐户的电子邮件地址格式不同于其用于同步应用的表单,则无法同步外部站点的内容。 例如, first.last@fabrikam.com 与 alias@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 文件或重试创建任何失败的帐户。

注意

Azure AD Powershell 计划于 2024 年 3 月 30 日弃用。 若要了解详细信息,请阅读 弃用更新

建议迁移到 Microsoft Graph PowerShell,以便与以前为 Azure AD) Microsoft Entra ID (交互。 Microsoft Graph PowerShell 允许访问所有 Microsoft Graph API,可在 PowerShell 7 上使用。 有关常见迁移查询的解答,请参阅 迁移常见问题解答

将用户添加到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