Informazioni sulle espressioni di provisioning dichiarativo
Aggiornato: 22 luglio 2015
Importante
Questo argomento verrà archiviato a breve.
È disponibile un nuovo prodotto denominato "Azure Active Directory Connect" che sostituisce AADSync e DirSync.
Azure AD Connect incorpora i componenti e le funzionalità rilasciati in precedenza come Dirsync e AAD Sync.
A un certo punto, il supporto per Dirsync e Sincronizzazione AAD terminerà.
Questi strumenti non vengono più aggiornati singolarmente con miglioramenti delle funzionalità e tutti i miglioramenti futuri verranno inclusi negli aggiornamenti di Azure AD Connect.
Azure Active Directory Synchronization Services (AAD Sync) si basa sul provisioning dichiarativo introdotto per la prima volta in Forefront Identity Manager 2010 per consentire di implementare la logica di business di integrazione delle identità completa senza dover scrivere codice.
Una parte essenziale del provisioning dichiarativo è il linguaggio delle espressioni usato nei flussi di attributi. Il linguaggio usato è un subset di Microsoft® Visual Basic®, Applications Edition (VBA). Questo linguaggio viene usato in Microsoft Office e gli utenti con esperienza di VBScript lo riconosceranno anche. Il linguaggio delle espressioni di provisioning dichiarativo usa solo le funzioni e non è un linguaggio strutturato; non esistono metodi o istruzioni. Le funzioni verranno invece annidate per esprimere il flusso del programma.
Per altre informazioni, vedere Informazioni di riferimento sul linguaggio di Visual Basic, Applications Edition per Office 2013.
Gli attributi sono fortemente tipizzato. Una funzione che prevede un attributo stringa a valore singolo non accetterà attributi o multivalore di un tipo diverso. Fa anche distinzione tra maiuscole e minuscole. Sia i nomi delle funzioni che i nomi degli attributi devono avere maiuscole e minuscole appropriate o verrà generato un errore
Definizioni e identificatori del linguaggio
Le funzioni hanno un nome seguito da argomenti tra parentesi quadre: FunctionName(<<argomento 1>>,<<argomento N>>).
Gli attributi sono identificati tra parentesi quadre: [attributeName]
I parametri sono identificati dai segni di percentuale: %ParameterName%
Le costanti stringa sono racchiuse tra virgolette: ad esempio "Contoso"
I valori numerici sono espressi senza virgolette e devono essere decimali. I valori esadecimali sono preceduti da &H. Ad esempio, 98052, &HFF
I valori booleani sono espressi con costanti: True, False.
Le costanti predefinite vengono espresse solo con il nome: NULL, CRLF, IgnoreThisFlow
Operatori
È possibile usare gli operatori seguenti:
confronto: <, <=, <>, =, >, >=
matematica: +, -, *, -
stringhe: & (concatenazione)
logico : && (e) || (o)
ordine di valutazione: ( )
Gli operatori vengono valutati da sinistra a destra. 2*(5+3) non è uguale a 2*5+3. Le parentesi quadre ( ) vengono usate per modificare l'ordine di valutazione.
Parametri
Un parametro viene definito da un connettore o da un amministratore tramite PowerShell. I parametri contengono in genere valori diversi dal sistema al sistema, ad esempio il nome del dominio in cui si trova l'utente. Questi valori possono essere usati nei flussi di attributi.
Active Directory Connector ha fornito i parametri seguenti per le regole di sincronizzazione in ingresso:
Domain.Netbios |
Domain.FQDN |
Domain.LDAP |
Forest.Netbios |
Forest.FQDN |
Forest.LDAP |
Il sistema fornisce il parametro seguente:
Connector.ID
Esempio che popola il dominio dell'attributo metaverse con il nome netbios del dominio in cui si trova l'utente.
domain <: %Domain. Netbios%
Scenari comuni
Lunghezza degli attributi
Gli attributi stringa sono impostati per impostazione predefinita per essere indicizzati e la lunghezza massima è di 448 caratteri. Se si utilizzano attributi stringa che potrebbero contenere più attributi, assicurarsi di includere quanto segue nel flusso dell'attributo:
attributeName <- Left([attributeName],448)
Modifica di userPrincipalSuffix
L'attributo userPrincipalName in Active Directory non è sempre noto agli utenti e potrebbe non essere adatto come ID di accesso. La guida all'installazione di AAD Sync consente di selezionare un attributo diverso, ad esempio la posta elettronica. In alcuni casi, tuttavia, è necessario calcolare l'attributo . Ad esempio, la società Contoso ha due directory AAD, una per la produzione e una per i test. Vogliono che gli utenti nel tenant di test modifichino semplicemente il suffisso nell'ID di accesso.userPrincipalName <- Word([userPrincipalName],1,"@") & "@contosotest.com"
In questa espressione vengono accettati tutti gli elementi rimanenti del primo @-sign (Word) e concatenati con una stringa fissa.
Convertire un multivalore in un valore singolo
Alcuni attributi in Active Directory sono multivalore nello schema anche se hanno un valore singolo in Utenti e computer di Active Directory. Un esempio è l'attributo description.
In questa espressione, nel caso in cui l'attributo abbia un valore, prendiamo il primo elemento (Item) nell'attributo, rimuoviamo spazi iniziali e finali (Trim) e quindi manterranno i primi 448 caratteri (a sinistra) nella stringa.
Concetto avanzato
NULL e IgnoreThisFlow
Per le regole di sincronizzazione in ingresso, è consigliabile usare sempre la costante NULL. Ciò indica che il flusso non ha alcun valore da contribuire e un'altra regola può contribuire a un valore. Se nessuna regola ha contribuito a un valore, l'attributo metaverse viene rimosso.
Per le regole di sincronizzazione in uscita sono disponibili due costanti diverse da usare: NULL e IgnoreThisFlow. Entrambi indicano che il flusso dell'attributo non ha nulla da contribuire, ma la differenza è ciò che accade quando nessun'altra regola ha nulla da contribuire. Se nella directory connessa è presente un valore esistente, un valore NULL eseguirà un'eliminazione nell'attributo rimuovendolo mentre IgnoreThisFlow manterrà il valore esistente.
ImportValue
La funzione ImportedValues è diversa da tutte le altre funzioni perché il nome dell'attributo deve essere racchiuso tra virgolette anziché parentesi quadre: ImportedValue("proxyAddresses").
In genere durante la sincronizzazione un attributo userà il valore previsto, anche se non è ancora stato esportato o è stato ricevuto un errore durante l'esportazione ("parte superiore della torre"). Una sincronizzazione in ingresso presuppone che un attributo che non ha ancora raggiunto una directory connessa lo raggiungerà. In alcuni casi è importante sincronizzare solo un valore confermato dalla directory connessa e in questo caso viene usata la funzione ImportedValue ("ologramma e torre di importazione differenziale").
Un esempio di questo è disponibile nella regola di sincronizzazione predefinita in da AD - User Common from Exchange dove in Hybrid Exchange il valore aggiunto da Exchange Online deve essere sincronizzato solo se è stato confermato che il valore è stato esportato correttamente:
proxyAddresses <- RemoveDuplicates(Trim(ImportedValues(“proxyAddresses”)))
Elenco di funzioni
Conversione
CBool |
CDate |
CGuid |
ConvertFromBase64 |
ConvertToBase64 |
ConvertFromHex |
ConvertToHex |
CNum |
CRef |
CStr |
StringFromGuid |
StringFromSid |
Data/ora
DateAdd |
DateFromNum |
FormatDateTime |
Ora |
NumFromDate |
Directory
DNComponent |
DNComponentRev |
EscapeDNComponent |
Ispezione
IsBitSet |
IsDate |
IsEmpty |
IsGuid |
IsNull |
IsNullOrEmpty |
IsNumeric |
IsPresent |
IsString |
Matematica
BitAnd |
BitOr |
RandomNum |
Multivalore
Contiene |
Contare |
Articolo |
Unire |
RemoveDuplicates |
Diviso |
Flusso di programma
Errore |
IIF |
Interruttore |
Testo
GUID |
Instr |
InStrRev |
LCase |
A sinistra |
Len |
LTrim |
Metà |
PadLeft |
PadRight |
PCase |
Sostituire |
ReplaceChars |
A destra |
RTrim |
Tagliare |
UCase |
Parola |
Speciale
ImportValues