Applets de commande Azure AD pour utiliser les attributs d’extension

À propos des attributs d’extension

Les attributs d’extension offrent un moyen pratique d’étendre votre annuaire Azure AD avec de nouveaux attributs que vous pouvez utiliser pour stocker des valeurs d’attribut pour les objets de votre annuaire. Vous pouvez attacher un attribut d’extension aux types d’objet suivants :

  • users
  • détails des locataires
  • périphériques
  • applications

Les propriétés d’extension sont inscrites sur un objet application dans l’annuaire du développeur. Une fois que l’application a été acceptée par un utilisateur ou un administrateur de l’annuaire du développeur, la propriété est ajoutée à un type d’annuaire cible et devient immédiatement accessible dans l’annuaire du développeur. Pour une application mutualisée, quand l’application est acceptée par un utilisateur ou un administrateur d’une autre organisation, les propriétés d’extension deviennent immédiatement accessibles sur le type d’annuaire cible dans l’annuaire de l’autre organisation.

Si une organisation accepte des autorisations de « lecture seule » pour une application avec des extensions inscrites, les propriétés sont toujours accessibles dans l’annuaire de l’autre organisation. Par ailleurs, les propriétés d’extension sont accessibles par n’importe quelle application acceptée dans une organisation, pas seulement par l’application pour laquelle elles sont inscrites. D’autres applications acceptées dans cette organisation peuvent lire ou écrire des valeurs pour la nouvelle propriété d’extension si elles disposent des autorisations suffisantes.

Si l’application est supprimée ou que son consentement est retiré dans l’annuaire de l’autre organisation, la propriété d’extension devient inaccessible sur l’objet annuaire cible. Si l’extension est supprimée par l’application, elle devient également inaccessible sur l’objet annuaire cible. Si une application mutualisée ajoute des propriétés d’extension supplémentaires une fois le consentement accordé, ces propriétés deviennent immédiatement accessibles dans l’annuaire de l’autre organisation.

Notes

Si la valeur d’une propriété d’extension est définie sur un objet et que cette propriété devient inaccessible dans le répertoire de cet objet, la propriété est toujours comptabilisée dans la limite de 100 valeurs de propriété d’extension de cet objet. La seule façon de supprimer la valeur de propriété du décompte une fois qu’elle a été définie est de la définir explicitement sur la valeur null. Vous ne pouvez pas le faire si la propriété d’extension n’est pas accessible.

Vous trouverez plus d’informations sur les propriétés d’extension dans cet article.

Exemples

Dans ces exemples, nous utilisons un objet utilisateur et des propriétés d’extension. Recherchons d’abord la valeur ObjectId de l’utilisateur pour pouvoir y faire référence plus tard :

$UserId = (Get-AzureADUser -Searchstring <UPN of the user we're working with>).ObjectId 

Obtenir toutes les valeurs de propriété d’un utilisateur

(Get-AzureADUser -ObjectId $UserId).ToJson()

Obtenir un utilisateur et afficher toutes les propriétés d’extension

Get-AzureADUser -ObjectId $UserId | Select -ExpandProperty ExtensionProperty

Cette applet de commande retourne toutes les propriétés d’extension d’un utilisateur avec leurs valeurs actuelles :

Key                                                                   Value
---                                                                   -----
odata.metadata                                                        https://graph.windows.net/85b5ff1e-0402-400c-9e3c-0f9e965325d1/$metad...
odata.type                                                            Microsoft.DirectoryServices.User
thumbnailPhoto@odata.mediaContentType                                 image/Jpeg
extension_e5e29b8a85d941eab8d12162bd004528_extensionAttribute13       Test 

Récupérer la valeur d’une propriété d’extension spécifique pour un utilisateur

(Get-AzureADUserExtension -ObjectId $UserId).get_item("extension_e5e29b8a85d941eab8d12162bd004528_wWWHomePage")

Récupérer toutes les propriétés d’extension définies dans votre locataire

Get-AzureADApplication | Get-AzureADApplicationExtensionProperty 

Créer une propriété d’extension

Les propriétés d’extension sont toujours créées pour une application spécifique. Si vous voulez seulement ajouter des propriétés génériques à votre annuaire, vous pouvez créer une application d’espace réservé :

$MyApp = (New-AzureADApplication -DisplayName "My Properties Bag" -IdentifierUris "https://dummy").ObjectId 

Notez que vous devez aussi créer un principal de service pour cette application dans votre annuaire pour pouvoir créer une propriété d’extension :

New-AzureADServicePrincipal -AppId (Get-AzureADApplication -SearchString "My Properties Bag").AppId 

Nous pouvons maintenant utiliser cette application pour créer une propriété d’extension :

New-AzureADApplicationExtensionProperty -ObjectId $MyApp -Name "MyNewProperty" -DataType "String" -TargetObjects "User" 

Quand l’applet de commande est correctement exécutée, elle retourne le nouvel objet d’attribut d’extension :

ObjectId                             Name                                                     TargetObjects
--------                             ----                                                     -------------
91ec8ae5-6813-4453-afd7-31680a484892 extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty {User}

Notes

Le Nom de la nouvelle propriété est généré à partir du format « Extension_ » + <objectID de votre application> d’espace réservé + « _ » + <le nom de votre nouvelle propriété>. La valeur exacte du nom est différente pour chaque application créée. Vous pouvez affecter une propriété à plusieurs types d’objets. Dans notre exemple, nous avons utilisé un seul TargetObject, « User », mais vous pouvez également spécifier « User », « Group » pour assigner l’objet aux deux objets utilisateur et groupe.

Définition des valeurs des propriétés d’extension

À l’aide de la propriété d’extension utilisée dans l’exemple précédent, nous pouvons à présent lui attribuer une valeur :

Set-AzureADUserExtension -ObjectId $UserId -ExtensionName "extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty" -ExtensionValue "MyNewValue" 

Récupération de tous les attributs d’extension définis pour votre application

Vous pouvez récupérer la liste de tous les attributs d’extension définis pour votre application :

Get-AzureADApplicationExtensionProperty -ObjectId (Get-AzureADApplication -SearchString "My Properties Bag").ObjectId 

Cette applet de commande retourne la liste des propriétés d’extension de votre application :

ObjectId                             Name                                                      TargetObjects
--------                             ----                                                      -------------

91ec8ae5-6813-4453-afd7-31680a484892 extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty  {User}

Suppression des propriétés d’extension

Si vous n’avez plus besoin d’une propriété d’extension, vous pouvez la supprimer :

Remove-AzureADApplicationExtensionProperty -ObjectId (Get-AzureADApplication -SearchString "My Properties Bag").ObjectID -ExtensionPropertyId 91ec8ae5-6813-4453-afd7-31680a484892 

Notes

Vous ne pouvez pas supprimer l’attribut d’Azure AD une fois étendu ou supprimer le Tenant Schema Extension App sans déclencher une demande à l’équipe PayOps. En outre, la désactivation de l’option extensions d’annuaire à partir de l’Assistant Azure AD ne supprime pas les attributs ou ne vous permet pas de vous débarrasser de l’application.