Cmdlet di Azure AD per usare gli attributi dell'estensione

Attributi di estensione

Gli attributi di estensione offrono un modo pratico per estendere la directory di Azure AD con nuovi attributi che è possibile usare per archiviare i valori dell'attributo per gli oggetti nella directory. È possibile collegare un attributo di estensione per i tipi di oggetto seguenti:

  • user
  • dettagli del tenant
  • devices
  • scala Web

Le proprietà dell'estensione vengono registrate in un oggetto Applicazione all'interno della directory dello sviluppatore. Dopo che è stato concesso il consenso all'applicazione da un utente o un amministratore della directory dello sviluppatore, la proprietà viene aggiunta al tipo di directory di destinazione e diventa immediatamente accessibile nella directory dello sviluppatore. Per un'applicazione multi-tenant, quando all'applicazione viene concesso il consenso da un utente o un amministratore di un'altra organizzazione, le proprietà dell'estensione diventano immediatamente accessibili per il tipo di directory di destinazione nella directory dell'organizzazione.

Se un'organizzazione concede le autorizzazioni di "sola lettura" per un'applicazione con estensioni registrate, la proprietà diventeranno comunque accessibili nell'altra directory dell'organizzazione. Inoltre, le proprietà dell'estensione sono accessibili da qualsiasi applicazione consentita in un'organizzazione, non solo per l'applicazione in cui vengono registrate. Altre applicazioni autorizzate dell'organizzazione possono leggere o scrivere valori per la nuova proprietà di estensione se dispongono di autorizzazioni sufficienti.

Se l'applicazione viene eliminata o viene rimosso il consenso nella directory dell'organizzazione, la proprietà dell'estensione non è accessibile nell'oggetto della directory di destinazione. Se l'estensione viene eliminata dall'applicazione, anche questa diventa inaccessibile per l'oggetto della directory di destinazione. Se un'applicazione multi-tenant aggiunge altre proprietà dell'estensione dopo aver ottenuto l'autorizzazione, le proprietà diventano immediatamente accessibili nella directory dell'organizzazione.

Nota

Se il valore di una proprietà di estensione viene impostato su un oggetto e tale proprietà diventa inaccessibile nella directory dell'oggetto, la proprietà viene comunque conteggiato rispetto al limite di tale oggetto di 100 valori delle proprietà di estensione. L'unico modo per rimuovere il valore della proprietà preso in considerazione, dopo averlo impostato, è impostarlo in modo esplicito su null. Non è possibile eseguire questa operazione se la proprietà dell'estensione non è accessibile.

Altre informazioni sulle proprietà di estensione possono essere reperite in questo articolo.

Esempio

In questi esempi si useranno un oggetto utente e le proprietà di estensione. Viene individuato innanzitutto l'ObjectId dell'utente in modo che sia possibile farvi riferimento in seguito:

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

Ottenere tutti i valori di proprietà di un utente

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

Ottenere un utente e mostrare tutte le proprietà di estensione

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

Questo cmdlet restituisce tutte le proprietà dell'estensione di un utente con i relativi valori correnti:

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 

Recuperare il valore di una proprietà di estensione specifica per un utente

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

Recuperare tutte le proprietà dell'estensione definite nel tenant

Get-AzureADApplication | Get-AzureADApplicationExtensionProperty 

Creare una nuova proprietà dell'estensione

Le proprietà dell'estensione vengono sempre create per un'applicazione specifica. Se si desidera aggiungere le proprietà generiche alla directory, è possibile creare un'applicazione segnaposto:

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

Si noti che è necessario creare anche un'entità servizio per questa applicazione nella directory, così da poter creare una nuova proprietà dell'estensione:

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

A questo punto è possibile usare questa applicazione per creare una nuova proprietà dell'estensione:

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

Quando il cmdlet viene completato correttamente restituisce il nuovo oggetto attributo di estensione:

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

Nota

Il nome della nuova proprietà viene generato dal formato "Extension_" + objectID dell'applicazione segnaposto + <"_" + <dal nome della nuova proprietà>.> Il valore esatto del nome sarà diverso per le diverse applicazioni create. È possibile assegnare una proprietà a più tipi di oggetto. Nell'esempio viene usato solo un TargetObject, "User", ma nel caso si specifichi "User", "Group", l'oggetto verrà assegnato agli oggetti utente e gruppo.

Impostare i valori per le proprietà dell'estensione

Con la proprietà dell'estensione che è stata usata nell'esempio precedente, è possibile assegnare un valore:

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

Recupero di tutti gli attributi di estensione definiti per l'applicazione

È possibile recuperare l'elenco degli attributi di estensione definiti per l'applicazione:

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

Questo cmdlet restituisce l'elenco delle proprietà dell'estensione dell'applicazione:

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

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

Eliminazione delle proprietà di estensione

Se non è più necessaria, è possibile eliminare una proprietà di estensione:

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

Nota

Non è possibile rimuovere l'attributo da Azure AD una volta esteso né eliminare senza Tenant Schema Extension App generare una richiesta al team PayOps. Inoltre, la disattivazione dell'opzione estensioni di directory dalla procedura guidata di Azure AD non rimuove gli attributi o consente di eliminare l'app.