Configurer un exemple d’application multigéographique

Les parties de cet article portant sur les compléments SharePoint sont des conseils hérités. Le retrait ci-dessous ne met pas hors service les autres API ou plateformes décrites ici.

Importante

Les compléments SharePoint ont atteint leur fin de vie dans SharePoint Online le 2 avril 2026. Les compléments hébergés par SharePoint et par le fournisseur sont mis hors service et ne fonctionnent plus dans SharePoint Online, y compris les clouds publics. Les instructions de développement, de déploiement et d’utilisation des compléments sont conservées à titre de référence historique et pour les scénarios SharePoint Server applicables, et non pour les nouvelles solutions SharePoint Online.

Les compléments SharePoint Server déployés via un catalogue d’applications local ne sont pas mis hors service par cette modification. L’acquisition de compléments SharePoint sur la place de marché publique a pris fin le 2 avril 2026 pour SharePoint Server.

Ce retrait ne met pas hors service les API REST SHAREPoint, CSOM, JSOM ou SharePoint Framework (SPFx). Pour SharePoint Online, utilisez SPFx pour les extensions d’interface utilisateur et Microsoft Entra ID pour l’authentification auprès des applications externes. Consultez l’annonce de mise hors service et les conseils sur la migration des compléments.

Lors du développement pour un client multigéographique, il est important de comprendre le modèle de sécurité. Heureusement, le modèle utilisé pour un client multigéographique est le même que celui utilisé pour un client standard.

Cet article vous montre comment configurer les exemples d’application suivants :

Lire et mettre à jour les profils de tous les utilisateurs à l’aide de l’API Graph

Comme expliqué dans l’article Utiliser des profils utilisateur dans un client multigéographique, le modèle privilégié à utiliser pour lire et mettre à jour les propriétés de profil utilisateur est l’API Graph. Cette section décrit les autorisations que vous devez accorder à votre application pour pouvoir lire et mettre à jour le profil utilisateur à l’échelle du locataire.

La liste des autorisations possibles que vous pouvez accorder à une application définie dans Azure AD est longue, mais pour la manipulation de profils, vous pouvez limiter les autorisations aux éléments suivants.

Autorisation Type Description Administration consentement requis
User.ReadWrite.All Autorisation d’application Permet à l’application de lire et d’écrire l’ensemble des propriétés de profil, des appartenances aux groupes, des rapports et des responsables d’autres utilisateurs de votre organisation, sans utilisateur connecté.

Permet également à l’application de créer et de supprimer des utilisateurs non administrateurs.

Ne permet pas la réinitialisation des mots de passe des utilisateurs.
Oui
Sites.ReadWrite.All Autorisation d’application Permet à l’application de lire/écrire des documents et des éléments de liste dans toutes les collections de sites sans utilisateur connecté.

Cette autorisation est nécessaire uniquement si l’application récupère l’emplacement de site personnel de l’utilisateur (par exemple). https://graph.microsoft.com/v1.0/users/UserB@contoso.onmicrosoft.com?$select=mySite
Oui

Les exemples multigéographiques basés sur Microsoft Graph utilisent la bibliothèque d’authentification Microsoft (MSAL) pour se connecter à Microsoft Graph sur le point de terminaison v2. Par rapport à ADAL, qui se connecte à l’aide du point de terminaison v1, MSAL permet la connexion au Microsoft Graph à l’aide de comptes Microsoft, d’Azure AD et d’Azure AD B2C. Les instructions suivantes vous aideront à configurer votre application pour le point de terminaison v2, mais vous pouvez également utiliser l’approche « ancienne » basée sur les points de terminaison v1.

Inscription de votre application

  1. Pour utiliser les autorisations d’application sur Microsoft Graph, enregistrez votre application sur https://apps.dev.microsoft.com.

  2. Une fois connecté, choisissez Ajouter une application, puis Ajouter une nouvelle application convergée.

  3. Donnez un nom à votre application, puis sélectionnez Créer une application.

  4. L’écran de configuration de l’application s’affiche.

Inscrire une application dans Azure AD

  1. Générez un nouveau mot de passe et notez-le avec l’ID d’application.

  2. Choisissez Ajouter une plateforme, puis choisissez Application native comme cible de plateforme, car l’application n’a pas de page de destination.

Configurer une application dans Azure AD partie 1

  1. Ajoutez les autorisations d’application nécessaires. Dans cet exemple d’application, nous avons ajouté les autorisations d’application Sites.ReadWrite.All et User.ReadWrite.All.

  2. Désactivez la case Kit de développement logiciel (SDK) Live case activée de support.

Configurer une application dans Azure AD partie 2

  1. Enregistrez vos modifications.
  1. Dans cet exemple, les autorisations d’application User.ReadWrite.All et Sites.ReadWrite.All nécessitent le consentement de l’administrateur d’un client avant de pouvoir être utilisées. Créez une URL de consentement comme suit :
https://login.microsoftonline.com/<tenant>/adminconsent?client_id=<clientid>&state=<something>
  1. Utiliser l’ID client de l’application inscrite et donner votre consentement à l’application à partir de mon client contoso.onmicrosoft.com ; l’URL ressemble à ceci :
https://login.microsoftonline.com/contoso.onmicrosoft.com/adminconsent?client_id=6e4433ca-7011-4a11-85b6-1195b0114fea&state=12345
  1. Accédez à l’URL créée, connectez-vous en tant qu’administrateur client et acceptez l’application. Vous pouvez voir que l’écran de consentement affiche le nom de votre application ainsi que les étendues d’autorisation que vous avez configurées.

Consentement du client pour l’application Azure AD

Lisez et mettez à jour les profils de tous les utilisateurs à l’aide de l’API de profil utilisateur CSOM

Lorsque vous utilisez l’API CSOM pour manipuler les propriétés de profil, vous effectuez cette opération uniquement pour les propriétés créées sur mesure, car les propriétés prêtes à l’emploi sont mieux gérées par l’API Graph Microsoft Graph. Pour plus d’informations, consultez l’article Travailler avec les profils utilisateur dans un locataire multigéographique.

Du point de vue de l’autorisation, il existe deux modes :

  • Utilisation des informations d’identification de l’utilisateur

    Cela nécessite la configuration d’un ClientContext objet à l’aide de l’URL de l’administrateur client et des informations d’identification d’administrateur SharePoint Online. Étant donné qu’il n’y a qu’une seule instance Azure AD détenant les utilisateurs, cela implique qu’un administrateur SharePoint Online est l’administrateur de tous les emplacements géographiques.

    string tenantAdminSiteForMyGeoLocation = "https://contoso-europe-admin.sharepoint.com";
    
    using (ClientContext cc = new ClientContext(tenantAdminSiteForMyGeoLocation))
    {
        SecureString securePassword = GetSecurePassword("password");
        cc.Credentials = new SharePointOnlineCredentials("admin@contoso.onmicrosoft.com", securePassword);
    
        // user profile logic
    }
    
    static SecureString GetSecurePassword(string Password)
    {
        SecureString sPassword = new SecureString();
        foreach (char c in Password.ToCharArray()) sPassword.AppendChar(c);
        return sPassword;
    }
    
  • Utilisation d’un principal d’application uniquement

    Lorsque vous utilisez l’application uniquement, vous devez accorder au principal d’application créé le contrôle total pour l’étendue de l’autorisation http://sharepoint/social/tenant .

Les instructions suivantes vous montrent comment utiliser appregnew.aspx et appinv.aspx pour inscrire un principal d’application et y consentir.

Créer le principal

  1. Accédez à un site de votre client (par exemple, https://contoso.sharepoint.com), puis appelez la page appregnew.aspx (par exemple, https://contoso.sharepoint.com/_layouts/15/appregnew.aspx).

  2. Sur cette page, cliquez sur le bouton Générer pour générer un ID client et une clé secrète client.

  3. Renseignez les champs restants comme suit :

  • Titre : Multi-Geo demo
  • Domaine de l’application : www.localhost.com
  • URI de redirection : https://www.localhost.com

Inscrire le principal de l’application ACS

Remarque

Stockez les informations récupérées (ID client et secret client), car vous en aurez besoin à l’étape suivante.

Importante

L’utilisation d’Azure ACS (Access Control Services) pour SharePoint Online a été mise hors service le 27 novembre 2023 et cessera de fonctionner à partir du 2 avril 2026, consultez l’annonce de mise hors service complète pour en savoir plus. L’utilisation d’Azure ACS en dehors du contexte de SharePoint a déjà été mise hors service le 7 novembre 2018 et est maintenant en fin de vie.

La retraite signifie que la fonctionnalité ne recevra pas de nouveaux investissements, mais qu’elle est toujours prise en charge. La fin de vie signifie que la fonctionnalité sera abandonnée et n’est plus disponible pour utilisation.

Accorder des autorisations au donneur d’ordre créé

L’étape suivante consiste à accorder des autorisations au principal nouvellement créé. Étant donné que nous accordons des autorisations de portée client, cet octroi ne peut être effectué que via la page appinv.aspx sur le site d’administration des locataires.

  1. Vous pouvez accéder à ce site via https://contoso-admin.sharepoint.com/_layouts/15/appinv.aspx.

  2. Une fois la page chargée, ajoutez votre ID client, puis recherchez le principal créé.

Accorder des autorisations au principal de l’application

  1. Pour accorder des autorisations, vous devez fournir le fichier XML d’autorisation qui décrit les autorisations nécessaires. Étant donné que le scanner d’expérience utilisateur doit être en mesure d’accéder à tous les sites et utilise la recherche avec l’application uniquement, il nécessite les autorisations suivantes :
<AppPermissionRequests AllowAppOnlyPolicy="true">
  <AppPermissionRequest Scope="http://sharepoint/social/tenant" Right="FullControl" />
</AppPermissionRequests>
  1. Lorsque vous choisissez Créer, une boîte de dialogue de consentement à l’autorisation s’affiche. Choisissez Approuver pour accorder les autorisations.

Donner son consentement au principal de l’application

Utiliser le principal dans votre code

Une fois le principal créé et approuvé, vous pouvez utiliser son ID et son secret pour demander l’accès. La TokenHelper.cs classe récupère l’ID et le secret dans le fichier de configuration de l’application.

string tenantAdminSiteForMyGeoLocation = "https://contoso-europe-admin.sharepoint.com";

//Get the realm for the URL.
string realm = TokenHelper.GetRealmFromTargetUrl(siteUri);

//Get the access token for the URL.  
string accessToken = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, siteUri.Authority, realm).AccessToken;

//Create a client context object based on the retrieved access token.
using (ClientContext cc = TokenHelper.GetClientContextWithAccessToken(tenantAdminSiteForMyGeoLocation, accessToken))
{
    // user profile logic
}

Voici un exemple de app.config qui ressemble à ceci :

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <!-- Use AppRegNew.aspx and AppInv.aspx to register client id with proper secret -->
    <add key="ClientId" value="[Your Client ID]" />
    <add key="ClientSecret" value="[Your Client Secret]" />
  </appSettings>
</configuration>

Remarque

Vous pouvez facilement insérer la TokenHelper.cs classe dans votre projet en ajoutant le package NuGet [AppForSharePointOnlineWebToolkit] (https://www.nuget.org/packages/AppForSharePointOnlineWebToolkit/) à votre solution.

Découvrir la configuration multigéographique

La seule API prise en charge que vous pouvez utiliser pour découvrir les emplacements géographiques dans un locataire multigéographique est la API Graph. Cette section décrit les autorisations que vous devez accorder à votre application pour découvrir des informations multigéographiques.

La liste des autorisations possibles que vous pouvez accorder à une application définie dans Azure AD est longue, mais pour lire les informations de configuration de locataire multigéographique, vous pouvez limiter les autorisations aux éléments suivants.

Autorisation Type Description Administration consentement requis
Sites.ReadWrite.All Autorisation d’application Permet à l’application de lire/écrire des documents et des éléments de liste dans toutes les collections de sites sans utilisateur connecté. Oui

Suivez la procédure de création d’application Azure AD décrite dans la section Lire/mettre à jour les profils pour tous les utilisateurs.

Créer et supprimer des collections de sites et définir les propriétés de collection de sites du locataire

Utilisation de l’API Microsoft Graph

L’article Sites multigéographiques fournit plus d’informations sur la création de sites de groupe (également appelés sites d’équipe « modernes ») à l’aide de l’API Graph de Microsoft Graph. Dans cette section, nous traitons uniquement des autorisations. Le tableau suivant répertorie les autorisations nécessaires.

Autorisation Type Description Administration consentement requis
Group.ReadWrite.All Autorisation d’application Permet à l’application de créer des groupes, de lire et de mettre à jour les appartenances à des groupes et de supprimer des groupes.

Toutes ces opérations peuvent être effectuées par l’application sans utilisateur connecté.

Notez que certaines API de groupe ne prennent pas en charge les autorisations d’accès d’application uniquement.
Oui

Les exemples multigéographiques basés sur Microsoft Graph utilisent la bibliothèque d’authentification Microsoft (MSAL) pour se connecter à Microsoft Graph sur le point de terminaison v2. Par rapport à ADAL, qui se connecte à l’aide du point de terminaison v1, MSAL permet la connexion à Microsoft Graph à l’aide de comptes Microsoft, d’Azure AD et d’Azure AD B2C.

Suivez la procédure de création d’application Azure AD décrite dans la section Lire/mettre à jour les profils pour tous les utilisateurs.

Utilisation de l’API client CSOM

L’utilisation de l’API client CSOM est très similaire aux instructions CSOM décrites précédemment ; En fait, les instructions relatives à l’utilisation des informations d’identification de l’utilisateur sont identiques. Pour l’utilisation d’un principal d’application uniquement, les instructions sont les mêmes, mais vous devez accorder des autorisations différentes (client et contrôle total).

<AppPermissionRequests AllowAppOnlyPolicy="true">
  <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
</AppPermissionRequests>

Voir aussi