Dans cet article nous allons voir comment lier une propriété (extension property) à une identité (App Registration Client) Entra ID. Ce mécanisme peut permettre de soutenir plusieurs scenarii. Je donne d’ailleurs un exemple en conclusion.
La manipulation se passe en 3 étapes :
Afin de lier une extension property à l’App Registration Client, il faut d’abord créer cette propriété. Cela sera fait dans une App Registration Properties qui servira uniquement de dictionnaire de propriétés.
Pour cela, nous utiliserons un appel (POST) à l’API Graph (pour plus d’information, voir la documentation Microsoft). L’URL est la suivante : https://graph.microsoft.com/v1.0/applications/{ObjectID}/extensionProperties
La variable « ObjectID » est l’objectID de l’App Registration Properties.
Voici un exemple de payload pour la requête (« backend-id » sera le nom de notre propriété) :
{ "name": "backend-id", "dataType": "String", "targetObjects": [ "Application" ] }
Avant de réaliser cette requête, il est nécessaire de demander un token à l’aide des informations suivantes :
Il faut savoir que l’identité liée au ClientID/ClientSecret fournis doit avoir les droits suivants concernant l’API Graph :
Pour définir la valeur d’une extension property au sein d’une App Registration Client, il est possible d’utiliser le même type d’API. Cependant, par simplicité, nous passerons plutôt par la modification du manifeste de l’App Registration sur le portail Azure.
Pour cela, il faut accéder à l’App Registration Client voulue. Ensuite, dans la section « Manifest », ajoutez à la fin le champ et la valeur suivante :
« extension_{app reg properties id}_backend-id »: « MW »
“extension” est une valeur fixée. « {app reg properties id} » est l’Application ID / Client ID de l’App Registration Properties (contenant la liste des extension properties). « backend-id » est le nom de la propriété. Et « MW » est la valeur de notre propriété.
L’extension property est définie dans l’App Registration Properties. La valeur de la propriété est renseignée dans l’App Registration Client. Nous pouvons voir maintenant comment lire ce type d’information.
On utilisera un appel HTTP GET de l’API Graph afin de récupérer la valeur souhaitée (voir la documentation Microsoft), à l’aide de cette URL :
https://graph.microsoft.com/v1.0/applications/{app reg client object id}?$select=extension_{app reg properties id}_backend-id
Pour récupérer l’Object ID lié à l’identité du Client, il faut réaliser une requête préliminaire à l’API Graph (voir la documentation Microsoft). La partie « select » permet de ne récupérer que les informations qui nous intéressent.
Note : Afin de réaliser cette requête, il est nécessaire de disposer des droits suivants :
Nous avons vu comment manipuler les extension properties dans Entra ID à l’aide de l’API Graph.
Cette fonctionnalité peut être utile dans un certain nombre de scenarii. Pour vous donner un exemple, nous l’avons utilisé dans le cadre d’une propagation d’identité entre APIM et une application interne. Le but était de garantir l’identité du Client auprès de l’application interne (dans son référentiel).