Delen via


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.