Azure AD cmdlets gebruiken met extensiekenmerken
Over extensiekenmerken
Extensiekenmerken bieden een handige manier om uw Azure AD-directory uit te breiden met nieuwe kenmerken die u kunt gebruiken voor het opslaan van kenmerkwaarden voor objecten in uw directory. U kunt een extensiekenmerk aan de volgende objecttypen koppelen:
- gebruikers
- tenantdetails
- devices
- toepassingen
Extensie-eigenschappen zijn geregistreerd op een toepassingsobject binnen de directory van de ontwikkelaar. Nadat de toepassing is toegestaan door een gebruiker of een beheerder in de directory van de ontwikkelaar, wordt de eigenschap toegevoegd aan het betreffende type directory en wordt deze onmiddellijk toegankelijk in de directory van de ontwikkelaar. Wanneer een gebruiker of beheerder een multitenant-toepassing toestaat in een andere organisatie, worden de extensie-eigenschappen onmiddellijk toegankelijk voor het betreffende directorytype in de directory van de andere organisatie.
Als een organisatie alleen-lezenmachtigingen toestaat voor een toepassing met geregistreerde extensies, worden de eigenschappen nog steeds toegankelijk in de directory van de andere organisatie. Extensie-eigenschappen zijn ook toegankelijk via elke andere toegestane toepassing in een organisatie, niet alleen via de toepassing waarvoor ze zijn geregistreerd. Andere toegestane toepassingen in die organisatie kunnen waarden voor de nieuwe extensie-eigenschap lezen of schrijven als ze hiervoor over voldoende machtigingen beschikken.
Als de toepassing wordt verwijderd of de toestemming ervoor wordt ingetrokken in de directory van de andere organisatie, wordt de extensie-eigenschap niet toegankelijk op het betreffende directoryobject. Als de extensie door de toepassing wordt verwijderd, wordt deze ook niet toegankelijk op het betreffende directoryobject. Als een multitenant-toepassing extra eigenschappen toevoegt nadat deze is toegestaan, worden deze eigenschappen onmiddellijk toegankelijk in de directory van de andere organisatie.
Notitie
Als de waarde van een extensie-eigenschap is ingesteld voor een object en die eigenschap niet meer toegankelijk is in de map van dat object, wordt de eigenschap nog steeds meegeteld voor de limiet van 100 extensieeigenschapswaarden van dat object. De enige manier om de eigenschapswaarde niet mee te laten tellen nadat deze is ingesteld, is door deze expliciet op nul in te stellen. U kunt dit niet doen als de extensie-eigenschap niet toegankelijk is.
Meer informatie over extensie-eigenschappen vindt u in dit artikel.
Voorbeelden
In deze voorbeelden gebruiken we een gebruikersobject en werken we met extensie-eigenschappen. We zoeken eerst de ObjectId van de gebruiker, zodat we deze later eenvoudig kunnen raadplegen:
$UserId = (Get-AzureADUser -Searchstring <UPN of the user we're working with>).ObjectId
Alle eigenschapswaarden van een gebruiker ophalen
(Get-AzureADUser -ObjectId $UserId).ToJson()
Een gebruiker ophalen en alle extensie-eigenschappen weergeven
Get-AzureADUser -ObjectId $UserId | Select -ExpandProperty ExtensionProperty
Deze cmdlet retourneert alle extensie-eigenschappen van een gebruiker met de huidige waarden:
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
De waarde van een specifieke extensie-eigenschap voor een gebruiker ophalen
(Get-AzureADUserExtension -ObjectId $UserId).get_item("extension_e5e29b8a85d941eab8d12162bd004528_wWWHomePage")
Alle extensie-eigenschappen ophalen die in uw tenant zijn gedefinieerd
Get-AzureADApplication | Get-AzureADApplicationExtensionProperty
Een nieuwe extensie-eigenschap maken
Extensie-eigenschappen worden altijd voor een bepaalde toepassing gemaakt. Als u alleen algemene eigenschappen aan uw directory wilt toevoegen, kunt u een tijdelijke toepassingsaanduiding maken:
$MyApp = (New-AzureADApplication -DisplayName "My Properties Bag" -IdentifierUris "https://dummy").ObjectId
U moet voor deze toepassing ook een Service Principal maken in uw directory, zodat u een nieuwe extensie-eigenschap kunt maken:
New-AzureADServicePrincipal -AppId (Get-AzureADApplication -SearchString "My Properties Bag").AppId
Nu kunt u deze toepassing gebruiken om een nieuwe extensie-eigenschap te maken:
New-AzureADApplicationExtensionProperty -ObjectId $MyApp -Name "MyNewProperty" -DataType "String" -TargetObjects "User"
Als de cmdlet is voltooid, retourneert deze het nieuwe extensiekenmerkobject:
ObjectId Name TargetObjects
-------- ---- -------------
91ec8ae5-6813-4453-afd7-31680a484892 extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty {User}
Notitie
De naam van de nieuwe eigenschap wordt gegenereerd op basis van de notatie 'Extension_' + <objectID van de tijdelijke aanduiding voor de toepassing> + '_' + <de naam van de nieuwe eigenschap>. Voor de verschillende toepassingen die u maakt, is de exacte naam daarom steeds verschillend. U kunt een eigenschap toewijzen aan meer dan één objecttype. In dit voorbeeld hebt u maar één TargetObject ('Gebruiker') gebruikt, maar u had ook 'Gebruiker', 'Groep' kunnen opgeven. Hiermee wordt het object aan zowel gebruikers- als groepsobjecten toegevoegd.
Waarden voor extensie-eigenschappen instellen
U kunt nu een waarde toewijzen aan de extensie-eigenschap die we in het vorige voorbeeld hebben gebruikt:
Set-AzureADUserExtension -ObjectId $UserId -ExtensionName "extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty" -ExtensionValue "MyNewValue"
Alle extensiekenmerken ophalen die voor uw toepassing zijn gedefinieerd
U kunt alle extensiekenmerken ophalen die voor uw toepassing zijn gedefinieerd:
Get-AzureADApplicationExtensionProperty -ObjectId (Get-AzureADApplication -SearchString "My Properties Bag").ObjectId
Deze cmdlet retourneert de lijst met extensie-eigenschappen in uw toepassing:
ObjectId Name TargetObjects
-------- ---- -------------
91ec8ae5-6813-4453-afd7-31680a484892 extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty {User}
Extensie-eigenschappen verwijderen
Als u een extensie-eigenschap niet meer nodig hebt, kunt u deze verwijderen:
Remove-AzureADApplicationExtensionProperty -ObjectId (Get-AzureADApplication -SearchString "My Properties Bag").ObjectID -ExtensionPropertyId 91ec8ae5-6813-4453-afd7-31680a484892
Notitie
U kunt het kenmerk niet verwijderen uit Azure AD zodra deze is uitgebreid en u kunt het Tenant Schema Extension App
ook niet verwijderen zonder een aanvraag in te dienen bij het PayOps-team. Als u de optie directory-extensies uit Azure AD wizard uitschakelt, worden de kenmerken niet verwijderd en kunt u de app ook niet verwijderen.