Servizio di sincronizzazione Azure AD Connect: Informazioni sul provisioning dichiarativoAzure AD Connect sync: Understanding Declarative Provisioning

Questo argomento illustra il modello di configurazione in Azure AD Connect.This topic explains the configuration model in Azure AD Connect. Il modello è denominato provisioning dichiarativo e consente di modificare una configurazione con facilità.The model is called Declarative Provisioning and it allows you to make a configuration change with ease. Molte operazioni descritte in questo argomento sono avanzate e non necessarie per la maggior parte degli scenari dei clienti.Many things described in this topic are advanced and not required for most customer scenarios.

OverviewOverview

Il provisioning dichiarativo è l'elaborazione di oggetti provenienti da una directory di origine connessa e determina il modo in cui l'oggetto e gli attributi devono essere trasformati da un'origine a una destinazione.Declarative provisioning is processing objects coming in from a source connected directory and determines how the object and attributes should be transformed from a source to a target. Un oggetto viene elaborato in una pipeline di sincronizzazione e la pipeline è la stessa per le regole in ingresso e in uscita.An object is processed in a sync pipeline and the pipeline is the same for inbound and outbound rules. Una regola in ingresso origina da uno spazio connettore e ha come destinazione il metaverse, mentre una regola in uscita ha origine nel metaverse e ha come destinazione uno spazio connettore.An inbound rule is from a connector space to the metaverse and an outbound rule is from the metaverse to a connector space.

Pipeline di sincronizzazione

La pipeline include diversi moduli.The pipeline has several different modules. Ognuno di essi è responsabile di un concetto nella sincronizzazione degli oggetti.Each one is responsible for one concept in object synchronization.

Pipeline di sincronizzazione

  • Origine, l'oggetto di origineSource, The source object
  • Ambito, consente di trovare tutte le regole di sincronizzazione che si trovano nell'ambitoScope, Finds all sync rules that are in scope
  • Join, determina la relazione tra spazio connettore e metaverseJoin, Determines relationship between connector space and metaverse
  • Trasformazione, calcola la modalità di trasformazione e il flusso degli attributiTransform, Calculates how attributes should be transformed and flow
  • Precedenza, risolve i conflitti tra attributiPrecedence, Resolves conflicting attribute contributions
  • Destinazione, l'oggetto di destinazioneTarget, The target object

AmbitoScope

Il modulo scope valuta un oggetto e determina le regole che si trovano nell'ambito e devono essere incluse nell'elaborazione.The scope module is evaluating an object and determines the rules that are in scope and should be included in the processing. A seconda dei valori degli attributi sull'oggetto, viene valutata la presenza di diverse regole di sincronizzazione nell'ambito.Depending on the attributes values on the object, different sync rules are evaluated to be in scope. Ad esempio, un utente disabilitato senza alcuna cassetta postale di Exchange ha regole diverse rispetto a un utente abilitato che ha una cassetta postale.For example, a disabled user with no Exchange mailbox does have different rules than an enabled user with a mailbox.
Ambito

L'ambito è definito sotto forma di gruppi e clausole.The scope is defined as groups and clauses. Le clausole si trovano all'interno di un gruppo.The clauses are inside a group. Tra tutte le clausole in un gruppo viene usato un operatore logico AND.A logical AND is used between all clauses in a group. Ad esempio, (department =IT AND country = Denmark).For example, (department =IT AND country = Denmark). Viene usato un operatore logico OR tra gruppi.A logical OR is used between groups.

Ambito
L'ambito in questa immagine deve essere letto come (department = IT AND country = Denmark) OR (country=Sweden).The scope in this picture should be read as (department = IT AND country = Denmark) OR (country=Sweden). Se il gruppo 1 o il gruppo 2 viene valutato su true, la regola si trova nell'ambito.If either group 1 or group 2 is evaluated to true, then the rule is in scope.

Il modulo dell'ambito supporta le operazioni seguenti.The scope module supports the following operations.

OperazioneOperation DescrizioneDescription
EQUAL, NOTEQUALEQUAL, NOTEQUAL Confronto di stringhe che valuta se il valore è uguale al valore dell'attributo.A string compare that evaluates if value is equal to the value in the attribute. Per gli attributi multivalore, vedere ISIN e ISNOTIN.For multi-valued attributes, see ISIN and ISNOTIN.
LESSTHAN, LESSTHAN_OR_EQUALLESSTHAN, LESSTHAN_OR_EQUAL Confronto di stringhe che valuta se il valore è minore del valore dell'attributo.A string compare that evaluates if value is less than of the value in the attribute.
CONTAINS, NOTCONTAINSCONTAINS, NOTCONTAINS Confronto di stringhe che valuta se il valore è presente nel valore dell'attributo.A string compare that evaluates if value can be found somewhere inside value in the attribute.
STARTSWITH, NOTSTARTSWITHSTARTSWITH, NOTSTARTSWITH Confronto di stringhe che valuta se il valore è all'inizio del valore dell'attributo.A string compare that evaluates if value is in the beginning of the value in the attribute.
ENDSWITH, NOTENDSWITHENDSWITH, NOTENDSWITH Confronto di stringhe che valuta se il valore è alla fine del valore dell'attributo.A string compare that evaluates if value is in the end of the value in the attribute.
GREATERTHAN, GREATERTHAN_OR_EQUALGREATERTHAN, GREATERTHAN_OR_EQUAL Confronto di stringhe che valuta se il valore è maggiore del valore dell'attributo.A string compare that evaluates if value is greater than of the value in the attribute.
ISNULL, ISNOTNULLISNULL, ISNOTNULL Valuta se l'attributo è assente dall'oggetto.Evaluates if the attribute is absent from the object. Se l'attributo non è presente e quindi è null, la regola si trova nell'ambito.If the attribute is not present and therefore null, then the rule is in scope.
ISIN, ISNOTINISIN, ISNOTIN Valuta se il valore è presente nell'attributo definito.Evaluates if the value is present in the defined attribute. Questa operazione è la variante multivalore di EQUAL e NOTEQUAL.This operation is the multi-valued variation of EQUAL and NOTEQUAL. L'attributo deve essere un attributo multivalore e se il valore è presente in uno dei valori dell'attributo, la regola si trova nell'ambito.The attribute is supposed to be a multi-valued attribute and if the value can be found in any of the attribute values, then the rule is in scope.
ISBITSET, ISNOTBITSETISBITSET, ISNOTBITSET Valuta se un determinato bit è impostato.Evaluates if a particular bit is set. Può essere ad esempio usato per valutare i bit di userAccountControl per vedere se un utente è abilitato o disabilitato.For example, can be used to evaluate the bits in userAccountControl to see if a user is enabled or disabled.
ISMEMBEROF, ISNOTMEMBEROFISMEMBEROF, ISNOTMEMBEROF Il valore deve contenere un nome distinto per un gruppo nello spazio connettore.The value should contain a DN to a group in the connector space. Se l'oggetto è un membro del gruppo specificato, la regola si trova nell'ambito.If the object is a member of the group specified, the rule is in scope.

JoinJoin

Il modulo join nella pipeline di sincronizzazione provvede a trovare la relazione tra l'oggetto nell'origine e un oggetto nella destinazione.The join module in the sync pipeline is responsible for finding the relationship between the object in the source and an object in the target. In una regola in ingresso, questa relazione sarebbe rappresentata da un oggetto in uno spazio connettore che trova una relazione con un oggetto nel metaverse.On an inbound rule, this relationship would be an object in a connector space finding a relationship to an object in the metaverse.
Join tra cs e mv
L'obiettivo è verificare se è già presente un oggetto nel metaverse, creato da un altro connettore, con cui eseguire l'associazione.The goal is to see if there is an object already in the metaverse, created by another Connector, it should be associated with. In una foresta di account e risorse, ad esempio, l'utente della foresta di account deve essere unito all'utente della foresta di risorse.For example, in an account-resource forest the user from the account forest should be joined with the user from the resource forest.

I join vengono usati principalmente nelle regole in ingresso per unire gli oggetti dello spazio connettore con lo stesso oggetto del metaverse.Joins are used mostly on inbound rules to join connector space objects together to the same metaverse object.

I join sono definiti come uno o più gruppi.The joins are defined as one or more groups. All'interno di un gruppo sono presenti clausole.Inside a group, you have clauses. Tra tutte le clausole in un gruppo viene usato un operatore logico AND.A logical AND is used between all clauses in a group. Viene usato un operatore logico OR tra gruppi.A logical OR is used between groups. I gruppi vengono elaborati dall'alto verso il basso.The groups are processed in order from top to bottom. Quando un gruppo trova esattamente una corrispondenza con un oggetto nella destinazione, non vengono valutate altre regole di unione.When one group has found exactly one match with an object in the target, then no other join rules are evaluated. Se non vengono trovati oggetti o ne viene trovato più di uno, l'elaborazione continua con il gruppo di regole successivo.If zero or more than one object is found, processing continues to the next group of rules. Per questo motivo, le regole devono essere create seguendo l'ordine dalla più esplicita alla più fuzzy.For this reason, the rules should be created in the order of most explicit first and more fuzzy at the end.
Definizione join
I join in questa immagine vengono elaborati dall'alto verso il basso.The joins in this picture are processed from top to bottom. La pipeline di sincronizzazione verifica prima di tutto se è presente una corrispondenza in employeeID.First the sync pipeline sees if there is a match on employeeID. Se non sono presenti corrispondenze, la seconda regola verifica se è possibile usare il nome account per unire gli oggetti.If not, the second rule sees if the account name can be used to join the objects together. Se neanche in questo caso vengono trovate corrispondenze, la terza e ultima regola rappresenta una corrispondenza fuzzy che usa il nome dell'utente.If that is not a match either, the third and final rule is a more fuzzy match by using the name of user.

Se tutte le regole di join sono state valutate e non è presente esattamente una corrispondenza, verrà usato il valore di Link Type (Tipo di collegamento) indicato nella pagina Description (Descrizione).If all join rules have been evaluated and there is not exactly one match, the Link Type on the Description page is used. Se per questa impostazione è specificato il valore Provision(Provisioning), nella destinazione verrà creato un nuovo oggetto.If this option is set to Provision, then a new object in the target is created.
Provisioning o joinProvision or join

Un oggetto deve avere una sola regola di sincronizzazione con regole di join nell'ambito.An object should only have one single sync rule with join rules in scope. Se sono presenti più regole di sincronizzazione in cui è definito il join, si verificherà un errore.If there are multiple sync rules where join is defined, an error occurs. La precedenza non viene usata per risolvere i conflitti di join.Precedence is not used to resolve join conflicts. Un oggetto deve avere una regola di join nell'ambito per far sì che gli attributi vengano trasferiti nella stessa direzione in ingresso/in uscita.An object must have a join rule in scope for attributes to flow with the same inbound/outbound direction. Se è necessario trasferire gli attributi sia in ingresso che in uscita nello stesso oggetto, è necessario avere una regola di sincronizzazione sia in ingresso che in uscita con il join.If you need to flow attributes both inbound and outbound to the same object, you must have both an inbound and an outbound sync rule with join.

Il join in uscita presenta un comportamento particolare quando prova a effettuare il provisioning di un oggetto in uno spazio connettore di destinazione.Outbound join has a special behavior when it tries to provision an object to a target connector space. Viene usato l'attributo DN per tentare prima un join inverso.The DN attribute is used to first try a reverse-join. Se nello spazio connettore di destinazione esiste già un oggetto con lo stesso DN, gli oggetti verranno uniti.If there is already an object in the target connector space with the same DN, the objects are joined.

Il modulo join viene valutato una sola volta quando una nuova regola di sincronizzazione entra nell'ambito.The join module is only evaluated once when a new sync rule comes into scope. Un oggetto unito non verrà separato anche se i criteri del join non sono più soddisfatti.When an object has joined, it is not disjoining even if the join criteria is no longer satisfied. Per separare un oggetto è necessario che la regola di sincronizzazione che ha unito gli oggetti esca dall'ambito.If you want to disjoin an object, the sync rule that joined the objects must go out of scope.

Eliminazione di metaverseMetaverse delete

Un oggetto del metaverse è presente finché l'ambito contiene una regola di sincronizzazione con Link Type (Tipo di collegamento) impostato su Provision (Provisioning) o StickyJoin.A metaverse object remains as long as there is one sync rule in scope with Link Type set to Provision or StickyJoin. Uno StickyJoin viene usato quando a un connettore non è consentito effettuare il provisioning di un nuovo oggetto nel metaverse, ma quando è unita in join, devono essere eliminato nell'origine prima che venga eliminato l'oggetto del metaverse.A StickyJoin is used when a Connector is not allowed to provision a new object to the metaverse, but when it has joined, it must be deleted in the source before the metaverse object is deleted.

Quando viene eliminato un oggetto del metaverse, tutti gli oggetti associati a una regola di sincronizzazione in uscita contrassegnata per il provisioning vengono contrassegnati per l'eliminazione.When a metaverse object is deleted, all objects associated with an outbound sync rule marked for provision are marked for a delete.

TrasformazioniTransformations

Le trasformazioni vengono usate per definire la modalità di trasferimento degli attributi dall'origine alla destinazione.The transformations are used to define how attributes should flow from the source to the target. I flussi del trasferimento possono avere uno dei seguenti tipi: diretto, costante o espressione.The flows can have one of the following flow types: Direct, Constant, or Expression. In un flusso diretto, il valore dell'attributo viene passato così com'è, senza altre trasformazioni.A direct flow, flows an attribute value as-is with no additional transformations. Un valore costante imposta il valore specificato.A constant value sets the specified value. Un'espressione usa il linguaggio delle espressioni del provisioning dichiarativo per specificare la modalità di trasformazione.An expression uses the declarative provisioning expression language to express how the transformation should be. Per dettagli sul linguaggio delle espressioni, vedere l'argomento Servizio di sincronizzazione Azure AD Connect: Informazioni sulle espressioni di provisioning dichiarativo .The details for the expression language can be found in the understanding declarative provisioning expression language topic.

Provisioning o join

La casella di controllo Apply once (Applica una volta) definisce che l'attributo debba essere impostato solo quando l'oggetto viene inizialmente creato.The Apply once checkbox defines that the attribute should only be set when the object is initially created. Ad esempio, questa configurazione consente di impostare una password iniziale per un nuovo oggetto utente.For example, this configuration can be used to set an initial password for a new user object.

Unione di valori degli attributiMerging attribute values

Nei flussi di attributi è disponibile un'impostazione per stabilire se gli attributi multivalore devono essere uniti da molti connettori diversi.In the attribute flows there is a setting to determine if multi-valued attributes should be merged from several different Connectors. Il valore predefinito è Update(Aggiorna) e indica che la regola di sincronizzazione con precedenza più alta avrà la priorità.The default value is Update, which indicates that the sync rule with highest precedence should win.

Tipi di unione

Sono disponibili anche Merge (Unisci) e MergeCaseInsensitive (Unisci senza distinzione maiuscole/minuscole).There is also Merge and MergeCaseInsensitive. Queste opzioni consentono di unire i valori da diverse origini.These options allow you to merge values from different sources. Ad esempio, possono essere usate per unire l'attributo proxyAddresses o membro di più foreste diverse.For example, it can be used to merge the member or proxyAddresses attribute from several different forests. Quando si usano queste opzioni, tutte le regole di sincronizzazione nell'ambito per un oggetto devono usare lo stesso tipo di unione.When you use this option, all sync rules in scope for an object must use the same merge type. Non è possibile definire Update (Aggiorna) da un connettore e Merge (Unisci) da un altro.You cannot define Update from one Connector and Merge from another. In questo caso, viene visualizzato un errore.If you try, you receive an error.

La differenza tra Merge (Unisci) e MergeCaseInsensitive (Unisci senza distinzione maiuscole/minuscole) è la modalità di elaborazione dei valori di attributo duplicati.The difference between Merge and MergeCaseInsensitive is how to process duplicate attribute values. Il motore di sincronizzazione assicura che non vengano inseriti valori duplicati nell'attributo di destinazione.The sync engine makes sure duplicate values are not inserted into the target attribute. Con MergeCaseInsensitive(Unisci senza distinzione maiuscole/minuscole) non saranno presenti valori duplicati con solo una differenza tra maiuscole/minuscole.With MergeCaseInsensitive, duplicate values with only a difference in case are not going to be present. Ad esempio, nell'attributo di destinazione non saranno presenti né "SMTP:bob@contoso.com" né "smtp:bob@contoso.com".For example, you should not see both "SMTP:bob@contoso.com" and "smtp:bob@contoso.com" in the target attribute. Merge (Unisci) verifica solo i valori esatti e potrebbero essere presenti più valori in cui è presente solo una differenza tra maiuscole/minuscole.Merge is only looking at the exact values and multiple values where there only is a difference in case might be present.

L'opzione Replace (Sostituisci) è come Update (Aggiorna), ma non viene usata.The option Replace is the same as Update, but it is not used.

Controllare il processo del flusso dell'attributoControl the attribute flow process

Quando vengono configurate più regole di sincronizzazione in ingresso per lo stesso attributo metaverse, per determinare la regola prioritaria viene usata la precedenza.When multiple inbound sync rules are configured to contribute to the same metaverse attribute, then precedence is used to determine the winner. La regola di sincronizzazione con la precedenza più alta (valore numerico inferiore) fornisce il valore.The sync rule with highest precedence (lowest numeric value) is going to contribute the value. Lo stesso concetto si applica alle regole in uscita.The same happens for outbound rules. La regola di sincronizzazione con la precedenza più alta ha la priorità e fornisce il valore alla directory connessa.The sync rule with highest precedence wins and contribute the value to the connected directory.

In alcuni casi, invece di fornire un valore, la regola di sincronizzazione deve determinare il comportamento delle altre regole.In some cases, rather than contribute a value, the sync rule should determine how other rules should behave. In questo caso vengono usati alcuni valori letterali speciali.There are some special literals used for this case.

Per le regole di sincronizzazione in ingresso è possibile usare il valore letterale NULL per indicare che nel flusso non è disponibile un valore da fornire.For inbound Synchronization Rules, the literal NULL can be used to indicate that the flow has no value to contribute. Un'altra regola con una precedenza inferiore può fornire un valore.Another rule with lower precedence can contribute a value. Se nessuna regola ha fornito valori, l'attributo metaverse verrà rimosso.If no rule contributed a value, then the metaverse attribute is removed. Per una regola in uscita, se NULL è il valore finale dopo l'elaborazione di tutte le regole di sincronizzazione, il valore viene rimosso nella directory connessa.For an outbound rule, if NULL is the final value after all sync rules have been processed, then the value is removed in the connected directory.

Il valore letterale AuthoritativeNull è simile a NULL, con la differenza che nessuna regola con una precedenza inferiore può fornire un valore.The literal AuthoritativeNull is similar to NULL but with the difference that no lower precedence rules can contribute a value.

Un flusso dell'attributo può anche usare IgnoreThisFlow.An attribute flow can also use IgnoreThisFlow. È simile a NULL in quanto indica che non è disponibile alcun valore da fornire,It is similar to NULL in the sense that it indicates there is nothing to contribute. con la differenza che non rimuove un valore già esistente nella destinazione.The difference is that it does not remove an already existing value in the target. È come se il flusso dell'attributi non sia mai stato presente.It is like the attribute flow has never been there.

Di seguito è fornito un esempio:Here is an example:

In Out to AD - User Exchange hybrid (In uscita ad AD - Utente Exchange ibrido) è possibile trovare il flusso seguente:In Out to AD - User Exchange hybrid the following flow can be found:
IIF([cloudSOAExchMailbox] = True,[cloudMSExchSafeSendersHash],IgnoreThisFlow)
Questa espressione deve essere letta come: se la cassetta postale dell'utente si trova in Azure AD, trasmettere l'attributo da Azure AD ad Active Directory.This expression should be read as: if the user mailbox is located in Azure AD, then flow the attribute from Azure AD to AD. In caso contrario, non ritrasmettere nulla ad Active Directory.If not, do not flow anything back to Active Directory. In questo caso, il valore esistente rimarrà in Active Directory.In this case, it would keep the existing value in AD.

ImportedValueImportedValue

La funzione ImportedValue è diversa da tutte le altre funzioni, perché il nome dell'attributo deve essere racchiuso tra virgolette invece che tra parentesi quadre: The function ImportedValue is different than all other functions since the attribute name must be enclosed in quotes rather than square brackets:
ImportedValue("proxyAddresses").ImportedValue("proxyAddresses").

In genere, durante la sincronizzazione un attributo usa il valore previsto, anche se non è stato ancora esportato o se è stato visualizzato un errore durante l'esportazione ("livello massimo").Usually during synchronization an attribute uses the expected value, even if it hasn’t been exported yet or an error was received during export (“top of the tower”). Una sincronizzazione in ingresso presuppone che un attributo che non ha ancora raggiunto una directory connessa la raggiungerà prima o poi.An inbound synchronization assumes that an attribute that hasn’t yet reached a connected directory eventually reaches it. In alcuni casi è importante sincronizzare solo un valore confermato dalla directory connessa ("livello di importazione ologrammi e delta").In some cases, it is important to only synchronize a value that has been confirmed by the connected directory (“hologram and delta import tower”).

Un esempio di questa funzione è disponibile nella regola di sincronizzazione predefinita In from AD – User Common from Exchange(In ingresso da AD - Utente comune di Exchange).An example of this function can be found in the out-of-box Synchronization Rule In from AD – User Common from Exchange. Nella regola per Exchange ibrido il valore aggiunto da Exchange online deve essere sincronizzato solo quando è stato confermato che l'esportazione del valore è riuscita: In Hybrid Exchange, the value added by Exchange online should only be synchronized when it has been confirmed that the value was exported successfully:
proxyAddresses <- RemoveDuplicates(Trim(ImportedValue("proxyAddresses")))

PrecedenzaPrecedence

Quando più regole di sincronizzazione provano a inserire lo stesso valore di attributo nella destinazione, il valore di precedenza viene usato per determinare quale regola di sincronizzazione abbia la priorità.When several sync rules try to contribute the same attribute value to the target, the precedence value is used to determine the winner. In caso di conflitto, l'attributo verrà specificato dalla regola con la precedenza più alta e il valore numerico più basso.The rule with highest precedence, lowest numeric value, is going to contribute the attribute in a conflict.

Tipi di unione

Questo ordinamento consente di definire flussi di attributi più precisi per un piccolo subset di oggetti.This ordering can be used to define more precise attribute flows for a small subset of objects. Le regole predefinite assicurano ad esempio che gli attributi di un account abilitato (User AccountEnabled) abbiano la precedenza su altri account.For example, the out-of-box-rules make sure that attributes from an enabled account (User AccountEnabled) have precedence from other accounts.

È possibile definire la precedenza tra i connettori.Precedence can be defined between Connectors. Ciò consente ai connettori con i dati migliori di passare i valori per primi.That allows Connectors with better data to contribute values first.

Più oggetti dallo stesso spazio connettoreMultiple objects from the same connector space

Se sono presenti più oggetti nello stesso spazio connettore uniti nello stesso oggetto del metaverse, è necessario definire la precedenza.If you have several objects in the same connector space joined to the same metaverse object, precedence must be adjusted. Se più oggetti si trovano nell'ambito della stessa regola di sincronizzazione, il motore di sincronizzazione non riesce a determinare la precedenza.If several objects are in scope of the same sync rule, then the sync engine is not able to determine precedence. Non è chiaro quale oggetto di origine debba passare il valore al metaverse.It is ambiguous which source object should contribute the value to the metaverse. Questa configurazione viene indicata come ambigua anche se gli attributi nell'origine hanno lo stesso valore.This configuration is reported as ambiguous even if the attributes in the source have the same value.
Più oggetti uniti nello stesso oggetto mv

Per questo scenario è necessario modificare l'ambito delle regole di sincronizzazione in modo che gli oggetti di origine abbiano regole di sincronizzazione diverse nell'ambito.For this scenario, you need to change the scope of the sync rules so the source objects have different sync rules in scope. È così possibile definire una precedenza diversa.That allows you to define different precedence.
Più oggetti uniti nello stesso oggetto mv

Passaggi successiviNext steps

Argomenti generaliOverview topics

Argomenti di riferimentoReference topics