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.
Cette rubrique explique comment activer l’accès de l’application aux données client gérées par des partenaires via Microsoft Graph à l’aide du flux d’octroi de code d’autorisation ou du flux d’informations d’identification du client service à service.
Importante
L’appel de Microsoft Graph à partir d’une application CSP est pris en charge uniquement pour les ressources d’annuaire (telles que l’utilisateur, legroupe, l’appareil, l’organisation) 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 avec consentement préalable , car tous vos clients sont automatiquement pré-acceptés pour vos applications gérées par le partenaire. Cela signifie que lorsqu’un utilisateur d’un de vos locataires clients utilise l’une de vos applications gérées par un 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.
Enregistrer et configurer une application mutualisée
Les premières étapes requises ici suivent la plupart des étapes utilisées pour enregistrer et configurer une application mutualisée :
- Inscrivez votre application dans votre locataire partenaire à l’aide du portail Azure. 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.
- Configurez votre application multi-clients, toujours via le portail Azure, avec les autorisations requises, en accordant uniquement les privilèges strictement nécessaires.
Consentement préalable de 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.
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
Recherchez le groupe qui représente Adminagents.
$group = Get-AzureADGroup -Filter "displayName eq 'Adminagents'"
Recherchez le principal du service qui a le même identificateur que votre application.
$sp = Get-AzureADServicePrincipal -Filter "appId eq '{yourAppsAppId}'"
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 du jeton pour les applications gérées par des partenaires - flux d’octroi du code d’autorisation et flux d’informations d’identification service à service - sont identiques à ceux des applications multi-clientes standard.
Outre l’accès pré-consenti à 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 :
- Votre agent se connecte à votre application avec ses informations d’identification utilisateur émises par votre client partenaire.
- Votre application demande un jeton d’accès pour le client géré par des partenaires prévu.
- 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 :
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 exemplecustomer.com
, pour le locataire cible. Vos agents se connectent toujours avec leurusername@partner.com
compte.GET https://login.microsoftonline.com/customer.com/oauth2/authorize
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 terminaisontoken
:POST https://login.microsoftonline.com/customer.com/oauth2/token
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, pour 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 consentement préalable repose sur la présence de la relation partenaire dans le locataire client.
Pour éviter ce problème, nous recommandons que votre application partenaire attende trois minutes après la création du client avant d’appeler Azure AD pour obtenir un jeton (pour appeler Microsoft Graph). Cela doit couvrir la plupart des cas. Toutefois, si après trois minutes d’attente vous recevez encore une erreur d’autorisation, veuillez patienter 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 d’Azure AD avant d’appeler Microsoft Graph. L’appel de Microsoft Graph avec le jeton d’accès dont vous disposez 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.