Loupe

Comment étendre les propriétés d’une ressource Azure avec les extensions de schéma Graph API (Partie1)?

Dans un précédent article, je vous ai expliqué comment gérer son Azure AD grâce à l'API Microsoft Graph. 

La méthode utilisée permet d’ajouter et de modifier certaines propriétés de l’utilisateur telles que son nom, son prénom, son département etc... 

Mais il est fréquent qu’une entreprise ait besoin de rajouter ses propres données. 

Pour ce faire, 2 options s’offrent à vous,  les schémas extensions et les open extensions (précédemment nommées Office 365 data extensions). 

Je vais vous présenter ici comment gérer les schémas extensions.

Présentation 

 Les schemas extensions permettent d’ajouter des propriétés fortement typées à un type de ressources Azure. L’un des plus gros avantages de cette méthode est qu'elle rend possible l'utilisation de filtres lors des recherches. 

Les ressources actuellement prises en charge sont les suivantes : 

 Afin de pouvoir utiliser une extension de schéma, il est nécessaire de créer sa définition. Pour ce faire, il vous faudra définir son identifiant. 

Actuellement, la meilleure façon d’obtenir un identifiant unique est de préfixer votre nom par votre domaine enregistré sur votre tenant. Par exemple, si votre domaine est infinitesquare.com, votre identifiant sera infinitesquare_Article. 

Il est aussi possible de créer une définition uniquement avec le nom du schéma mais, dans ce cas, Microsoft Graph vous créera un identifiant formaté ext{8 nombres}_{le nom du schéma}. Avec l’exemple précédent cela donnera ext12345678_ Article. 

Durant son cycle de vie, l’extension passera par plusieurs états : 

  • InDevelopment : état initial à la création 
  • Available : l’extension est disponible pour toutes les applications dans le tenant 
  • Deprecated : la définition n’est plus modifiable ni visible sauf pour celle déjà associée à des éléments.  

La création des extensions basées sur la définition créée précédemment se fera grâce à des opérations CRUD POST GET PATCH. 

A noter qu’il n’est pas possible de créer plus de 5 extensions par application. 

Créer une extension de schéma 

 La création d’une extension de schéma se fait par le biais d’une méthode POST en passant dans le corps un objet json ayant ce format :

{ 
    "id":"infinitesquare_ExtensionArticle", 
    "description": "Extension de test", 
    "targetTypes": [ "Group" ], 
    "properties": [ 
        { 
            "name": "articleId", 
            "type": "Integer" 
        }, 
        { 
            "name": "articleName", 
            "type": "String" 
        }] 
}

Les types de propriétés actuellement disponibles sont les suivants : 

  • Binary (256 octets maximum) 
  • Boolean (non pris en charge pour les messages, les événements et les billets) 
  • DateTime (à indiquer au format ISO 8601, conservé au format UTC) 
  • Int (version 32 bits, non pris en charge pour les messages, les événements et les post) 
  • String (256 caractères maximum) 

 En cas de succès, l’API renvoie un code de retour 201. 

Utiliser une extension de schéma

Après sa création, l’extension de schéma est utilisable lors de la création d’un nouvel élément de ressource.  

Comme lors de la déclaration, il faut utiliser un POST sur l’url de votre tenant et passer dans le body un json avec les informations relatives à votre ressource. 

Dans notre exemple, nous avons créé une extension schéma de type groupe, le json aura donc le format suivant :

{ 
 "displayName": "Mon nouveau groupe", 
 "description": "Le groupe créé pour l’article de extensions de 
 schéma", 
 "groupTypes": ["Unified"], 
 "mailEnabled": false, 
 "securityEnabled": false, 
 "infinitesquare_ExtensionArticle": { 
    "articleId":"1", 
    "articleName":"Les extensions des Microsoft Graph API" 
    } 
}

Si tout se passe bien, un code retour 201 est envoyé avec le descriptif de la ressource créée. Il est ensuite possible de mettre à jour ses données avec une méthode PATCH. 

Attention, il est nécessaire de toujours passer toutes les propriétés. 

Dans l’exemple suivant, si nous voulons modifier la propriété articleName, le json à envoyer sera : 

{ 
    "graphlearn_courses":{ 
        "articleId":"1", 
        "articleName":" Les extensions de schéma des Microsoft Graph API " 
    } 
}

Filtrer sur les extensions de schéma

L’avantage des extensions de schéma est qu’il est possible de récupérer des ressources selon un filtre défini sur leurs propriétés : 

Dans notre exemple, nous utiliserons une méthode GET avec l’url suivante pour filtrer la propriété articleId :

https://graph.microsoft.com/v1.0/groups?$filter=infinitesquare_ExtensionArticle/articleId eq ‘1’&$select=displayName,id,description, infinitesquare_ExtensionArticle

En résumé

Les extensions de schéma offrent la possibilité d’étendre les propriétés de certaines ressources Azure.  

Il est nécessaire de les déclarer avant de pourvoir les utiliser, ce qui nécessite des droits étendus sur votre tenant. 

Toutes les opérations de création, mise à jour, lecture et suppression se font par le biais de requêtes REST en mode CRUD. 

Leur plus gros avantage réside dans la possibilité d'appliquer des filtres directement sur celles-ci pour pouvoir récupérer rapidement les ressources liées. 

Dans un prochain article, nous verrons comment étendre une ressource avec les open extensions. 

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus