Configurer un exemple d’application multigéographique

Lorsque vous développez pour un client Multi-Géo, il est important de comprendre le modèle de sécurité. Heureusement, le modèle utilisé pour un client multigéogé est identique au modèle utilisé pour un client standard.

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

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

Comme expliqué dans l’article Utiliser les profils utilisateur dans un client Multi-Géo,le modèle préféré à utiliser pour lire et mettre à jour les propriétés de profil utilisateur est l’API Graph client. Cette section explique les autorisations que vous devez accorder à votre application pour réaliser les mises à jour et les lectures de profil utilisateur à l’échelle du client.

Il existe une longue liste d’autorisations possibles que vous pouvez accorder à une application définie dans Azure AD, mais pour manipuler les profils, vous pouvez limiter les autorisations aux autorisations suivantes.

Autorisation Type Description Consentement de l’administrateur nécessaire
User.ReadWrite.All Autorisation de l’application Permet à l’application de lire et d’écrire l’ensemble complet des propriétés de profil, l’appartenance à un groupe, les rapports et les responsables d’autres utilisateurs de votre organisation, sans utilisateur connecté.

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

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

Cette autorisation est nécessaire uniquement si l’application va récupérer 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 Multi-Géo 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 autorise la connexion à Microsoft Graph à l’aide de comptes Microsoft, Azure AD et Azure AD B2C. Les instructions suivantes vous aideront à configurer votre application pour le point de terminaison v2, mais vous pouvez également utiliser l’approche « plus ancienne » basée sur les points de terminaison v1.

Inscription de votre application

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

  2. Une fois que vous êtes ouvert, choisissez Ajouter une application, puis ajoutez une nouvelle application convergée.

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

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

Inscrire votre application dans Azure AD

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

  2. Choisissez Ajouter une plateforme, puis choisissez Application native comme cible de plateforme, car l’application ne comprend pas de page d’accueil.

Configurer l’application dans Azure AD 1re partie

  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. Cochez la case Kit de développement logiciel (SDK) Live prise en charge.

Configurer l’application dans Azure AD 2e partie

  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 dans 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 l’autorisation d’accès à 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 et connectez-vous en tant qu’administrateur client et consentez à 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

Lire et mettre à jour les profils pour 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 ne le faites que pour les propriétés créées personnalisées, car les propriétés pré-personnalisées sont mieux gérées via l’API Microsoft Graph. Pour plus d’informations, voir l’article Travailler avec les profils utilisateur dans un client Multi-Géo.

D’un 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 objet à l’aide de l’URL de l’administrateur client SharePoint informations d’identification de ClientContext l’administrateur en ligne. Étant donné qu’il n’existe qu’une seule instance Azure AD qui détient des utilisateurs, cela signifie 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éé un contrôle total pour l’étendue http://sharepoint/social/tenant d’autorisation.

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 de service de Microsoft Graph.

  1. Go to a site in your tenant (for example, https://contoso.sharepoint.com ), and then call the appregnew.aspx page (for example, https://contoso.sharepoint.com/_layouts/15/appregnew.aspx ).

  2. Sur cette page, sélectionnez le bouton Générer pour générer un ID client et une question secrète client.

  3. Remplissez les champs restants comme suit :

  • TitreMulti-Geo demo
  • Domaine de l’applicationwww.localhost.com
  • https://www.localhost.com.

Inscrire le principal d’application ACS

Notes

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

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.

Accorder des autorisations au principal créé

L’étape suivante consiste à accorder des autorisations au principal nouvellement créé. Étant donné que nous accordons des autorisations d’étendue client, cette autorisation peut uniquement être effectuée 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 d’application

  1. Pour accorder des autorisations, vous devez fournir le XML d’autorisation qui décrit les autorisations nécessaires. Étant donné que le scanneur d’expérience utilisateur doit pouvoir accéder à tous les sites et utilise la recherche avec application uniquement, il requiert 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 d’autorisation s’est présentée. Choisissez Trust It pour accorder les autorisations.

Consentement du principal d’application

Utilisez les bibliothèques dans votre code :

Une fois le principal créé et accepté, vous pouvez utiliser l’ID et la secret du principal pour demander l’accès. La TokenHelper.cs classe prend l’ID et la secret du 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
}

Un exemple app.config se ressemble :

<?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>

Notes

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

Découvrir la configuration multigé géographique

La seule API prise en charge que vous pouvez utiliser pour découvrir les emplacements géographiques dans un client Multi-Géo est l’API Graph client. Cette section explique les autorisations que vous devez accorder à votre application pour découvrir des informations multigé géographiques.

Il existe une longue liste d’autorisations possibles que vous pouvez accorder à une application définie dans Azure AD, mais pour lire les informations de configuration du client multigéogé, vous pouvez limiter les autorisations aux autorisations suivantes.

Autorisation Type Description Consentement de l’administrateur nécessaire
Sites.ReadWrite.All Autorisation de l’application Permet à l’application de lire les documents et les éléments de liste dans toutes les collections de sites sans utilisateur connecté. Oui

Utilisez les étapes de création d’application Azure AD comme décrit dans la section Lire/mettre à jour les profils pour tous les utilisateurs.

Créer et supprimer des collections de sites et définir des propriétés de collection de sites client

Utilisation de l’API Microsoft Graph

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

Autorisation Type Description Consentement de l’administrateur nécessaire
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 Microsoft Graph multigéogéo utilisent la bibliothèque d’authentification Microsoft (MSAL) pour se connecter à l’Graph Microsoft sur le point de terminaison v2. Par rapport à la ADAL, qui se connecte à l’aide du point de terminaison v1, MSAL autorise la connexion à Microsoft Graph à l’aide de comptes Microsoft, Azure AD et Azure AD B2C.

Utilisez les étapes de création d’application Azure AD comme décrit 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 pour l’utilisation des informations d’identification de l’utilisateur sont identiques. Pour utiliser un principal d’application uniquement, les instructions sont les mêmes, mais vous devez accorder différentes autorisations (client et contrôle total).

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

Voir aussi