Appeler Microsoft Graph à partir d’une application de fournisseur de solutions Microsoft Cloud

Note: Cette rubrique s’applique uniquement aux développeurs d’applications fournisseur de solutions Cloud (CSP) Microsoft. Le programme Fournisseur de solutions Cloud (CSP) Microsoft permet aux partenaires de Microsoft de revendre et de gérer les services Microsoft Online aux clients.

Cet article explique comment activer l’accès des applications aux données client gérées par le partenaire via Microsoft Graph à l’aide du flux d’octroi de code d’autorisation ou du flux d’informations d’identification du client de service à service.

Importante

L’appel de Microsoft Graph à partir d’une application CSP n’est pris en charge que pour les ressources d’annuaire (telles que l’utilisateur, le groupe, l’appareil organization) et les ressources Intune.

Qu’est-ce qu’une application gérée par des partenaires ?

Le programme CSP permet aux partenaires de Microsoft de revendre et de gérer microsoft Online Services (tels que Microsoft 365, Microsoft Azure et CRM Online) aux clients. La gestion des services client s’effectue via des privilèges de Administration délégués, qui permettent aux utilisateurs partenaires désignés (appelés agents) d’accéder aux environnements de leurs clients et de les configurer.

En outre, en tant que développeur partenaire, vous pouvez créer une application gérée par un partenaire pour gérer les services Microsoft de vos clients. Les applications gérées par un partenaire sont souvent appelées applications préconsentées , car tous vos clients sont automatiquement préconsentés pour vos applications gérées par le partenaire. Cela signifie que lorsqu’un utilisateur de l’un de vos locataires clients utilise l’une de vos applications gérées par le partenaire, l’utilisateur peut l’utiliser sans être invité à donner son consentement. Les applications gérées par les partenaires héritent également des privilèges de Administration délégués, afin que vos agents partenaires puissent également obtenir un accès privilégié à vos clients via votre application gérée par le partenaire.

Configuration d’une application gérée par des partenaires

Une application est considérée comme gérée par des partenaires lorsqu’elle reçoit des autorisations élevées pour accéder aux données de vos clients.

Remarque : Les applications gérées par des partenaires peuvent uniquement être configurées dans les clients partenaires et, pour gérer les ressources client, les applications gérées par des partenaires doivent être configurées comme des applications mutualisées.

Inscrire et configurer une application multilocataire

Les étapes initiales requises ici suivent la plupart des étapes utilisées pour inscrire et configurer une application multilocataire :

  1. Inscrivez votre application dans votre locataire partenaire à l’aide du centre d'administration Microsoft Entra. Pour fonctionner en tant qu’application gérée par un partenaire, une application doit être configurée en tant qu’application multilocataire. En outre, si votre application est déployée et vendue dans plusieurs régions géographiques, vous devez inscrire votre application dans chacune de ces régions, comme décrit ici.
  2. Configurez votre application multilocataire, à nouveau via le centre d'administration Microsoft Entra, avec les autorisations nécessaires pour utiliser une approche avec les privilèges minimum.

Préconsentez votre application pour tous vos clients

Enfin, accordez à votre application gérée par le partenaire les autorisations configurées pour tous vos clients. Pour ce faire, ajoutez le servicePrincipal qui représente l’application au groupe Adminagents dans votre locataire partenaire, à l’aide d’Azure AD PowerShell V2 ou De Microsoft Graph PowerShell. Suivez ces étapes pour rechercher le groupe Adminagents , le servicePrincipal et l’ajouter au groupe.

Remarque

Les modules PowerShell Azure AD et MSOnline seront obsolètes à compter du 30 mars 2024. Pour en savoir plus, consultez la mise à jour sur l’obsolescence. Après cette date, la prise en charge de ces modules sera limitée à l’assistance à la migration vers le kit de développement logiciel Microsoft Graph PowerShell et aux correctifs de sécurité. Les modules obsolètes continueront de fonctionner jusqu’au 30 mars 2025.

Nous vous recommandons de migrer vers Microsoft Graph PowerShell pour interagir avec Microsoft Entra ID (anciennement Azure AD). Pour toutes questions liées à la migration, consultez la FAQ sur la migration. Remarque : les versions 1.0.x de MSOnline pourront subir des perturbations après le 30 juin 2024.

  1. Ouvrez une session PowerShell et connectez-vous à votre client partenaire en saisissant vos informations d’identification d’administrateur dans la fenêtre de connexion.

    Connect-AzureAd
    
  2. Recherchez le groupe qui représente Adminagents.

    $group = Get-AzureADGroup -Filter "displayName eq 'Adminagents'"
    
  3. Recherchez le principal du service qui a le même identificateur que votre application.

    $sp = Get-AzureADServicePrincipal -Filter "appId eq '{yourAppsAppId}'"
    
  4. Et pour terminer, ajoutez le principal du service au groupe Adminagents.

    Add-AzureADGroupMember -ObjectId $group.ObjectId -RefObjectId $sp.ObjectId
    

Flux d’acquisition de jeton

Les flux d’acquisition de jetons pour les applications gérées par le partenaire ( flux d’octroi de code d’autorisation et flux d’informations d’identification du client de service à service ) sont les mêmes que les applications multilocataires standard.

En plus de l’accès préconsenté à tous vos locataires clients, les applications gérées par les partenaires ont une fonctionnalité supplémentaire. Il permet à vos agents d’utiliser votre application pour accéder aux données client de vos clients (à l’aide de privilèges d’administrateur délégués). Conceptuellement, il fonctionne comme suit :

  1. Votre agent se connecte à votre application avec ses informations d’identification utilisateur émises par votre client partenaire.
  2. Votre application demande un jeton d’accès pour le client géré par des partenaires prévu.
  3. L’application utilise le jeton d’accès pour appeler Microsoft Graph.

Il s’agit d’un flux d’octroi de code d’autorisation standard, sauf que vos agents doivent se connecter à l’aide de leur compte partenaire. Pour voir à quoi cela ressemblerait, imaginez que votre locataire partenaire est partner.com (qui est le locataire d’origine de vos agents) et que l’un de vos clients est customer.com :

  1. Acquérir un code d’autorisation : Votre application adresse une requête au point de /authorize terminaison et doit utiliser un locataire client, dans notre exemple customer.com, pour le locataire cible. Vos agents se connectent toujours avec leur username@partner.com compte.

    GET https://login.microsoftonline.com/customer.com/oauth2/authorize
    
  2. Obtention d’un jeton d’accès à l’aide du code d’autorisation : Votre application doit utiliser un client comme client cible, dans notre exemple customer.com, lorsqu’elle effectue sa requête au point de terminaison token :

    POST https://login.microsoftonline.com/customer.com/oauth2/token
    
  3. Maintenant que vous possédez un jeton d’accès, appelez Microsoft Graph, en insérant le jeton d’accès dans l’en-tête de l’autorisation HTTP :

    GET https://graph.microsoft.com/beta/users
    Authorization: Bearer <token>
    

Enregistrez votre application dans les régions prises en charge

L’engagement client CSP est actuellement limité à une seule région. Les applications gérées par les partenaires présentent la même limitation. Cela signifie que vous devez avoir un locataire distinct pour chaque région dans laquelle vous vendez. Par exemple, si votre application gérée par un partenaire est inscrite dans un locataire aux États-Unis, mais que votre client se trouve dans l’UE, l’application gérée par le partenaire ne fonctionnera pas. Chacun de vos locataires partenaires régionaux doit gérer son propre ensemble d’applications gérées par le partenaire pour gérer les clients dans la même région. Cela peut nécessiter une logique supplémentaire dans votre application (avant la connexion) pour obtenir le nom d’utilisateur de connexion de vos clients afin de décider de l’identité d’application gérée par le partenaire spécifique à la région à utiliser, afin de servir l’utilisateur.

Appel de Microsoft Graph immédiatement après la création du client

Lorsque vous créez un client à l’aide de l’API de l’Espace partenaires, un locataire client est créé. En outre, une relation de partenaire est également créée, ce qui fait de vous le partenaire de référence pour ce nouveau locataire client. La propagation de cette relation de partenaire au nouveau client peut prendre jusqu’à 3 minutes. Si votre application appelle Microsoft Graph immédiatement après sa création, votre application recevra probablement une erreur d’accès refusé. Un délai similaire peut être rencontré lorsqu’un client existant accepte votre invitation. Cela est dû au fait que le préconsent s’appuie sur la relation de partenaire présente dans le locataire client.

Pour éviter ce problème, nous vous recommandons d’attendre trois minutes après la création du client avant d’appeler Microsoft Entra ID pour acquérir un jeton (pour appeler Microsoft Graph). Cela doit couvrir la plupart des cas. Toutefois, si après trois minutes d’attente, vous recevez toujours une erreur d’autorisation, patientez 60 secondes supplémentaires et réessayez.

Note: Lors de la nouvelle tentative, vous devez acquérir un nouveau jeton d’accès auprès de Microsoft Entra ID, avant d’appeler Microsoft Graph. L’appel de Microsoft Graph avec le jeton d’accès que vous avez déjà ne fonctionnera pas, car le jeton d’accès est valide pendant une heure et ne contient pas les revendications d’autorisation préalablement consentées.