共有ファイルとフォルダーの移行

実装

Migration PRIME API に記載されているように、 アイテム参照を使用して共有メタデータを適用します。 Shared With 列を使用する以前の方法は、それ以上使用しないでください。

ユーザーと共有されるアイテムの場合は、その ListItem ブロック内に SharedWithEvents ブロックを追加します。 SharedWithEvents ブロックは、共有を行ったユーザー (SharingInitatiorId と SharedById) や共有時刻 (SharedTime) など、アイテムが共有されたときの出現を表します。

その発生時にアイテムが共有されたユーザーごとに SharedWithMember ブロックを追加します。 すべてのユーザー ID は、UserGroup.xml内の有効なエントリである必要があります。

<ListItem ParentWebId="79f949a2-f38b-40e3-91ef-ffdbe6214bef"
          Id="a4bbc3c7-7ef1-47ef-8451-ea8e1a69cb88"
          TimeLastModified="2018-11-06T22:43:49"
          TimeCreated="2018-11-06T22:25:32">
  <SharedWithEvents>
    <SharedWithEvent SharedTime="2018-10-29T04:06:09.1385321Z"
                     SharingInitiatorId="2"
                     SharedById="2">
      <SharedWithMembers>
        <SharedWithMember SharedWithId="1"/>
        <SharedWithMember SharedWithId="2"/>
      </SharedWithMembers>
    </SharedWithEvent>
  </SharedWithEvents>
</ListItem>

ベスト プラクティス

基本事項

ソース内のユーザーと共有されたファイルまたはフォルダーごとに、受信者の OneDrive でそのアイテムのアイテム参照を作成します。 作成されたすべてのアイテム参照は、OneDrive のユーザーの [自分と共有] ビューに表示されます。 アイテムにアクセスするためのアクセス許可をユーザーに付与することを忘れないでください。

継承

共有には継承を正しく使用してください。 ファイルまたはフォルダーの項目参照を作成する場合は、親フォルダー (またはそれ以上) に対して作成された項目参照が既に存在するかどうかを確認します。 その場合は、子項目用に別のアイテムを作成しないでください。 これにより、ユーザーが [ 自分と共有] ビューに重複するアイテムが表示されるのを防ぎ、移行とサービスの負荷も軽減されます。

例: フォルダーが共有されていて、受信者がフォルダーのすべてのコンテンツにアクセスできる場合、アイテム参照は共有フォルダーに対 してのみ 作成する必要があります。その内容に対しては作成しないでください。 [ 自分と共有 ] の受信者に表示されるアイテムは、共有フォルダーのみです。

この同じガイダンスは、アクセス許可 (ACL) にも使用する必要があります。 必要なアクセス許可が親アイテムと異なる子項目にのみアクセス許可を適用します。 サイト上の一意の ACL が 5,000 個を超えないようにしてください。 作成した ACL の数を確認し、移行前にユーザーに警告すると便利な場合があります。 また、適用される一意の ACL のハード制限は 50,000 です。 5000 の制限に近い場合は、移行前にソースでアクセス許可モデルを簡略化することをお勧めします。

グループとの共有

ソース内の個人のグループと共有されているアイテムの場合、コンテンツは共有ライブラリ (チーム サイトなど) に移行され、それらのすべての個人にアクセス権が与えられます。

ソースから匿名共有リンクを移行しないでください。これは、ソースでそのリンクを使用したユーザーを把握できないため、役に立ちません。 ユーザーは、匿名リンクがまだ必要かどうかを評価し、その場合は宛先に新しいリンクを作成する必要があります。

外部ユーザーとの共有

移行を開始する前に、すべてのユーザーが顧客テナントにプロビジョニングされていることを確認する必要があります。 テナントの外部 (つまり、別の組織のユーザー) の場合は、Azure Active Directory で B2B コラボレーション ユーザーとしてプロビジョニングします。 これは、次の手順に従ってAzure portalで行います。

外部ユーザーがプロビジョニングされたら、内部ユーザーと同じ方法で、移行中にファイルとフォルダーを共有します。

アクセス許可と共有

SharePoint のユーザーごとの共有モデルは、個人と共有されていると見なされるオブジェクトのアクセス許可と "Shared With" データ参照の両方に依存します。 ユーザーがコンテンツにアクセスできるが、"Shared With" 参照がない場合、OneDrive For Business サイト内の [自分と共有] ビューにコンテンツが表示されません。

ただし、"Shared With" 参照で示されているが、コンテンツへのアクセス権がない場合、OneDrive For Business サイト内の Shared With Me ビューにコンテンツが表示されないか、そこからリンクを使用しようとすると、アクセスが拒否されます。 共有情報を保持するには、アクセス許可と "Shared With" 参照の両方を正しく設定する必要があります。 アクセス許可は、スコープ (一意の ACL) を使用して、コンテンツ階層のさまざまなレベルで設定できます。これは、そのオブジェクトとその子に適用されます。それ自体が一意のアクセス許可を持っていない限りです。

PRIME を使用すると、インポートされた File/Folder オブジェクトを参照する SPFile/SPFolder オブジェクトとドキュメント ライブラリの SPListItem オブジェクトを使用して、コンテンツを移行できます。 ListItem のインポート中に、"Shared With" 参照データをインポートし、必要に応じてコンテンツ階層のスコープ (ACL) とロールの割り当て (ACE) を設定することで、同じ移行パッケージ内でセキュリティを後で適用できます。

アクセス許可の移行は、特定のスコープを表す RoleAssignment エントリと、特定のプリンシパルへの特定のロールの割り当てを表す割り当てエントリを持つ DeploymentRoleAssignments オブジェクトを使用して実行されます。 このコードは最終的にコンテンツの継承を分割し、指定されたロールの割り当てを適用するため、SharePoint でアクセス許可を設定するための他のオブジェクト モデル アプローチを使用する場合と同じ制限があります。

注:

中国の 21Vianet が運用する Office 365 のユーザーは 移行 APIを利用できません。