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
-------- ---- -------------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 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
-------- ---- -------------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 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 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
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.