B2B 同步
现在,OneDrive 同步应用允许用户同步 Microsoft SharePoint 或 Microsoft OneDrive中已与其他组织共享的库或文件夹。 此方案通常称为企业到企业 (B2B) 协作。 我们将在应用"B2B 同步"OneDrive 同步此新功能。
Azure Active Directory (AAD) 来宾帐户在实现 B2B 协作方面起到重要作用。 一个组织的来宾帐户链接到另一个组织的成员帐户。 创建来宾帐户后,Microsoft 365服务(如 OneDrive 和 SharePoint)向网站和文件夹授予来宾权限的方式与向组织内部的成员授予权限的方式相同。 由于两个组织的帐户是链接的,因此用户只需记住其组织帐户的用户名和密码。 因此,通过单一登录帐户,可以访问来自其自己的组织以及任何其他已创建来宾帐户的组织的内容。
重要
我们建议你注册 SharePoint 和 OneDrive 与Azure AD B2B的集成,以帮助确保共享收件人所需的 Azure AD 来宾帐户在组织的目录中创建。
B2B 同步要求
对于组织外部人员同步共享库和文件夹:
- 必须为组织启用外部共享。
- 必须为站点或网站启用外部OneDrive。
- 内容必须与组织外部人员在站点或文件夹级别共享。 如果共享文件夹,则必须通过需要登录的链接。
- 共享收件人必须在 Azure AD Microsoft 365中拥有 (或学校) 。
- 如果使用 19.086 之前版本,不得启用 ADAL。*。
本文概述了 B2B 同步体验,并更详细地描述了这些要求。
此版本的已知问题
- 在 Mac 上,文件按需缩略图不会从外部组织的网站显示。 对于来自用户自己组织的文件,缩略图将正确显示。
- 在 Mac 上,如果来宾帐户创建时采用的电子邮件地址格式与它们在同步应用中使用的表单不同,则外部网站的内容无法同步。 例如,first.last@fabrikam.com 与 alias@fabrikam.com。
- 在 Mac 上,外部内容可以放置在用户自己组织的文件夹中的本地计算机上,而不是具有外部组织名称的文件夹中。
- 尚不支持来自外部组织的多重身份验证。 只有不需要 MFA 的来宾帐户才能同步。
B2B 同步体验概述
下面是"Contoso"中的某人与"Fabrikam"中的某人共享站点或文件夹后会发生什么情况的示例:
Fabrikam 收件人收到如下所示的电子邮件。

当收件人单击电子邮件中的链接以转到共享项目时,他们需要单击"组织帐户"以使用其 Fabrikam 帐户登录。 在后台,这将在 Azure AD 中创建 Contoso 来宾帐户。

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

来宾的浏览器将显示一条消息,询问是否要打开"Microsoft OneDrive",并且需要允许此操作。
如果这是来宾第一次使用 Fabrikam 帐户使用同步应用,则需要登录。 电子邮件地址将自动设置为前面步骤中使用的 Fabrikam 帐户。 来宾需要选择"登录"。
如果来宾登录到使用同一帐户登录,则无需输入其 Fabrikam 密码Windows同步应用。 否则,他们将需要输入密码。
来宾将确认想要在什么位置同步其计算机上共享的项目。
备注
内容被放置在一个文件夹中,其中的名称包括 ("SharePoint - Contoso"的组织名称,) 。 如果用户同时从 Fabrikam SharePoint内容,则还将具有"SharePoint - Fabrikam"文件夹。
来宾将继续通过应用OneDrive 同步向导。
关闭向导后,网站将开始同步。 用户可以单击通知区域中的蓝色云图标,打开 OneDrive 同步 活动中心并查看文件同步,打开包含文件的本地文件夹,或在 Web 浏览器中打开 SharePoint 网站。
为组织启用外部共享
为了使贵组织的用户能够与其他组织的合作伙伴共享,必须在组织级别启用外部共享。 为此,你必须是全局管理员或SharePoint管理员Microsoft 365。 在组织级别启用外部共享后,可以按网站限制外部共享。 网站的设置可以与组织设置相同,也可以限制更多,但不允许。
可以在三个不同的位置更改组织级别的共享设置, (三个控件中的相同) :
- 在新建管理中心的"共享"SharePoint" " 共享"。 有关详细信息,请参阅更改 组织级别外部共享设置
- 在Microsoft 365 管理中心中,在设置 > & 服务外接程序网站 > "下。
- 在管理中心的"共享"OneDrive"
重要
如果允许"任何人"链接 (有时称为"匿名访问"或"可共享") ,则这些链接不会创建来宾帐户,因此外部共享收件人在收到该链接类型时将不能利用 B2B 同步。
有关详细信息,请参阅外部 共享概述。
控制外部共享
当您允许用户从外部共享组织内容时,您可以使用组织中Microsoft 365管理有权访问内容的用户。 管理员和网站所有者可以审阅权限并审核对网站的访问权限。 有关信息, 请参阅搜索与组织外部 人员共享的网站内容和 启用外部共享通知。 可以仅启用与特定 Internet 域的外部共享,也可以阻止特定域。 有关信息,请参阅 受限域共享。 还可以只允许特定安全组的成员在外部共享。 有关信息,请参阅 打开或关闭外部共享。
我们建议在网站集 (单独的网站,而不是为) 要外部共享的每个工作单元创建子网站。 这样,您可以清楚地注释网站,以指示组织外部人员具有访问权限,并避免意外泄露信息。 对于从用户网站共享内容OneDrive,我们建议为不同的项目或协作组创建单独的文件夹。 你可以删除来宾对站点或文件夹的权限,也可以删除来宾帐户以从组织的所有内容中删除其权限。
重要
删除权限后,任何同步的内容将保留在用户计算机上。
为网站启用外部共享
若要查看或更改任何网站的共享设置,请使用新SharePoint管理中心。
转到新的 SharePoint 管理中心的“活动网站”页,然后使用在组织中具有管理员权限的帐户进行登录。
备注
如果使用的是 Office 365 Germany,请登录 Microsoft 365 管理中心,然后浏览到 SharePoint 管理中心并打开“活动站点”页面。
如果使用的是由世纪互联(中国)运营的 Office 365,请登录 Microsoft 365 管理中心,然后浏览到 SharePoint 管理中心并打开“活动站点”页面。根据需要自定义视图以查看"外部共享"列。
如果需要,请 更改网站的外部共享设置。
共享方法
可以通过不同的方式在网站和文件夹中SharePoint OneDrive:
- 如果用户正在同步文件夹,可以在文件资源管理器中右键单击该文件夹进行共享。
- 用户可以转到 web 上的SharePoint或文件夹,然后单击"共享"按钮进行共享。
- 用户可以在移动应用中共享SharePoint OneDrive文件夹。
- 管理员可以创建来宾帐户,并使用管理中心或 PowerShell 将它们添加到网站。
B2B 同步适用于所有这些共享方法。 它只有以下要求:
- 若要使来宾同步共享内容,必须在站点或文件夹级别共享内容。 来宾无法同步单独共享的文件 (例如,从应用Office共享) 。
- B2B 同步仅在组织中创建来宾帐户以及收件人具有 Azure AD 帐户时有效。 当用户通过创建"任何人"链接(也称为"匿名访问"链接或"可共享"链接 () )进行共享,或者与拥有 Microsoft 帐户或其他个人帐户的人共享时,它不起作用。
将来宾添加到SharePoint网站
作为 Microsoft 365 中的管理员,你可以与组织外部人员共享,具体操作是:在Azure AD管理中心中分别创建来宾,然后分别将来宾添加到 SharePoint 团队网站,或者将来宾添加到已拥有要共享网站权限的安全组。 如果使用高级权限页面 (而不是使用"共享网站"按钮) 授予权限,则需要通知来宾你已授予他们网站权限。 他们不会收到邀请电子邮件。
重要
如果使用高级权限页面,我们建议在网站级别授予权限,而不是在文档库或文件夹级别授予权限。
使用 PowerShell 批量创建来宾帐户并将其添加到SharePoint组
如果需要创建多个来宾帐户并授予其权限,可以使用以下 PowerShell 脚本,该脚本将创建来宾帐户并授予他们网站权限。 该脚本将 CSV (逗号分隔) 文件作为输入,其中包含用户显示名称和电子邮件地址的列表。 对于每个名称和电子邮件地址,将创建一个来宾帐户,并且该帐户将添加到安全组以授予其权限。 该脚本的设计目的是为了在后续运行时,您可以将生成的输出 CSV 作为输入馈送到脚本。 这使你可以向 CSV 文件添加更多用户或重试创建任何失败的帐户。
在将用户添加到 Azure AD 组时,他们将收到一封欢迎他们加入该组的电子邮件。 运行脚本后,你需要通过电子邮件向用户发送指向你授予其权限的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://docs.microsoft.com/azure/active-directory/b2b/b2b-tutorial-bulk-invite
# end of InviteGuests.ps1 powershell script
有关详细信息,请参阅:
当来宾失去对共享内容的访问权限时
如果用户的来宾帐户被删除或共享内容的权限被删除,同步应用将显示错误。
将显示一条通知,指示库无法同步。

通知OneDrive图标将显示错误。

当来宾单击该图标时,他们将在活动中心看到一个错误横幅。

阻止 B2B 同步的策略设置
通过应用程序应用的 B2B OneDrive 同步,组织的用户可以同步从另一个组织与用户共享的内容。 如果你希望阻止组织的用户使用 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