B2B 同期

OneDrive 同期 アプリを使用すると、他の組織から共有されている Microsoft SharePoint または Microsoft OneDrive 内のライブラリまたはフォルダーをユーザーが同期できるようになりました。 このシナリオは、多くの場合、ビジネス間 (B2B) コラボレーションと呼ばれます。 この新機能は、OneDrive 同期 アプリ "B2B Sync" で呼び出しています。

Microsoft Entraゲスト アカウントは、B2B Collaborationを可能にする上で重要な役割を果たします。 あるorganizationのゲスト アカウントは、別のorganizationのメンバー アカウントにリンクします。 ゲスト アカウントを作成すると、OneDrive や SharePoint などの Microsoft 365 サービスは、organization内のメンバーにアクセス許可が付与されるのと同じ方法で、サイトやフォルダーにゲストアクセス許可を付与できます。 2 つの組織のアカウントはリンクされているため、ユーザーは自分のorganizationでアカウントのユーザー名とパスワードのみを記憶する必要があります。 その結果、自分のアカウントにシングル サインインすると、自分のorganizationや、ゲスト アカウントを作成した他の組織からコンテンツにアクセスできるようになります。

重要

SharePoint と OneDrive と Microsoft Entra B2B の統合を有効にして、共有受信者に必要なMicrosoft Entraゲスト アカウントがorganizationのディレクトリに確実に作成されるようにすることをお勧めします。

B2B 同期の要件

organization外のユーザーが共有ライブラリとフォルダーを同期する場合:

  • organizationに対して外部共有を有効にする必要があります。
  • サイトまたは OneDrive で外部共有を有効にする必要があります。
  • コンテンツは、サイトまたはフォルダー レベルでorganization外のユーザーと共有する必要があります。 フォルダーが共有されている場合は、サインインが必要なリンク経由である必要があります。
  • 共有受信者は、コンテンツ テナントと同じクラウド (Microsoft Azure Commercial、Microsoft Azure Government、または Microsoft Azure China) に Microsoft 365 の職場または学校アカウント (Microsoft Entra ID) を持っている必要があります。 (Microsoft Azure Commercial には Microsoft 365 商用および GCC クラウド環境が含まれており、Microsoft Azure Governmentには GCC High および DoD クラウド環境が含まれていることに注意してください)。
  • Microsoft Entra条件付きアクセス ポリシーは、ゲストと互換性がある必要があります (以下の詳細)。
  • 19.086.*より前のビルドを使用している場合、ADAL を有効にしないでください。

この記事では、B2B 同期エクスペリエンスの概要と、これらの要件について詳しく説明します。

このリリースに関する既知の問題

  • 1 つのクラウド (Microsoft Azure China など) のテナントから共有されたコンテンツは、別のクラウド (Microsoft Azure Commercial など) のユーザーが同期することはできません。
  • Mac では、ファイルオンデマンドサムネイルは外部organizationのサイトからは表示されません。 サムネイルは、ユーザー自身のorganizationからのファイルに対して正しく表示されます。
  • Mac で、ゲスト アカウントが同期アプリで使用しているフォームとは異なるメール アドレス形式で作成された場合、外部サイトのコンテンツを同期できません。 たとえば、 first.last@fabrikam.com と です alias@fabrikam.com。
  • Mac では、外部のorganization名を持つコンテンツではなく、ユーザー自身のorganizationのフォルダー内のローカル コンピューターに外部コンテンツを配置できます。
  • 外部organizationからのゲスト アカウントの対話型認証 UI は、同期クライアントではサポートされていません。

B2B 同期エクスペリエンスの概要

"Contoso" のユーザーが "Fabrikam" のユーザーとサイトまたはフォルダーを共有した後の動作の例を次に示します。

  1. Fabrikam 受信者は、次のようなメールを受信します。

    共有の招待メール

  2. 受信者がメール内のリンクをクリックして共有アイテムに移動すると、Fabrikam アカウントでサインインするために [組織アカウント] をクリックする必要があります。 バックグラウンドでは、Contoso ゲスト アカウントがMicrosoft Entra IDに作成されます。

    招待を受け入れる

  3. 受信者は Fabrikam のユーザー名またはパスワードを入力する必要があり、共有アイテムを表示できます。 共有されたすべてを同期したくない場合は、同期するライブラリまたはフォルダーを参照できます。同期を設定するには、[同期] ボタンをクリックする必要があります。

    SharePoint ドキュメント ライブラリの [同期] ボタン

  4. ゲストのブラウザーには、"Microsoft OneDrive" を開くかどうかを確認するメッセージが表示され、これを許可する必要があります。

  5. ゲストが Fabrikam アカウントで同期アプリを初めて使用する場合は、サインインする必要があります。 メール アドレスは、前の手順で使用した Fabrikam アカウントに自動的に設定されます。 ゲストは [サインイン] を選択する必要があります。

  6. ゲストが同じアカウントで Windows にサインインしている場合、Fabrikam パスワードを入力せずに同期アプリにサインインできる場合があります。 それ以外の場合は、パスワードを入力する必要があります。

  7. ゲストは、自分のコンピューター上の共有アイテムを同期する場所を確認します。

    注:

    コンテンツは、organizationの名前 (この例では "SharePoint - Contoso") を含むフォルダーに配置されます。 ユーザーが Fabrikam から SharePoint コンテンツも同期している場合は、"SharePoint - Fabrikam" フォルダーもあります。

  8. ゲストは、アプリのセットアップOneDrive 同期続行されます。

  9. ゲストのセットアップが完了すると、サイトの同期が開始されます。 ユーザーは、通知領域の青いクラウド アイコンをクリックして、OneDrive 同期 アクティビティ センターを開き、ファイルの同期を確認したり、ファイルを含むローカル フォルダーを開いたり、Web ブラウザーで SharePoint サイトを開いたりすることができます。

organizationの外部共有を有効にする

organizationのユーザーが他の組織のパートナーと共有できるようにするには、外部共有をorganizationレベルで有効にする必要があります。 これを行うには、Microsoft 365 のグローバル管理者または SharePoint 管理者である必要があります。 organization レベルで外部共有を有効にした後、サイトごとに制限できます。 サイトの設定は、organization設定と同じにすることも、制限を厳しくすることもできますが、制限は厳しくすることはできません。

organizationレベルの共有設定は、2 つの異なる場所で変更できます (両方とも同じことを制御します)。

重要

[すべてのユーザー] リンク ("匿名アクセス" リンクとも呼ばれます) を許可した場合、これらのリンクはゲスト アカウントを作成しないため、外部共有受信者は、そのリンクの種類を受信するときに B2B 同期を利用できません。

詳細については、「 外部共有の概要」を参照してください。

外部共有を制御する

ユーザーがorganizationのコンテンツを外部で共有できるようにする場合は、Microsoft 365 のいくつかの機能を使用して、コンテンツにアクセスできるユーザーを管理できます。 管理者とサイト所有者は、アクセス許可を確認し、サイトへのアクセスを監査できます。 詳細については、「organization外のユーザーと共有されているサイト コンテンツを検索する」および「外部共有通知を有効にする」を参照してください。 特定のインターネット ドメインでのみ外部共有を有効にすることも、特定のドメインをブロックすることもできます。 詳細については、「 制限付きドメインの共有」を参照してください。 また、特定のセキュリティ グループのメンバーのみが外部で共有できるようにすることもできます。 詳しくは、「 外部共有を有効または無効にする」をご覧ください。

外部で共有する作業単位ごとに個別のサイト (サブサイトではなくサイト コレクション) を作成することをお勧めします。 これにより、サイトに明確に注釈を付けて、organization外のユーザーがアクセスできることを示し、意図しない情報漏えいを避けることができます。 OneDrive からコンテンツを共有する個々のユーザーには、さまざまなプロジェクトまたはコラボレーション グループ用に個別のフォルダーを作成することをお勧めします。

サイトまたはフォルダーに対するゲストのアクセス許可を削除することも、ゲスト アカウントを削除して、organizationのすべてのコンテンツからアクセス許可を削除することもできます。

重要

同期されたコンテンツは、アクセス許可が削除された後もユーザーのコンピューターに残ります。

サイトの外部共有を有効にする

任意のサイトの共有設定を表示または変更するには、新しい SharePoint 管理センターを使用します。

  1. SharePoint 管理センター の[アクティブなサイト] に移動し、組織の管理者権限を持つアカウントでサインインします。

    注:

    21Vianet (中国) によって運用されている Office 365 を使用している場合は、Microsoft 365 管理センターにサインインし、次に SharePoint 管理センターに移動して [アクティブなサイト] ページを開きます。

  2. 必要に応じてビューをカスタマイズして、[外部共有] 列を表示します。

  3. 必要に応じて、 サイトの外部共有設定を変更します。

Microsoft Entra条件付きアクセス (CA) ポリシーが外部アクセスと互換性があることを確認する

テナント管理者は、テナントで複数の種類の条件付きアクセス ポリシーを有効にすることができます。 ゲストがテナントのコンテンツにアクセスする場合、ゲストがアクセスできるように、それらのポリシーを調整する必要がある場合があります。

  • 現在、同期クライアントは、外部コンテンツを同期する際に対話型認証 UI をサポートしていません。 MFA (多要素認証) や TOU (使用条件) プロンプトなどのサインイン UI を必要とするポリシーは、そのテナントからの外部コンテンツの同期を防ぎます。 ゲストがそのテナントからの同期を開始する前にテナント管理者がこのようなポリシーをデプロイした場合、ユーザーは同期関係を確立できません。 ゲストがテナントからコンテンツを同期した後にポリシーが展開された場合、そのゲストはエラーを受け取り、テナントからの同期を続行できません。

  • テナントは、使用条件 (TOU) を随時更新できます。 ポリシーを使用すると、対話型の認証プロンプトを使用して、更新された TOU を表示して受け入れるユーザーをトリガーできます。 同期では外部テナント サインイン UI がサポートされていないため、同期は外部サイトのコンテンツを同期できないことを示します。

  • デバイス コンプライアンスでは、ユーザー マシンをテナントによって管理し、要件を満たす最新の状態にする必要があります。 ゲストの場合、マシンは自分のorganizationによって管理される可能性が高いため、コンテンツ共有テナントによってマシンを管理する必要がある場合と互換性がありません。

  • 通常、場所ベースの条件付きアクセス ポリシーは、ユーザーが信頼された場所 (テナントのオフィス ネットワークなど) から接続していない場合に MFA などの追加要件を適用するために使用されます。 通常、ゲスト シナリオでは、クライアント マシンは信頼できる場所に配置されず、同期では MFA がサポートされていないため、ゲストにこのポリシーを適用したくない可能性があります。

詳細については、「 外部 ID の認証と条件付きアクセス」を参照してください。

共有の方法

サイトとフォルダーは、SharePoint と OneDrive のさまざまな方法で共有できます。

  • ユーザーがフォルダーを同期している場合は、エクスプローラーでフォルダーを右クリックして共有できます。
  • ユーザーは、Web 上の SharePoint サイトまたはフォルダーに移動し、[共有] ボタンをクリックして共有できます。
  • ユーザーは、SharePoint モバイル アプリと OneDrive モバイル アプリでサイトとフォルダーを共有できます。
  • 管理者は、ゲスト アカウントを作成し、管理センターまたは PowerShell を使用してサイトに追加できます。

注:

これらの方法の詳細については、「 サイトを共有する方法」 および 「フォルダーを共有する方法」を参照してください

B2B Sync は、これらすべての共有方法で動作します。 次の要件のみが含まれます。

  • ゲストが共有コンテンツを同期するには、コンテンツをサイトまたはフォルダー レベルで共有する必要があります。 ゲストは、個別に共有されているファイル (Office アプリなど) を同期できません。
  • B2B 同期は、ゲスト アカウントがorganizationで作成され、受信者がMicrosoft Entra アカウントを持っている場合にのみ機能します。 ユーザーが [すべてのユーザー] リンク ("匿名アクセス" リンク) を作成して共有したり、Microsoft アカウントやその他の個人用アカウントを持つユーザーと共有したりしても機能しません。

SharePoint サイトにゲストを追加する

Microsoft 365 の管理者は、Microsoft Entra 管理センターでゲストを個別に作成し、SharePoint チーム サイトに個別に追加するか、共有するサイトへのアクセス許可が既にあるセキュリティ グループに追加することで、organization外のユーザーと共有できます。 ([サイトの共有] ボタンを使用する代わりに) 高度なアクセス許可ページを使用してアクセス許可を付与する場合は、サイトにアクセス許可を付与したことをゲストに通知する必要があります。 招待メールは届きません。

重要

[高度なアクセス許可] ページを使用する場合は、ドキュメント ライブラリまたはフォルダー レベルではなく、サイト レベルでアクセス許可を付与することをお勧めします。

PowerShell を使用してゲスト アカウントを一括作成し、SharePoint グループに追加する

多くのゲスト アカウントを作成してアクセス許可を付与する必要がある場合は、次の PowerShell スクリプトを使用してゲスト アカウントを作成し、サイトへのアクセス許可を付与できます。 スクリプトは、CSV (コンマ区切り値) ファイルを入力として受け取り、ユーザーの表示名と電子メール アドレスの一覧を含みます。 名前とメール アドレスごとにゲスト アカウントが作成され、そのアカウントがセキュリティ グループに追加され、アクセス許可が付与されます。 スクリプトは、後続の実行時に結果の出力 CSV をスクリプトへの入力としてフィードできるように設計されています。 これにより、CSV ファイルにユーザーを追加したり、失敗したアカウントの作成を再試行したりできます。

注:

Azure AD Powershell は、2024 年 3 月 30 日に非推奨となる予定です。 詳細については、 非推奨の更新プログラムに関するページを参照してください。

Microsoft Entra ID (旧称 Azure AD) と対話するには、Microsoft Graph PowerShell に移行することをお勧めします。 Microsoft Graph PowerShell では、すべての Microsoft Graph API へのアクセスが許可され、PowerShell 7 で利用できます。 一般的な移行クエリに対する回答については、「 移行に関する FAQ」を参照してください。

ユーザーがMicrosoft Entra グループに追加されると、ユーザーをグループに招待する電子メールを受信する必要があります。 スクリプトを実行したら、アクセス許可を付与した SharePoint サイトへの直接リンクをユーザーに電子メールで送信する必要があります。 リンクをクリックすると、以下の UI が表示され、招待の条件に同意します。 受け入れると、共有したサイトに連れて行かれます。 その時点で、[同期] ボタンをクリックして、サイト ファイルの PC または 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 同期機能を使用すると、organizationのユーザーは別のorganizationから共有されているコンテンツを同期できます。 organizationのユーザーが B2B Sync を使用できないようにする場合は、ユーザーの Windows PC または Mac にポリシー値を設定して外部同期をブロックできます。

これらのアクションを実行する必要があるのは、organizationのユーザーが B2B 同期機能を使用できないようにする場合のみです (他の組織から共有されているライブラリやフォルダーの同期を防止するため)。

新しい BlockExternalSync 設定は、OneDrive 同期製品ビルド 19.086.* 以降の一部としてインストールされた adm\OneDrive.admx ファイルと OneDrive.adml ファイルで説明されています。 ADM を使用して同期アプリ ポリシーを管理する場合は、新しい設定を確認するために、通常どおり新しいファイルをインポートします。

他の管理システムを使用してユーザーの Windows PC にポリシーを展開する場合は、次のコマンドと同等のコマンドを使用して 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