Azure AD polecenia cmdlet do pracy z atrybutami rozszerzenia

Informacje o atrybutach rozszerzenia

Atrybuty rozszerzenia oferują wygodny sposób rozszerzenia katalogu usługi Azure AD o nowe atrybuty, których możesz użyć do przechowywania wartości atrybutów dla obiektów w Twoim katalogu. Atrybut rozszerzenia możesz dołączyć do następujących typów obiektów:

  • users
  • szczegóły dzierżawy
  • devices
  • aplikacje

Właściwości rozszerzenia są rejestrowane w obiekcie aplikacji w katalogu dewelopera. Po tym, jak aplikacja została zatwierdzona przez użytkownika lub administratora w katalogu dewelopera, do typu katalogu docelowego jest dodawana właściwość, która staje się natychmiast dostępna w katalogu dewelopera. W przypadku aplikacji wielodostępnych, gdy aplikacja uzyska zatwierdzenie przez użytkownika lub administratora w innej organizacji, właściwości rozszerzenia stają się natychmiast dostępne w typie katalogu docelowego w katalogu innej organizacji.

Jeśli organizacja zgodzi się na uprawnienia „tylko do odczytu” dla aplikacji z zarejestrowanymi rozszerzeniami, właściwości nadal będą dostępne w katalogu innej organizacji. Ponadto właściwości rozszerzenia są dostępne dla dowolnej zatwierdzonej aplikacji w organizacji, a nie tylko dla aplikacji, dla której są one zarejestrowane. Inne zatwierdzone aplikacje w tej organizacji mogą czytać lub zapisywać wartości dla nowej właściwości rozszerzenia, o ile mają one wystarczające uprawnienia.

Jeśli aplikacja zostanie usunięta lub zgoda zostanie wycofana w katalogu innej organizacji, właściwość rozszerzenia stanie się niedostępna w obiekcie katalogu docelowego. Jeśli rozszerzenie zostanie usunięte przez aplikację, również stanie się niedostępne w obiekcie katalogu docelowego. Jeśli aplikacja wielodostępna doda dodatkowe właściwości rozszerzenia po przyznaniu zgody, te właściwości staną się natychmiast dostępne w katalogu innej organizacji.

Uwaga

Jeśli wartość właściwości rozszerzenia jest ustawiona na obiekcie i ta właściwość stanie się niedostępna w katalogu tego obiektu, właściwość nadal liczy się względem limitu 100 wartości właściwości rozszerzenia tego obiektu. Jedynym sposobem na to, aby nie brać pod uwagę wartości właściwości po jej ustawieniu, jest jej jawne ustawienie na wartość null. Nie możesz tego zrobić, jeśli właściwość rozszerzenia jest niedostępna.

Więcej informacji o właściwościach rozszerzenia przeczytasz w tym artykule.

Przykłady

W tych przykładach będziemy używać obiektu użytkownika i pracować z właściwościami rozszerzenia. Najpierw znajdziemy identyfikator obiektu użytkownika, aby można było się łatwo do niego odwoływać później:

$UserId = (Get-AzureADUser -Searchstring <UPN of the user we're working with>).ObjectId 

Pobierz wszystkie wartości właściwości użytkownika

(Get-AzureADUser -ObjectId $UserId).ToJson()

Pobierz użytkownika i wyświetl wszystkie właściwości rozszerzenia

Get-AzureADUser -ObjectId $UserId | Select -ExpandProperty ExtensionProperty

To polecenie cmdlet zwraca wszystkie właściwości rozszerzenia użytkownika wraz z ich bieżącymi wartościami:

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 

Pobieranie wartości określonej właściwości rozszerzenia dla użytkownika

(Get-AzureADUserExtension -ObjectId $UserId).get_item("extension_e5e29b8a85d941eab8d12162bd004528_wWWHomePage")

Pobierz wszystkie właściwości rozszerzenia, które są zdefiniowane w Twojej dzierżawie

Get-AzureADApplication | Get-AzureADApplicationExtensionProperty 

Utwórz nową właściwość rozszerzenia

Właściwości rozszerzenia są zawsze tworzone dla określonej aplikacji. Jeśli chcesz dodać ogólne właściwości do swojego katalogu, możesz utworzyć aplikację zastępczą:

$MyApp = (New-AzureADApplication -DisplayName "My Properties Bag" -IdentifierUris "https://dummy").ObjectId 

Pamiętaj, że musisz utworzyć jednostkę usługi dla tej aplikacji również w swoim katalogu, aby było możliwe utworzenie nowej właściwości rozszerzenia:

New-AzureADServicePrincipal -AppId (Get-AzureADApplication -SearchString "My Properties Bag").AppId 

Teraz możemy użyć tej aplikacji, aby utworzyć nową właściwość rozszerzenia:

New-AzureADApplicationExtensionProperty -ObjectId $MyApp -Name "MyNewProperty" -DataType "String" -TargetObjects "User" 

Po pomyślnym zakończeniu działania polecenia cmdlet zwraca ono nowy obiekt atrybutu rozszerzenia:

ObjectId                             Name                                                     TargetObjects
--------                             ----                                                     -------------
91ec8ae5-6813-4453-afd7-31680a484892 extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty {User}

Uwaga

Nazwa nowej właściwości jest generowana na podstawie formatu "Extension_" + objectID aplikacji zastępczej + <"_" + <nazwy nowej właściwości>.> Dokładna wartość nazwy będzie więc różna dla różnych tworzonych przez Ciebie aplikacji. Właściwość można przypisać do więcej niż jednego typu obiektu. W naszym przykładzie użyliśmy tylko jednego obiektu docelowego — „Użytkownik”, ale można było również określić „Użytkownik”, „Grupa”, przy czym spowodowałoby to przypisanie obiektu zarówno do obiektu użytkownika, jak i obiektu grupy.

Ustawianie wartości dla właściwości rozszerzenia

Korzystając z właściwości rozszerzenia, która była używana w poprzednim przykładzie, możemy teraz przypisać do niej wartość:

Set-AzureADUserExtension -ObjectId $UserId -ExtensionName "extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty" -ExtensionValue "MyNewValue" 

Pobieranie wszystkich atrybutów rozszerzenia, które są zdefiniowane dla Twojej aplikacji

Możesz pobrać listę atrybutów rozszerzenia, które zostały zdefiniowane dla Twojej aplikacji:

Get-AzureADApplicationExtensionProperty -ObjectId (Get-AzureADApplication -SearchString "My Properties Bag").ObjectId 

To polecenie cmdlet zwraca listę właściwości rozszerzenia w Twojej aplikacji:

ObjectId                             Name                                                      TargetObjects
--------                             ----                                                      -------------

91ec8ae5-6813-4453-afd7-31680a484892 extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty  {User}

Usuwanie właściwości rozszerzenia

Jeśli nie potrzebujesz już właściwości rozszerzenia, możesz ją usunąć:

Remove-AzureADApplicationExtensionProperty -ObjectId (Get-AzureADApplication -SearchString "My Properties Bag").ObjectID -ExtensionPropertyId 91ec8ae5-6813-4453-afd7-31680a484892 

Uwaga

Nie można usunąć atrybutu z Azure AD raz rozszerzone ani usunąć Tenant Schema Extension App bez zgłaszania żądania do zespołu payOps. Ponadto wyłączenie opcji rozszerzeń katalogu z kreatora Azure AD nie spowoduje usunięcia atrybutów ani pozbycia się aplikacji.