複数地域テナントの構成を検出する

SharePoint のテナントを扱う場合は、テナントが複数地域テナントであるかどうかを判定し、既定の地理的位置とサテライト位置を特定することができる必要があります。

次の図に示す複数地域テナントでは、

  • 既定の地理的位置は北米、
  • サテライト位置のひとつはヨーロッパ、
  • サテライト位置のひとつはアジアになっています。

既定の地理的位置 (北アメリカ)、サテライト位置 (ヨーロッパ、アジア) に言語ごとのテナントの管理者、ルート、個人用サイトの URL を合わせて示した世界地図

複数地域テナントの構成に関する情報

シナリオによっては、複数地域テナント サイトにアクセスするために次の API を単独または組み合わせて使用できます。

  • SharePoint CSOM API: 複数地域非対応。 シナリオによっては、正しい地理的位置をターゲットとする必要が生じることがあります (たとえば、ユーザープロファイルへのアクセスやテナントの API を操作する場合など)。

  • Microsoft Graph API: 複数地域対応。 複数地域テナント サイトへのアクセスには Microsoft Graph を使用することをお勧めします。

  • SharePoint REST API: 通常、この API はサイト URL のコンテキストで使用します。そのため、テナントが複数地域対応であるかは問題となりません。 一部の REST API のシナリオ (検索やユーザー プロファイル) では、地理的位置ごとの呼び出しを行う必要が生じることがあります。

CSOM API を使用する

テナントの地理的位置を取得するには、以下のスニペットに示すように Tenant クラスと GetTenantInstances メソッドを使用し、CSOM で行うことができます。

Tenant tenant = new Tenant(clientContext);
var tenantInstances = tenant.GetTenantInstances();
clientContext.Load(tenantInstances);
clientContext.ExecuteQuery();

Microsoft Graph API を使用する

Microsoft Graph を使用して、テナントの地理的位置情報を取得できます。 次の例では、地理的位置ごとのオブジェクトのコレクションを返します。

注:

次のコード例では、siteCollection オブジェクトの dataLocationCode 属性を使用します。 発行の時点でこのプロパティは、Microsoft Graph のベータ エンドポイントでのみ使用できます。

GET https://graph.microsoft.com/beta/sites?filter=siteCollection/root%20ne%20null&select=webUrl,siteCollection

複数地域テナントの場合の応答の例

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#sites",
    "value": [
        {
            "webUrl": "https://contoso.sharepoint.com/",
            "siteCollection": {
                "dataLocationCode":"NAM",
                "hostname": "contoso.sharepoint.com"
            }
        },
        {
            "webUrl": "https://contosoeur.sharepoint.com/",
            "siteCollection": {
                "dataLocationCode":"EUR",
                "hostname": "contosoeur.sharepoint.com"
            }
        },
        {
            "webUrl": "https://contosoapc.sharepoint.com/",
            "siteCollection": {
                "dataLocationCode":"APC",
                "hostname": "contosoapc.sharepoint.com"
            }
        }
    ]
}

詳細については、MultiGeo.TenantInformationCollection の例を参照してください。

注:

アクセス許可とアプリケーションを構成する方法の詳細については、「複数地域機能のサンプル アプリケーションをセットアップする」を参照してください。

テナントが複数地域テナントであるかどうか確認する

Microsoft Graph を使用すると、テナントが複数地域テナントであるかどうかを確認できます。Microsoft Graph を介して複数地域テナントに要求を送ると複数のアイテムが入ったコレクションが返されるので、それを判断できます。

次の例は、単一地域テナントへの Microsoft Graph 呼び出しの結果を示しています。

GET https://graph.microsoft.com/beta/sites?filter=siteCollection/root%20ne%20null&select=webUrl,siteCollection

単一地域テナントの場合の応答の例

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#sites",
    "value": [
        {
            "webUrl": "https://singlegeotest.sharepoint.com/",
            "siteCollection": {
                "dataLocationCode":"",
                "hostname": "singlegeotest.sharepoint.com"
            }
        }
    ]
}

関連項目