Demander des différences entre Azure AD Graph et Microsoft Graph
Cet article fait partie de l’étape 1 : passer en revue les différences d’API du processus de migration des applications.
Microsoft Graph et les API Graph Azure Active Directory (Azure AD) sont des API REST et prennent en charge les conventions OData pour les paramètres de requête. Toutefois, la syntaxe varie entre ces deux API.
Utilisez Graph Explorer pour essayer ces modèles de requête sur vos propres données, car il s’agit d’un excellent moyen d’en savoir plus sur les différences de demande et de réponse.
Requêtes de base
Le tableau suivant met en évidence les différences de demande main entre les deux API :
Détails de la demande | Azure AD Graph | Microsoft Graph |
---|---|---|
Syntaxe de la requête | https://graph.windows.net/{tenant_id}/ {resource}?{version}&query-parameters |
https://graph.microsoft.com/ {version}/{resource}?query-parameters |
Points de terminaison de service : | ||
-Mondiale | https://graph.windows.net |
https://graph.microsoft.com |
- US Gov L4 | https://graph.microsoftazure.us |
https://graph.microsoft.us |
- US Gov L5 (DOD) | https://graph.microsoftazure.us |
https://dod-graph.microsoft.us |
-Allemagne | https://graph.cloudapi.de |
https://graph.microsoft.de |
- Chine (21Vianet) | https://graph.chinacloudapi.cn |
https://microsoftgraph.chinacloudapi.cn |
{tenant_id} | Spécifiez l’ID du locataire dans la demande. | Il est facultatif de spécifier un ID de locataire dans la requête, car il est déduit du jeton d’accès. Si vous spécifiez l’ID de locataire, il se trouve entre et {version} dans {resource} l’URL de la requête. |
{version} | Spécifiez la version release d’Azure AD Graph dans la requête à l’aide d’un paramètre de requête requis. | Spécifiez la version de mise en production de Microsoft Graph dans la requête dans le cadre du chemin d’URL juste après le point de terminaison de service. |
Vous pouvez continuer à utiliser les mêmes paramètres de requête dans Microsoft Graph qu’Azure AD Graph.
Exemple de comparaison de requêtes
Supposons que vous souhaitiez une liste de tous les utilisateurs dont le nom commence par « Dan ».
Dans Azure AD Graph, vous pouvez utiliser cette requête :
GET https://graph.windows.net/contoso.com/users?$filter=startswith(givenName,'Dan')&api-version=1.6
Ou
GET https://graph.windows.net/myOrganization/users?$filter=startswith(givenName,'Dan')&api-version=1.6
Cette requête :
- Cible la version 1.6 d’Azure AD Graph.
- Spécifie
contoso.com
comme ID de locataire. L’alternative montre l’utilisation d’un aliasmyOrganization
basé sur l’ID de locataire dans le jeton d’accès. - Appelle la ressource users.
- Utilise le
$filter
paramètre de requête pour limiter la réponse aux noms donnés qui commencent parDan
.
Les résultats incluent des utilisateurs portant des noms tels que Daniel, Danforth, Danielle, Danerys, etc.
Une requête similaire pour Microsoft Graph serait la suivante :
GET https://graph.microsoft.com/v1.0/users?$filter=startswith(givenName,'Dan')
Ici:
- La version est
v1.0
. - L’ID de locataire est déduit du jeton d’accès (non affiché).
- La ressource et
$filter
le paramètre de requête sont identiques à la requête Azure AD.
REMARQUE : Si vous utilisez la bibliothèque cliente .NET Azure AD Graph, consultez Bibliothèques clientes .NET pour obtenir des stratégies et une aide plus spécifiques pour passer à la bibliothèque cliente Microsoft Graph .NET.
Identificateurs de clé : objectId et id
Dans Azure AD Graph, tous les types de ressources d’entité ont un identificateur unique (ou clé) appelé objectId. Pour la plupart (sauf indication contraire), ce même identificateur est appelé id dans Microsoft Graph.
Propriétés et $select par défaut
Utilisez le $select
paramètre de requête, dans les requêtes GET, pour personnaliser la réponse afin d’inclure toutes les propriétés requises par votre application.
Les opérations d’obtention ou de liste microsoft Graph pour les ressources utilisateur ou de groupe retournent uniquement un sous-ensemble de toutes les propriétés, appelées propriétés par défaut. Les propriétés par défaut représentent les propriétés les plus couramment utilisées pour une ressource. En revanche, Azure AD Graph retourne l’ensemble complet de toutes les propriétés de la ressource respective.
Pour obtenir d’autres propriétés dans la version 1.0, votre application doit les demander explicitement à l’aide du $select
paramètre de requête. Cela inclut toutes les extensions de schéma d’annuaire que votre application peut utiliser. Il est recommandé de demander uniquement les propriétés dont votre application a réellement besoin.
Pour illustrer la différence, utilisez Graph Explorer pour exécuter les requêtes suivantes et comparer les différentes réponses.
GET https://graph.microsoft.com/v1.0/me/
GET https://graph.microsoft.com/beta/me/
Passez en revue les réponses de chaque requête. Vous remarquerez que les informations d’adresse sont retournées par la version /beta, mais pas par la version /v1.0. Cela est dû au fait que les propriétés d’adresse ne sont pas dans le jeu de propriétés par défaut.
Si votre application s’appuie sur les propriétés d’adresse, vous devez mettre à jour vos requêtes v1.0 pour inclure le paramètre de $select
requête :
https://graph.microsoft.com/v1.0/me/?$select=displayName,streetAddress,city,state,postalCode
La réponse à cette demande inclut les propriétés d’adresse. Il inclut également la propriété displayName , mais uniquement parce qu’elle a été spécifiée par le paramètre de requête.
Pour en savoir plus sur :
- Propriétés par défaut sur l’utilisateur, consultez utilisateurs
- Le
$select
paramètre et les autres paramètres de requête ODATA pris en charge, consultez Utiliser des paramètres de requête pour personnaliser les réponses. - Cette optimisation et d’autres optimisations recommandées, consultez Bonnes pratiques.
Relations et propriétés de navigation
Les relations (ou propriétés de navigation) sont un concept clé dans Azure AD Graph et Microsoft Graph, qui crée un réseau de ressources associées. Par exemple, les propriétés manager et directReports étendent la ressource utilisateur pour fournir une hiérarchie organisationnelle.
Les relations définissent également les appartenances, telles que les groupes auxquels un utilisateur appartient, les membres appartenant à un groupe ou à un rôle d’annuaire, etc.
Les requêtes Azure AD Graph utilisent $links
pour indiquer les relations entre les ressources. Dans Microsoft Graph, cela utilise la notation OData v4.01 $ref
à la place.
Le tableau suivant présente plusieurs exemples :
Tâche | Azure AD Graph | Microsoft Graph |
---|---|---|
Ajouter un membre | POST /groups/{id}/$links/members |
POST /groups/{id}/members/$ref |
Lister les liens des membres | GET /groups/{id}/$links/members |
GET /groups/{id}/members/$ref |
Répertorier les membres | GET /groups/{id}/members |
GET /groups/{id}/members |
Supprimer un membre | DELETE /groups/{id}/$links/members/{id} |
DELETE /groups/{id}/members/{id}/$ref |
Lors de la migration de vos applications vers Microsoft Graph, recherchez les demandes qui utilisent $links
pour associer des ressources; modifiez-les pour les utiliser $ref
à la place.
Étapes suivantes
- Découvrez les différences de fonctionnalités de service entre Azure AD Graph et Microsoft Graph.
- Révisez la liste de contrôle .