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.