Azure AD rutin pro práci s atributy rozšíření
O atributech rozšíření
Atributy rozšíření nabízí pohodlný způsob rozšíření adresáře Azure AD o nové atributy, které můžete použít k ukládání hodnot atributů pro objekty v adresáři. Atribut rozšíření můžete přiřadit k následujícím typům objektů:
- uživatelé
- podrobnosti o tenantovi
- zařízení
- aplikace
Vlastnosti rozšíření jsou registrované pro objekt aplikace v adresáři pro vývojáře. Po odsouhlasení aplikace uživatelem nebo správcem v adresáři pro vývojáře se vlastnost přidá do typu cílového adresáře a bude okamžitě dostupná v adresáři pro vývojáře. Při udělení souhlasu víceklientské aplikaci uživatelem nebo správcem v jiné organizaci se vlastnosti rozšíření stanou okamžitě dostupné v typu cílového adresáře v adresáři jiné organizace.
Pokud organizace souhlasí pro aplikaci s registrovanými rozšířeními s oprávněními jen pro čtení, vlastnosti se stále stanou dostupnými v adresáři jiné organizace. Kromě toho jsou vlastnosti rozšíření přístupné pro všechny odsouhlasené aplikace v organizaci, ne jenom pro aplikaci, pro kterou jsou registrované. Ostatní odsouhlasené aplikace v dané organizace můžou číst nebo zapisovat hodnoty pro nové vlastnosti rozšíření, pokud mají dostatečná oprávnění.
Pokud je aplikace odstraněna nebo je souhlas odebrán v adresáři jiné organizace, vlastnost rozšíření se v objektu cílového adresáře stane nedostupnou. Pokud rozšíření odstraní aplikace, také se stane nedostupným v objektu cílového adresáře. Pokud víceklientská aplikace přidá další vlastnosti rozšíření po udělení souhlasu, stanou se tyto vlastnosti okamžitě dostupné v adresáři jiné organizace.
Poznámka
Pokud je hodnota vlastnosti rozšíření nastavena na objektu a tato vlastnost se stane nepřístupnou v adresáři tohoto objektu, tato vlastnost se stále počítá do limitu 100 hodnot rozšiřující vlastnosti objektu. Jediným způsobem, jak zařídit, aby se jednou nastavená hodnota vlastnosti nezapočítávala, je explicitně ji nastavit na hodnotu null. To ale nejde provést, pokud vlastnost rozšíření není dostupná.
Další informace o vlastnostech rozšíření najdete v tomto článku.
Příklady
V těchto příkladech budete používat objekt uživatele a pracovat s vlastnostmi rozšíření. Nejdříve najdeme ObjectId uživatele, abychom na něj mohli později snadno odkazovat:
$UserId = (Get-AzureADUser -Searchstring <UPN of the user we're working with>).ObjectId
Získání všech hodnot vlastností uživatele
(Get-AzureADUser -ObjectId $UserId).ToJson()
Získání uživatele a zobrazení všech vlastností rozšíření
Get-AzureADUser -ObjectId $UserId | Select -ExpandProperty ExtensionProperty
Tato rutina vrací všechny vlastnosti rozšíření uživatele s jejich aktuálními hodnotami:
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
Načtení hodnoty konkrétní vlastnosti rozšíření pro uživatele
(Get-AzureADUserExtension -ObjectId $UserId).get_item("extension_e5e29b8a85d941eab8d12162bd004528_wWWHomePage")
Načtení všech vlastností rozšíření, které jsou definované ve vašem tenantovi
Get-AzureADApplication | Get-AzureADApplicationExtensionProperty
Vytvoření nové vlastnosti rozšíření
Vlastnosti rozšíření se vytváří vždy pro konkrétní aplikaci. Pokud chcete do adresáře přidat jenom generické vlastnosti, můžete vytvořit zástupnou aplikaci:
$MyApp = (New-AzureADApplication -DisplayName "My Properties Bag" -IdentifierUris "https://dummy").ObjectId
Všimněte si, že pro tuto aplikaci potřebujete ve vašem adresáři také vytvořit instanční objekt, abyste mohli vytvořit novou vlastnost rozšíření:
New-AzureADServicePrincipal -AppId (Get-AzureADApplication -SearchString "My Properties Bag").AppId
Tuto aplikaci teď můžeme použít k vytvoření nové vlastnosti rozšíření:
New-AzureADApplicationExtensionProperty -ObjectId $MyApp -Name "MyNewProperty" -DataType "String" -TargetObjects "User"
Po úspěšném dokončení rutina vrací nový objekt atributu rozšíření:
ObjectId Name TargetObjects
-------- ---- -------------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty {User}
Poznámka
Název nové vlastnosti se vygeneruje z formátu "Extension_" + <objectID zástupné aplikace> + "_" + <název nové vlastnosti>. Přesná hodnota názvu se proto bude pro různé vytvořené aplikace lišit. Vlastnost můžete přiřadit více než jednomu typu objektu. V našem příkladu jsme použili pouze jeden cílový objekt, "User", ale mohli jste zadat také hodnotu "User","Group". Tím by se objekt přiřadil objektům uživatelů a skupin.
Nastavení hodnot pro vlastnosti rozšíření
Pomocí vlastnosti rozšíření, které jsme použili v předchozím příkladu, jí nyní můžeme přiřadit hodnotu:
Set-AzureADUserExtension -ObjectId $UserId -ExtensionName "extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty" -ExtensionValue "MyNewValue"
Načtení všech atributů rozšíření definovaných pro aplikaci
Můžete načíst seznam atributů rozšíření, které byly definovány pro vaši aplikaci:
Get-AzureADApplicationExtensionProperty -ObjectId (Get-AzureADApplication -SearchString "My Properties Bag").ObjectId
Tato rutina vrací seznam vlastností rozšíření v aplikaci:
ObjectId Name TargetObjects
-------- ---- -------------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty {User}
Odstranění vlastností rozšíření
Pokud už vlastnost rozšíření nepotřebujete, můžete ji odstranit:
Remove-AzureADApplicationExtensionProperty -ObjectId (Get-AzureADApplication -SearchString "My Properties Bag").ObjectID -ExtensionPropertyId aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
Poznámka
Atribut nemůžete odebrat z Azure AD po prodloužení ani odstranit Tenant Schema Extension App
bez vyvolání žádosti týmu PayOps. Vypnutím možnosti rozšíření adresáře v průvodci Azure AD také neodeberete atributy nebo se aplikace zbavíte.