Servizio di sincronizzazione Azure AD Connect: Informazioni sulle espressioni di provisioning dichiarativoAzure AD Connect sync: Understanding Declarative Provisioning Expressions

Il servizio di sincronizzazione Azure AD Connect si basa sul provisioning dichiarativo introdotto inizialmente in Forefront Identity Manager 2010.Azure AD Connect sync builds on declarative provisioning first introduced in Forefront Identity Manager 2010. Consente di implementare la logica di business completa per l'integrazione delle identità senza dover scrivere codice compilato.It allows you to implement your complete identity integration business logic without the need to write compiled code.

Una parte essenziale del provisioning dichiarativo è il linguaggio delle espressioni usato nei flussi di attributi.An essential part of declarative provisioning is the expression language used in attribute flows. Il linguaggio usato è un subset di Microsoft® Visual Basic®, Applications Edition (VBA).The language used is a subset of Microsoft® Visual Basic® for Applications (VBA). Questo linguaggio viene usato in Microsoft Office e verrà riconosciuto anche dagli utenti con esperienza in VBScript.This language is used in Microsoft Office and users with experience of VBScript will also recognize it. Il linguaggio delle espressioni di provisioning dichiarativo usa solo funzioni e non è un linguaggio strutturato,The Declarative Provisioning Expression Language is only using functions and is not a structured language. né include metodi o istruzioni.There are no methods or statements. Le funzioni sono invece annidate per esprimere il flusso dei programmi.Functions are instead nested to express program flow.

Per altre informazioni dettagliate, vedere i riferimenti per il linguaggio Visual Basic, Applications Edition per Office 2013.For more details, see Welcome to the Visual Basic for Applications language reference for Office 2013.

Gli attributi sono fortemente tipizzati.The attributes are strongly typed. Una funzione accetta solo gli attributi del tipo corretto.A function only accepts attributes of the correct type. Fa anche distinzione tra maiuscole e minuscole.It is also case-sensitive. Se per i nomi delle funzioni e degli attributi non viene rispettata correttamente la distinzione maiuscole/minuscole, viene generato un errore.Both function names and attribute names must have proper casing or an error is thrown.

Definizioni e identificatori del linguaggioLanguage definitions and Identifiers

  • I nomi delle funzioni sono seguiti dagli argomenti racchiusi tra parentesi: NomeFunzione(argomento 1,argomento N).Functions have a name followed by arguments in brackets: FunctionName(argument 1, argument N).
  • Gli attributi sono identificati da parentesi quadre: [attributeName].Attributes are identified by square brackets: [attributeName]
  • I parametri sono identificati dal segno di percentuale: %ParameterName%Parameters are identified by percent signs: %ParameterName%
  • Le costanti di stringa sono racchiuse tra virgolette: ad esempio, "Contoso" (Nota: è necessario usare le virgolette semplici "", non quelle non inglesi “”)String constants are surrounded by quotes: For example, "Contoso" (Note: must use straight quotes "" and not smart quotes “”)
  • I valori numerici sono espressi senza virgolette e devono essere decimali.Numeric values are expressed without quotes and expected to be decimal. Ai valori esadecimali viene aggiunto un prefisso di tipo &H.Hexadecimal values are prefixed with &H. Ad esempio, 98052, &HFFFor example, 98052, &HFF
  • I valori booleani sono espressi con costanti: True, False.Boolean values are expressed with constants: True, False.
  • Le costanti predefinite sono espresse solo tramite il relativo nome: NULL, CRLF, IgnoreThisFlowBuilt-in constants and literals are expressed with only their name: NULL, CRLF, IgnoreThisFlow

FunzioniFunctions

Il provisioning dichiarativo usa molte funzioni per rendere possibile la trasformazione dei valori dell'attributo.Declarative provisioning uses many functions to enable the possibility to transform attribute values. Queste funzioni possono essere annidate, in modo che il risultato di una funzione venga passato a un'altra.These functions can be nested so the result from one function is passed in to another function.

Function1(Function2(Function3()))

L'elenco completo delle funzioni è disponibile nel riferimento di funzione.The complete list of functions can be found in the function reference.

ParametriParameters

Un parametro è definito da un connettore o da un amministratore tramite PowerShell.A parameter is defined either by a Connector or by an administrator using PowerShell. I parametri includono in genere valori diversi da un sistema all'altro, ad esempio il nome del dominio in cui si trova l'utente.Parameters usually contain values that are different from system to system, for example the name of the domain the user is located in. Questi parametri possono essere usati nei flussi degli attributi.These parameters can be used in attribute flows.

Active Directory Connector fornisce i parametri seguenti per le regole di sincronizzazione in entrata:The Active Directory Connector provided the following parameters for inbound Synchronization Rules:

Nome parametroParameter Name CommentoComment
Domain.NetbiosDomain.Netbios Formato Netbios del dominio attualmente importato, ad esempio FABRIKAMSALESNetbios format of the domain currently being imported, for example FABRIKAMSALES
Domain.FQDNDomain.FQDN Formato FQDN del dominio attualmente importato, ad esempio sales.fabrikam.comFQDN format of the domain currently being imported, for example sales.fabrikam.com
Domain.LDAPDomain.LDAP Formato LDAP del dominio attualmente importato, ad esempio DC=sales,DC=fabrikam,DC=comLDAP format of the domain currently being imported, for example DC=sales,DC=fabrikam,DC=com
Forest.NetbiosForest.Netbios Formato Netbios del nome della foresta attualmente importata, ad esempio FABRIKAMCORPNetbios format of the forest name currently being imported, for example FABRIKAMCORP
Forest.FQDNForest.FQDN Formato FQDN del nome della foresta attualmente importato, ad esempio FABRIKAMCORPFQDN format of the forest name currently being imported, for example fabrikam.com
Forest.LDAPForest.LDAP Formato FQDN del nome della foresta attualmente importato, ad esempio DC=fabrikam,DC=comLDAP format of the forest name currently being imported, for example DC=fabrikam,DC=com

Il sistema fornisce il parametro seguente, usato per ottenere l'identificatore del connettore attualmente in esecuzione: The system provides the following parameter, which is used to get the identifier of the Connector currently running:
Connector.ID

L'esempio seguente popola il dominio dell'attributo metaverse con il nome netbios del dominio in cui si trova l'utente: Here is an example that populates the metaverse attribute domain with the netbios name of the domain where the user is located:
domain <- %Domain.Netbios%

OperatoriOperators

È possibile usare gli operatori seguenti:The following operators can be used:

  • Confronto: <, <=, <>, =, >, >=Comparison: <, <=, <>, =, >, >=
  • Matematici: +, -, *, -Mathematics: +, -, *, -
  • Stringa: & (concatenazione)String: & (concatenate)
  • Logici: && (AND), || (OR)Logical: && (and), || (or)
  • Ordine di valutazione: ( )Evaluation order: ( )

Gli operatori vengono valutati da sinistra a destra e hanno la stessa priorità di valutazione.Operators are evaluated left to right and have the same evaluation priority. Ad esempio, * (moltiplicazione) non viene valutato prima di - (sottrazione).That is, the * (multiplier) is not evaluated before - (subtraction). L'operazione 2*(5+3) è diversa da 2*5+3.2*(5+3) is not the same as 2*5+3. Le parentesi ( ) vengono usate per modificare l'ordine di valutazione quando un ordine da sinistra a destra non è appropriato.The brackets ( ) are used to change the evaluation order when left to right evaluation order isn't appropriate.

Attributi multivaloreMulti-valued attributes

Le funzioni possono essere usate con gli attributi a valore singolo e multivalore.The functions can operate on both single-valued and multi-valued attributes. Per gli attributi multivalore la funzione agisce su ogni valore e viene applicata la stessa funzione a ogni valore.For multi-valued attributes, the function operates over every value and applies the same function to every value.

Ad esempio For example:
Trim([proxyAddresses]) esegue un trimming di ogni valore nell'attributo proxyAddress.Trim([proxyAddresses]) Do a Trim of every value in the proxyAddress attribute.
Word([proxyAddresses],1,"@") & "@contoso.com" Per ogni valore che contiene un carattere @-sign, sostituire il dominio con @contoso.com.Word([proxyAddresses],1,"@") & "@contoso.com" For every value with an @-sign, replace the domain with @contoso.com.
IIF(InStr([proxyAddresses],"SIP:")=1,NULL,[proxyAddresses]) Cercare l'indirizzo SIP e rimuoverlo dai valori.IIF(InStr([proxyAddresses],"SIP:")=1,NULL,[proxyAddresses]) Look for the SIP-address and remove it from the values.

Passaggi successiviNext steps

Argomenti generaliOverview topics

Argomenti di riferimentoReference topics