Azure AD командлеты для работы с атрибутами расширения
Сведения об атрибутах расширения
Атрибуты расширения позволяют легко расширить каталог Azure AD с помощью новых атрибутов, которые можно использовать, чтобы хранить значения атрибутов для объектов в каталоге. Вы можете добавить атрибут расширения к объектам следующих типов:
- users
- сведения о клиенте;
- устройства
- веб-масштабированием;
Свойства расширения регистрируются в объекте приложения в каталоге разработчика. После того как пользователь или администратор предоставит согласие на приложение в каталоге разработчика, свойство добавляется к целевому объекту каталога и сразу становится доступным в каталоге разработчика. Когда пользователь или администратор в другой организации предоставляет согласие на мультитенантное приложение, свойства расширения становятся сразу доступными в целевом объекте каталога в каталоге другой организации.
Если организация предоставляет разрешения только для чтения на приложение с зарегистрированными расширениями, свойства все равно станут доступными в каталоге другой организации. Кроме того, свойства расширения доступны для любого утвержденного приложения в организации, а не только для приложения, в котором они зарегистрированы. При наличии достаточных разрешений другие утвержденные приложения в организации могут считывать или записывать значения для нового свойства расширения.
Если приложение или разрешение удаляется в каталоге другой организации, свойство расширения становится недоступным в целевом объекте каталога. При удалении расширения через приложение оно также становится недоступным для целевого объекта каталога. Если мультитенантное приложение добавляет дополнительные свойства расширения после предоставления согласия, эти свойства сразу становятся доступными в каталоге другой организации.
Примечание
Если значение свойства расширения задано для объекта и это свойство становится недоступным в каталоге этого объекта, свойство по-прежнему учитывается в 100 значениях свойств расширения этого объекта. Единственный способ удалить заданное значение свойства из рассмотрения — явно задать для него значение null. Это невозможно сделать, если свойство расширения недоступно.
Дополнительные сведения о свойствах расширения см. в этой статье.
Примеры
Здесь мы будем использовать объект пользователя и поработаем со свойствами расширения. Сначала мы найдем ObjectId пользователя, чтобы с легкостью сослаться на него позже:
$UserId = (Get-AzureADUser -Searchstring <UPN of the user we're working with>).ObjectId
Получение значений всех свойств пользователя
(Get-AzureADUser -ObjectId $UserId).ToJson()
Получение сведений о пользователе и вывод всех свойств расширения
Get-AzureADUser -ObjectId $UserId | Select -ExpandProperty ExtensionProperty
Этот командлет возвращает все свойства расширения пользователя с текущими значениями:
Key Value
--- -----
odata.metadata https://graph.windows.net/85b5ff1e-0402-400c-9e3c-0f9e965325d1/$metad...
odata.type Microsoft.DirectoryServices.User
[email protected] image/Jpeg
extension_e5e29b8a85d941eab8d12162bd004528_extensionAttribute13 Test
Получение значения определенного свойства расширения для пользователя
(Get-AzureADUserExtension -ObjectId $UserId).get_item("extension_e5e29b8a85d941eab8d12162bd004528_wWWHomePage")
Получение всех свойств расширения, которые определены в клиенте
Get-AzureADApplication | Get-AzureADApplicationExtensionProperty
Создание свойства расширения
Свойства расширения всегда создаются для определенного приложения. Если вы хотите добавить в каталог универсальные свойства, можно создать приложение-заполнитель:
$MyApp = (New-AzureADApplication -DisplayName "My Properties Bag" -IdentifierUris "https://dummy").ObjectId
Обратите внимание, чтобы создать новое свойство расширения, необходимо также создать субъект-службу для этого приложения в каталоге:
New-AzureADServicePrincipal -AppId (Get-AzureADApplication -SearchString "My Properties Bag").AppId
Теперь это приложение можно использовать для создания нового свойства расширения:
New-AzureADApplicationExtensionProperty -ObjectId $MyApp -Name "MyNewProperty" -DataType "String" -TargetObjects "User"
Если командлет выполнен успешно, он возвращает объект атрибута нового расширения:
ObjectId Name TargetObjects
-------- ---- -------------
91ec8ae5-6813-4453-afd7-31680a484892 extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty {User}
Примечание
Имя нового свойства создается в формате "Extension_" + <objectID приложения-заполнителя> + "_" + <имя нового свойства>. Поэтому точное значение имени будет отличаться для разных приложений. Свойство можно назначить нескольким типам объектов. В нашем примере мы используем только один целевой объект (User), но можно также указать User и Group. Таким образом объект будет присвоен объектам пользователя и группы.
Задание значений для свойств расширения
Мы присвоим значение свойству расширения, которое использовалось в предыдущем примере:
Set-AzureADUserExtension -ObjectId $UserId -ExtensionName "extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty" -ExtensionValue "MyNewValue"
Получение всех атрибутов расширения, определенных для приложения
Вы можете получить список атрибутов расширения, определенных для приложения:
Get-AzureADApplicationExtensionProperty -ObjectId (Get-AzureADApplication -SearchString "My Properties Bag").ObjectId
Этот командлет возвращает список свойств расширения в приложении:
ObjectId Name TargetObjects
-------- ---- -------------
91ec8ae5-6813-4453-afd7-31680a484892 extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty {User}
Удаление свойств расширения
Если свойство расширения больше не требуется, его можно удалить:
Remove-AzureADApplicationExtensionProperty -ObjectId (Get-AzureADApplication -SearchString "My Properties Bag").ObjectID -ExtensionPropertyId 91ec8ae5-6813-4453-afd7-31680a484892
Примечание
Вы не можете удалить атрибут из Azure AD после расширения или удалить Tenant Schema Extension App
без запроса к команде PayOps. Кроме того, отключение параметра расширения каталога из мастера Azure AD не удалит атрибуты и не позволит избавиться от приложения.