ドイツ、中国、または米国政府機関の環境でホストされているテナントの承認考慮事項Authorization considerations for tenants hosted in the Germany, China or US Government environments

これは、Office 365 テナントがドイツ、中国、または米国政府機関の環境などの特定の環境でホストされている場合、テナントに対して開発を行うときに考慮する必要があります。When your Office 365 tenant is hosted in an specific environment like the Germany, China or US Government environments then you'll need to take this in account when you're developing against your tenant.

適用対象: ドイツ、中国、または米国政府機関の環境でホストされている Office 365Applies to: Office 365 hosted in the Germany, China or US Government environments

重要

Azure Active Directory (Azure AD) のサービスである Azure アクセス制御 (ACS) は、2018 年 11 月 7 日に廃止されます。Azure Access Control (ACS), a service of Azure Active Directory (Azure AD), will be retired on November 7, 2018. SharePoint アドイン モデルでは、この廃止の影響を受けない https://accounts.accesscontrol.windows.net ホスト名を使用しているため、この廃止による影響はありません。This retirement does not impact SharePoint add-in model which is using https://accounts.accesscontrol.windows.net hostname, which is not impacted by this retirement. 詳細については、「SharePoint アドインに対する Azure アクセス制御の終了の影響」を参照してください。See more details on this from Impact of Azure Access Control retirement for SharePoint add-ins.

はじめにIntroduction

Microsoft では、ドイツ、中国、および米国政府機関において特定の Office 365 を展開して、これらの分野特有の規制を満たしています。Microsoft has specific Office 365 deployments in Germany, China and for US Government to fulfill the specific regulations for those areas. 以下のリンクから詳細な内容を参照できます。Below links provide more context:

これらの環境でホストされている SharePoint Online のアプリケーションをターゲットとしている開発者である場合、これらの環境には開発者として使用する必要がある専用の Azure AD 認証エンドポイントがあることを考慮する必要があります。If you are a developer targeting applications for SharePoint Online hosted in these environments then you'll need to take in account that these environments have their own dedicated Azure AD authentication endpoints that you as developer need to use. 以下の章では、標準的な SharePoint Online のカスタマイズ オプションに対して、これらの専用エンドポイントを使用する方法について説明します。Below chapters explain how do use these dedicated endpoints for the typical SharePoint Online customization options.

Azure AD を使用して承認するUsing Azure AD to authorize

Azure AD エンドポイントAzure AD endpoints

Azure AD アプリケーションが認証する必要がある場合は、正しいエンドポイントを使用する必要があります。When your Azure AD application needs to authorize it needs to use the correct endpoint. 以下の表は、Azure AD アプリケーションが定義されている場所に応じて使用するエンドポイントを示しています。Below table describes the endpoints to use depending on where your Azure AD application has been defined:

環境Environment エンドポイントEndpoint
運用Production https://login.windows.net
ドイツGermany https://login.microsoftonline.de
中国China https://login.chinacloudapi.cn
米国政府機関US Government https://login-us.microsoftonline.com

Azure AD による承認に PnP を使用するUsing PnP to authorize using Azure AD

PnP AuthenticationManager には、Azure AD アプリケーションを使用している場合に SharePoint ClientContext オブジェクトを簡単に取得する方法が用意されています。The PnP AuthenticationManager offers an easy way to obtain an SharePoint ClientContext object when you're using an Azure AD application. 影響を受けるメソッドは、オプションの AzureEnvironment 列挙型で拡張されています。The impacted methods have been extended with an optional AzureEnvironment enum

/// <summary>
/// Enum to identify the supported Office 365 hosting environments
/// </summary>
public enum AzureEnvironment
{
    Production=0,
    PPE=1,
    China=2,
    Germany=3,
    USGovernment=4
}

以下のスニペットは、アプリ専用の承認を示しています。GetAzureADAppOnlyAuthenticatedContext メソッドの最後のパラメーターをご確認ください。Below snippet shows an app-only authorization, notice the last parameter in the GetAzureADAppOnlyAuthenticatedContext method:

string siteUrl = "https://contoso.sharepoint.de/sites/test";
string aadAppId = "079d8797-cebc-4cda-a3e0-xxxx"; 
string pfxPassword = "my password";
ClientContext cc = new AuthenticationManager().GetAzureADAppOnlyAuthenticatedContext(siteUrl, 
            aadAppId, "contoso.onmicrosoft.de", @"C:\contoso.pfx", pfxPassword, AzureEnvironment.Germany);

もう 1 つのスニペットは、GetAzureADNativeApplicationAuthenticatedContext メソッドを使用した対話型ユーザー ログインを示しています。Another snippet is showing an interactive user login using the GetAzureADNativeApplicationAuthenticatedContext method:

string siteUrl = "https://contoso.sharepoint.de/sites/test";
string aadAppId = "ff76a9f4-430b-4ee4-8602-xxxx"; 
ClientContext cc = new AuthenticationManager().GetAzureADNativeApplicationAuthenticatedContext(siteUrl, 
            aadAppId, "https://contoso.com/test", environment: AzureEnvironment.Germany);

Azure ACS を使用して SharePoint アドインを承認するUsing Azure ACS to authorize your SharePoint add-in

SharePoint アドイン を作成すると、「低信頼の承認を使用する SharePoint アドインの作成」で説明されているように、通常、それらは Azure ACS に依存する低信頼の承認になります。When you create SharePoint add-ins they'll typically low-trust authorization which depends on Azure ACS as descrived in Creating SharePoint Add-ins that use low-trust authorization.

Azure ACS エンドポイントAzure ACS endpoints

環境Environment エンドポイント プレフィックスEndpoint prefix エンドポイントEndpoint
運用Production アカウントaccounts accesscontrol.windows.netaccesscontrol.windows.net
ドイツGermany ログインlogin microsoftonline.demicrosoftonline.de
中国China アカウントaccounts accesscontrol.chinacloudapi.cnaccesscontrol.chinacloudapi.cn
米国政府機関US Government アカウントaccounts accesscontrol.windows.netaccesscontrol.windows.net

このモデルを使用すると、使用する ACS エンドポイント URL は https:// + エンドポイント プレフィックス + / + エンドポイントのように書式設定されます。Using this model the ACS endpoint url to use is formatted like https:// + endpoint prefix + / + endpoint. そのため、運用の URL は https://accounts.accesscontrol.windows.net、ドイツの場合は https://login.microsoftonline.de になります。So the URL for production will be https://accounts.accesscontrol.windows.net, the one for Germany will be https://login.microsoftonline.de.

アプリケーションでの tokenhelper.cs の更新Updating tokenhelper.cs in your applications

Azure ACS を使用して SharePoint アドイン承認を行う場合は、tokenhelper.cs (または tokenhelper.vb) を使用しています。When you want to do SharePoint add-in authorization using Azure ACS then you're using tokenhelper.cs (or tokenhelper.vb). 既定の tokenhelper クラスには、以下に示すように Azure ACS エンドポイントへのハードコードされた参照と ACS エンドポイントを取得するためのメソッドが含まれます。The default tokenhelper class will have hardcoded references to the Azure ACS endpoints and methods to acquire the ACS endpoint as shown below:

...

private static string GlobalEndPointPrefix = "accounts";
private static string AcsHostUrl = "accesscontrol.windows.net";

...

ドイツの場合の Tokenhelper.cs の更新Tokenhelper.cs updates for Germany

静的変数 GlobalEndPointPrefixAcsHostUrl を Germany Azure ACS の値に更新します。Update the static variables GlobalEndPointPrefix and AcsHostUrl to the Germany Azure ACS values.

...

private static string GlobalEndPointPrefix = "login";
private static string AcsHostUrl = "microsoftonline.de";

...

中国の場合の Tokenhelper.cs の更新Tokenhelper.cs updates for China

静的変数 GlobalEndPointPrefixAcsHostUrl を China Azure ACS の値に更新します。Update the static variables GlobalEndPointPrefix and AcsHostUrl to the China Azure ACS values:

...

private static string GlobalEndPointPrefix = "accounts";
private static string AcsHostUrl = "accesscontrol.chinacloudapi.cn";

...

Azure AD によるアドインの承認に PnP を使用するUsing PnP to authorize your add-in using Azure ACS

PnP AuthenticationManager には、承認に Azure ACS を使用している場合に SharePoint ClientContext オブジェクトを簡単に取得する方法が用意されています。The PnP AuthenticationManager offers an easy way to obtain an SharePoint ClientContext object when you're using Azure ACS to authorize. 影響を受けるメソッドは、オプションの AzureEnvironment 列挙型で拡張されています。The impacted methods have been extended with an optional AzureEnvironment enum

/// <summary>
/// Enum to identify the supported Office 365 hosting environments
/// </summary>
public enum AzureEnvironment
{
    Production=0,
    PPE=1,
    China=2,
    Germany=3,
    USGovernment=4
}

以下のスニペットは、アプリ専用の承認を示しています。GetAppOnlyAuthenticatedContext メソッドの最後のパラメーターをご確認ください。Below snippet shows an app-only authorization, notice the last parameter in the GetAppOnlyAuthenticatedContext method:

string siteUrl = "https://contoso.sharepoint.de/sites/test";
string acsAppId = "955c10f2-7072-47f8-8bc1-xxxxx"; 
string acsAppSecret = "jgTolmGXU9DW8hUKgletoxxxxx"; 
ClientContext cc = new AuthenticationManager().GetAppOnlyAuthenticatedContext(siteUrl, acsAppId, 
                acsAppSecret, AzureEnvironment.Germany);

関連項目See also