Considérations en matière d’autorisations pour les clients hébergés dans un environnement gouvernemental en Allemagne, en Chine ou aux États-Unis

Lorsque votre client Office 365 est hébergé dans un environnement spécifique comme les environnements de l’Allemagne, de la Chine ou du gouvernement américain, vous devez prendre cela en compte lorsque vous développez par rapport à votre client.

S’applique à : Office 365 hébergés dans les environnements de l’Allemagne, de la Chine ou du gouvernement américain

Important

Azure Access Control (ACS), a service of Azure Active Directory (Azure AD), will be retired on November 7, 2018. This retirement does not impact the SharePoint Add-in model, which uses the https://accounts.accesscontrol.windows.net hostname (which is not impacted by this retirement). For more information, see Impact of Azure Access Control retirement for SharePoint Add-ins.

Introduction

Microsoft a des Office 365 déploiements spécifiques en Allemagne, en Chine et pour le gouvernement des États-Unis afin de respecter les réglementations spécifiques à ces domaines. Les liens ci-dessous fournissent plus de contexte :

Si vous êtes développeur et que vous ciblez des applications pour SharePoint Online hébergé dans ces environnements, vous devez tenir compte du fait que ces environnements ont leurs propres points de terminaison d’authentification Azure AD dédiés que vous devez utiliser en tant que développeur. Les chapitres ci-dessous expliquent comment utiliser ces points de terminaison dédiés pour les options de personnalisation SharePoint Online.

Utilisation d’Azure AD pour autoriser

Points de terminaison Azure AD

Lorsque votre application Azure AD doit l’autoriser, elle doit utiliser le point de terminaison correct. Le tableau ci-dessous décrit les points de terminaison à utiliser en fonction de l’endroit où votre application Azure AD a été définie :

Environnement Point de terminaison
Production https://login.windows.net
Allemagne https://login.microsoftonline.de
Chine https://login.chinacloudapi.cn
Gouvernement américain https://login.microsoftonline.us

Utilisation de PnP pour autoriser l’utilisation d’Azure AD

PnP AuthenticationManager offre un moyen simple d’obtenir un SharePoint ClientContext lorsque vous utilisez une application Azure AD. Les méthodes impactées ont été étendues avec une AzureEnvironment enum facultative

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

L’extrait de code ci-dessous affiche une autorisation d’application uniquement, notez le dernier paramètre de la GetAzureADAppOnlyAuthenticatedContext méthode :

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);

Un autre extrait de code montre une connexion utilisateur interactive à l’aide de la GetAzureADNativeApplicationAuthenticatedContext méthode :

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);

Utilisation d’Azure ACS pour autoriser votre SharePoint de données

Lorsque vous créez des SharePoint, ils utilisent généralement l’autorisation à faible niveau de confiance, qui dépend d’Azure ACS comme dérivé de la création de SharePoint pour lesquelsl’autorisation à faible niveau de confiance est utilisée.

Points de terminaison Azure ACS

Environnement Préfixe de point de terminaison Point de terminaison
Production comptes accesscontrol.windows.net
Allemagne login microsoftonline.de
Chine comptes accesscontrol.chinacloudapi.cn
Gouvernement américain comptes accesscontrol.windows.net

À l’aide de ce modèle, l’URL du point de terminaison ACS à utiliser est mise en forme comme https:// + préfixe de point de terminaison + / + point de terminaison. L’URL de production sera donc celle de https://accounts.accesscontrol.windows.net l’Allemagne. https://login.microsoftonline.de

Mise à jour de tokenhelper.cs dans vos applications

Lorsque vous souhaitez utiliser SharePoint’autorisation de votre SharePoint à l’aide d’Azure ACS, vous utilisez tokenhelper.cs (ou tokenhelper.vb ). La classe tokenhelper par défaut aura des références codées en dur aux points de terminaison et méthodes Azure ACS pour acquérir le point de terminaison ACS, comme illustré ci-dessous :

...

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

...

Mises à jour tokenhelper.cs pour l’Allemagne

Mettez à jour les variables GlobalEndPointPrefix statiques et AcsHostUrl les valeurs Azure ACS en Allemagne.

...

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

...

Mises à jour tokenhelper.cs pour la Chine

Mettez à jour les variables GlobalEndPointPrefix statiques AcsHostUrl et les valeurs AcS d’Azure en Chine :

...

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

...

Utilisation de PnP pour autoriser votre add-in à l’aide d’Azure ACS

PnP AuthenticationManager offre un moyen simple d’obtenir un objet ClientContext SharePoint lorsque vous utilisez Azure ACS pour autoriser. Les méthodes impactées ont été étendues avec une AzureEnvironment enum facultative

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

L’extrait de code ci-dessous affiche une autorisation d’application uniquement, notez le dernier paramètre de la GetAppOnlyAuthenticatedContext méthode :

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);

Voir aussi