Servizio di sincronizzazione Azure AD Connect: informazioni sull'architetturaAzure AD Connect sync: Understanding the architecture

Questo argomento illustra l'architettura di base per il servizio di sincronizzazione Azure AD Connect. Sotto diversi aspetti è simile ai predecessori MIIS 2003, ILM 2007 e FIM 2010.This topic covers the basic architecture for Azure AD Connect sync. In many aspects, it is similar to its predecessors MIIS 2003, ILM 2007, and FIM 2010. Il servizio di sincronizzazione Azure AD Connect è l'evoluzione di queste tecnologie.Azure AD Connect sync is the evolution of these technologies. Se si ha familiarità con qualcuna delle tecnologie precedenti, anche il contenuto di questo argomento risulterà familiare.If you are familiar with any of these earlier technologies, the content of this topic will be familiar to you as well. Se invece non si ha esperienza con la sincronizzazione, è consigliabile leggere questo argomento.If you are new to synchronization, then this topic is for you. Non è tuttavia indispensabile conoscere in dettaglio questo argomento per apportare personalizzazioni al servizio di sincronizzazione Azure AD Connect (chiamato qui motore di sincronizzazione).It is however not a requirement to know the details of this topic to be successful in making customizations to Azure AD Connect sync (called sync engine in this topic).

ArchitectureArchitecture

Il motore di sincronizzazione crea una visualizzazione integrata degli oggetti archiviati in più origini dati connesse e gestisce le informazioni sull'identità presenti in tali origini dati.The sync engine creates an integrated view of objects that are stored in multiple connected data sources and manages identity information in those data sources. Questa visualizzazione integrata viene determinata dalle informazioni sull'identità recuperate da origini dati connesse e da un set di regole che determinano come elaborare le informazioni.This integrated view is determined by the identity information retrieved from connected data sources and a set of rules that determine how to process this information.

Origini dati connesse e connettoriConnected Data Sources and Connectors

Il motore di sincronizzazione elabora le informazioni sull'identità provenienti da repository dati diversi, ad esempio Active Directory o un database SQL Server.The sync engine processes identity information from different data repositories, such as Active Directory or a SQL Server database. Ogni repository che organizza i dati in formato database e che fornisce metodi standard di accesso ai dati è una potenziale origine dati candidata per il motore di sincronizzazione.Every data repository that organizes its data in a database-like format and that provides standard data-access methods is a potential data source candidate for the sync engine. I repository dati sincronizzati dal motore di sincronizzazione sono chiamati origini dati connesse o directory connesse (CD, Connected Directory).The data repositories that are synchronized by sync engine are called connected data sources or connected directories (CD).

Il motore di sincronizzazione incapsula l'interazione con un'origine dati connessa in un modulo chiamato connettore.The sync engine encapsulates interaction with a connected data source within a module called a Connector. Ogni tipo di origine dati connessa ha un connettore specifico.Each type of connected data source has a specific Connector. Il connettore converte un'operazione obbligatoria nel formato leggibile dall'origine dati connessa.The Connector translates a required operation into the format that the connected data source understands.

I connettori effettuano chiamate API per scambiare informazioni sull'identità (sia in lettura che in scrittura) con un'origine dati connessa.Connectors make API calls to exchange identity information (both read and write) with a connected data source. È anche possibile aggiungere un connettore personalizzato usando il framework di connettività estendibile.It is also possible to add a custom Connector using the extensible connectivity framework. La figura seguente illustra come un connettore connette un'origine dati connessa al motore di sincronizzazione.The following illustration shows how a Connector connects a connected data source to the sync engine.

Architettura 1

I dati possono scorrere in una direzione o nell'altra, ma non in entrambe contemporaneamente.Data can flow in either direction, but it cannot flow in both directions simultaneously. In altre parole, un connettore può essere configurato per consentire ai dati di scorrere dall'origine dati connessa al motore di sincronizzazione o dal motore di sincronizzazione all'origine dati connessa, ma solo una di tali operazioni può essere in qualsiasi momento per un oggetto e un attributo.In other words, a Connector can be configured to allow data to flow from the connected data source to sync engine or from sync engine to the connected data source, but only one of those operations can occur at any one time for one object and attribute. La direzione può essere diversa a seconda degli oggetti e degli attributi.The direction can be different for different objects and for different attributes.

Per configurare un connettore, si specificano i tipi di oggetto che si vuole sincronizzare.To configure a Connector, you specify the object types that you want to synchronize. Specificando i tipi di oggetto viene definito l'ambito degli oggetti inclusi nel processo di sincronizzazione.Specifying the object types defines the scope of objects that are included in the synchronization process. Il passaggio successivo prevede la selezione degli attributi da sincronizzare per cui viene usato un elenco di inclusione degli attributi.The next step is to select the attributes to synchronize, which is known as an attribute inclusion list. Queste impostazioni possono essere modificate in qualsiasi momento in risposta alle modifiche apportate alle regole di business.These settings can be changed any time in response to changes to your business rules. Quando si usa l'installazione guidata di Azure AD Connect, queste impostazioni vengono configurate automaticamente.When you use the Azure AD Connect installation wizard, these settings are configured for you.

Per esportare gli oggetti in un'origine dati connessa, l'elenco di inclusione degli attributi deve includere almeno gli attributi minimi necessari per creare un tipo di oggetto specifico in un'origine dati connessa.To export objects to a connected data source, the attribute inclusion list must include at least the minimum attributes required to create a specific object type in a connected data source. Ad esempio, l'attributo sAMAccountName deve essere incluso nell'elenco di inclusione degli attributi per esportare un oggetto utente in Active Directory perché per tutti gli oggetti utente in Active Directory deve essere definito un attributo sAMAccountName.For example, the sAMAccountName attribute must be included in the attribute inclusion list to export a user object to Active Directory because all user objects in Active Directory must have a sAMAccountName attribute defined. L'installazione guidata eseguirà la configurazione automaticamente.Again, the installation wizard does this configuration for you.

Se l'origine dati connessa usa componenti strutturali, ad esempio partizioni o contenitori per organizzare gli oggetti, è possibile limitare le aree nell'origine dati connessa usate per una determinata soluzione.If the connected data source uses structural components, such as partitions or containers to organize objects, you can limit the areas in the connected data source that are used for a given solution.

Struttura interna dello spazio dei nomi del motore di sincronizzazioneInternal structure of the sync engine namespace

L'intero spazio dei nomi del motore di sincronizzazione è costituito da due spazi dei nomi in cui vengono archiviate le informazioni sull'identità.The entire sync engine namespace consists of two namespaces that store the identity information. I due spazi dei nomi sono:The two namespaces are:

  • Spazio connettore (CS, Connector Space)The connector space (CS)
  • Metaverse (MV)The metaverse (MV)

Lo spazio connettore è un'area di staging che contiene le rappresentazioni degli oggetti designati provenienti da un'origine dati connessa e gli attributi specificati nell'elenco di inclusione degli attributi.The connector space is a staging area that contains representations of the designated objects from a connected data source and the attributes specified in the attribute inclusion list. Il motore di sincronizzazione usa lo spazio connettore per determinare che cosa è stato modificato nell'origine dati connessa e per inserire temporaneamente le modifiche in ingresso.The sync engine uses the connector space to determine what has changed in the connected data source and to stage incoming changes. Il motore di sincronizzazione usa lo spazio connettore anche per inserire temporaneamente le modifiche in uscita da esportare nell'origine dati connessa.The sync engine also uses the connector space to stage outgoing changes for export to the connected data source. Il motore di sincronizzazione gestisce uno spazio connettore distinto come area di staging per ogni connettore.The sync engine maintains a distinct connector space as a staging area for each Connector.

Usando un'area di staging, il motore di sincronizzazione resta indipendente dalle origini dati connesse e non viene influenzato dalla disponibilità e dall'accessibilità.By using a staging area, the sync engine remains independent of the connected data sources and is not affected by their availability and accessibility. Di conseguenza, è possibile elaborare le informazioni sull'identità in qualsiasi momento usando i dati nell'area di staging.As a result, you can process identity information at any time by using the data in the staging area. Il motore di sincronizzazione può richiedere solo le modifiche apportate nell'origine dati connessa dalla fine dell'ultima sessione di comunicazione o effettuare il push solo delle modifiche apportate alle informazioni sull'identità non ancora ricevute dall'origine dati connessa, il che riduce il traffico di rete tra il motore di sincronizzazione e l'origine dati connessa.The sync engine can request only the changes made inside the connected data source since the last communication session terminated or push out only the changes to identity information that the connected data source has not yet received, which reduces the network traffic between the sync engine and the connected data source.

Inoltre il motore di sincronizzazione archivia le informazioni sullo stato di tutti gli oggetti inseriti temporaneamente nello spazio connettore.In addition, sync engine stores status information about all objects that it stages in the connector space. Quando vengono ricevuti nuovi dati, il motore di sincronizzazione valuta sempre se i dati sono già stati sincronizzati.When new data is received, sync engine always evaluates whether the data has already been synchronized.

Il metaverse è un'area di archiviazione che contiene le informazioni sull'identità aggregate da più origini dati connesse, offrendo un'unica visualizzazione globale integrata di tutti gli oggetti combinati.The metaverse is a storage area that contains the aggregated identity information from multiple connected data sources, providing a single global, integrated view of all combined objects. Gli oggetti metaverse vengono creati in base alle informazioni sull'identità recuperate dalle origini dati connesse e a un set di regole che consentono di personalizzare il processo di sincronizzazione.Metaverse objects are created based on the identity information that is retrieved from the connected data sources and a set of rules that allow you to customize the synchronization process.

La figura seguente illustra lo spazio dei nomi dello spazio connettore e lo spazio dei nomi del metaverse nel motore di sincronizzazione.The following illustration shows the connector space namespace and the metaverse namespace within the sync engine.

Architettura 2

Oggetti identità del motore di sincronizzazioneSync engine identity objects

Gli oggetti nel motore di sincronizzazione sono rappresentazioni degli oggetti nell'origine dati connessa o della visualizzazione integrata di tali oggetti offerta dal motore di sincronizzazione.The objects in the sync engine are representations of either objects in the connected data source or the integrated view that sync engine has of those objects. Ogni oggetto del motore di sincronizzazione deve avere un identificatore univoco globale (GUID).Every sync engine object must have a globally unique identifier (GUID). I GUID garantiscono l'integrità dei dati ed esprimono le relazioni tra gli oggetti.GUIDs provide data integrity and express relationships between objects.

Oggetti dello spazio connettoreConnector space objects

Quando il motore di sincronizzazione comunica con un'origine dati connessa, legge le informazioni sull'identità nell'origine dati connessa e usa tali informazioni per creare una rappresentazione dell'oggetto identità nello spazio connettore.When sync engine communicates with a connected data source, it reads the identity information in the connected data source and uses that information to create a representation of the identity object in the connector space. Non è possibile creare o eliminare tali oggetti singolarmente.You cannot create or delete these objects individually. È tuttavia possibile eliminare manualmente tutti gli oggetti in uno spazio connettore.However, you can manually delete all objects in a connector space.

Tutti gli oggetti nello spazio connettore hanno due attributi:All objects in the connector space have two attributes:

  • Un identificatore univoco globale (GUID)A globally unique identifier (GUID)
  • Un nome distinto (noto anche come DN)A distinguished name (also known as DN)

Se l'origine dati connessa assegna un attributo univoco all'oggetto, anche gli oggetti nello spazio connettore possono avere un attributo di ancoraggio.If the connected data source assigns a unique attribute to the object, then objects in the connector space can also have an anchor attribute. L'attributo di ancoraggio identifica in modo univoco un oggetto nell'origine dati connessa.The anchor attribute uniquely identifies an object in the connected data source. Il motore di sincronizzazione usa l'ancoraggio per individuare la rappresentazione corrispondente di questo oggetto nell'origine dati connessa.The sync engine uses the anchor to locate the corresponding representation of this object in the connected data source. Il motore di sincronizzazione presuppone che l'ancoraggio di un oggetto non venga mai modificato per tutta la durata dell'oggetto.Sync engine assumes that the anchor of an object never changes over the lifetime of the object.

Molti connettori usano un identificatore univoco noto per generare automaticamente un ancoraggio per ogni oggetto quando viene importato.Many of the Connectors use a known unique identifier to generate an anchor automatically for each object when it is imported. Active Directory Connector, ad esempio, usa l'attributo objectGUID per un ancoraggio.For example, the Active Directory Connector uses the objectGUID attribute for an anchor. Per le origini dati connesse che non forniscono un identificatore univoco chiaramente definito, è possibile specificare la generazione dell'ancoraggio durante la configurazione del connettore.For connected data sources that do not provide a clearly defined unique identifier, you can specify anchor generation as part of the Connector configuration.

In tal caso, l'ancoraggio viene creato in base a uno o più attributi univoci di un tipo di oggetto, nessuno dei quali viene modificato e che identifica in modo univoco l'oggetto nello spazio connettore (ad esempio, un numero dipendente o un ID utente).In that case, the anchor is built from one or more unique attributes of an object type, neither of which changes, and that uniquely identifies the object in the connector space (for example, an employee number or a user ID).

Un oggetto spazio connettore può essere:A connector space object can be one of the following:

  • Un oggetto di stagingA staging object
  • Un segnapostoA placeholder

Oggetti di stagingStaging Objects

Un oggetto di staging rappresenta un'istanza dei tipi di oggetto designati dall'origine dati connessa.A staging object represents an instance of the designated object types from the connected data source. Oltre al GUID e al nome distinto, un oggetto di staging ha sempre un valore che indica il tipo di oggetto.In addition to the GUID and the distinguished name, a staging object always has a value that indicates the object type.

Gli oggetti di staging importati hanno sempre un valore per l'attributo di ancoraggio.Staging objects that have been imported always have a value for the anchor attribute. I nuovi oggetti di staging di cui è stato effettuato il provisioning e di cui è in corso la creazione nell'origine dati connessa non hanno un valore per l'attributo di ancoraggio.Staging objects that have been newly provisioned by sync engine and are in the process of being created in the connected data source do not have a value for the anchor attribute.

Gli oggetti di staging includono anche i valori correnti degli attributi aziendali e le informazioni operative necessarie al motore di sincronizzazione per eseguire il processo di sincronizzazione.Staging objects also carry current values of business attributes, and operational information needed by sync engine to perform the synchronization process. Le informazioni operative includono i flag che indicano il tipo di aggiornamenti inseriti temporaneamente nell'oggetto di staging.Operational information includes flags that indicate the type of updates that are staged on the staging object. Se un oggetto di staging ha ricevuto nuove informazioni sull'identità dall'origine dati connessa che non sono ancora state elaborate, l'oggetto viene contrassegnato come pending import.If a staging object has received new identity information from the connected data source that has not yet been processed, the object is flagged as pending import. Se un oggetto di staging ha nuove informazioni sull'identità che non sono ancora state esportate nell'origine dati connessa, l'oggetto viene contrassegnato come pending export.If a staging object has new identity information that has not yet been exported to the connected data source, it is flagged as pending export.

Un oggetto di staging può essere un oggetto di importazione o un oggetto di esportazione.A staging object can be an import object or an export object. Il motore di sincronizzazione crea un oggetto di importazione usando le informazioni sull'oggetto ricevute dall'origine dati connessa.The sync engine creates an import object by using object information received from the connected data source. Quando il motore di sincronizzazione riceve informazioni sull'esistenza di un nuovo oggetto che corrisponde a uno dei tipi di oggetto selezionati nel connettore, crea un oggetto di importazione nello spazio connettore come rappresentazione dell'oggetto nell'origine dati connessa.When sync engine receives information about the existence of a new object that matches one of the object types selected in the Connector, it creates an import object in the connector space as a representation of the object in the connected data source.

La figura seguente illustra un oggetto di importazione che rappresenta un oggetto nell'origine dati connessa.The following illustration shows an import object that represents an object in the connected data source.

Architettura 3

Il motore di sincronizzazione crea un oggetto di esportazione usando le informazioni sull'oggetto nel metaverse.The sync engine creates an export object by using object information in the metaverse. Gli oggetti di esportazione vengono esportati nell'origine dati connessa durante la sessione di comunicazione successiva.Export objects are exported to the connected data source during the next communication session. Dal punto di vista del motore di sincronizzazione, gli oggetti di esportazione non esistono ancora nell'origine dati connessa.From the perspective of the sync engine, export objects do not exist in the connected data source yet. Quindi l'attributo di ancoraggio per un oggetto di esportazione non è disponibile.Therefore, the anchor attribute for an export object is not available. L'origine dati connessa, dopo avere ricevuto l'oggetto dal motore di sincronizzazione, crea un valore univoco per l'attributo di ancoraggio dell'oggetto.After it receives the object from sync engine, the connected data source creates a unique value for the anchor attribute of the object.

La figura seguente illustra come viene creato un oggetto di esportazione usando le informazioni sull'identità nel metaverse.The following illustration shows how an export object is created by using identity information in the metaverse.

Architettura 4

Il motore di sincronizzazione conferma l'esportazione dell'oggetto reimportando l'oggetto dall'origine dati connessa.The sync engine confirms the export of the object by reimporting the object from the connected data source. Gli oggetti di esportazione diventano oggetti di importazione quando il motore di sincronizzazione li riceve durante l'importazione successiva da tale origine dati connessa.Export objects become import objects when sync engine receives them during the next import from that connected data source.

SegnapostoPlaceholders

Il motore di sincronizzazione usa uno spazio dei nomi flat per archiviare gli oggetti.The sync engine uses a flat namespace to store objects. Tuttavia, alcune origini dati connesse, ad esempio Active Directory, usano uno spazio dei nomi gerarchico.However, some connected data sources such as Active Directory use a hierarchical namespace. Per trasformare le informazioni da uno spazio dei nomi piatto in uno spazio dei nomi gerarchico, il motore di sincronizzazione usa i segnaposto per mantenere la gerarchia.To transform information from a hierarchical namespace into a flat namespace, sync engine uses placeholders to preserve the hierarchy.

Ogni segnaposto rappresenta un componente (ad esempio, un'unità organizzativa) del nome gerarchico di un oggetto che non è stato importato nel motore di sincronizzazione, ma è necessario per costruire il nome gerarchico.Each placeholder represents a component (for example, an organizational unit) of an object's hierarchical name that has not been imported into sync engine but is required to construct the hierarchical name. Riempiono i vuoti creati dai riferimenti nell'origine dati connessa agli oggetti che non sono oggetti di staging nello spazio connettore.They fill gaps created by references in the connected data source to objects that are not staging objects in the connector space.

Il motore di sincronizzazione usa i segnaposto anche per archiviare gli oggetti di riferimento che non sono ancora stati importati.The sync engine also uses placeholders to store referenced objects that have not yet been imported. Se, ad esempio, la sincronizzazione è configurata per includere l'attributo manager per l'oggetto Abbie Spencer e il valore ricevuto è un oggetto che non è ancora stato importato, come CN=Lee Sperry,CN=Users,DC=fabrikam,DC=com, le informazioni sul manager vengono archiviate come segnaposto nello spazio connettore.For example, if sync is configured to include the manager attribute for the Abbie Spencer object and the received value is an object that has not been imported yet, such as CN=Lee Sperry,CN=Users,DC=fabrikam,DC=com, the manager information is stored as placeholders in the connector space. Se in seguito l'oggetto manager viene importato, l'oggetto segnaposto viene sovrascritto dall'oggetto di staging che rappresenta il manager.If the manager object is later imported, the placeholder object is overwritten by the staging object that represents the manager.

Oggetti del metaverseMetaverse objects

Un oggetto del metaverse contiene la visualizzazione aggregata offerta dal motore di sincronizzazione degli oggetti di staging nello spazio connettore.A metaverse object contains the aggregated view that sync engine has of the staging objects in the connector space. Il motore di sincronizzazione crea gli oggetti del metaverse usando le informazioni negli oggetti di importazione.Sync engine creates metaverse objects by using the information in import objects. Più oggetti dello spazio connettore possono essere collegati a un solo oggetto del metaverse, ma un oggetto dello spazio connettore non può essere collegato a più di un oggetto del metaverse.Several connector space objects can be linked to a single metaverse object, but a connector space object cannot be linked to more than one metaverse object.

Gli oggetti del metaverse non possono essere creati o eliminati manualmente.Metaverse objects cannot be manually created or deleted. Il motore di sincronizzazione elimina automaticamente gli oggetti del metaverse senza un collegamento ad alcun oggetto nello spazio connettore.The sync engine automatically deletes metaverse objects that do not have a link to any connector space object in the connector space.

Per eseguire il mapping degli oggetti in un'origine dati connessa a un tipo di oggetto corrispondente nel metaverse, il motore di sincronizzazione fornisce uno schema estendibile con un set predefinito di tipi di oggetto e di attributi associati.To map objects within a connected data source to a corresponding object type within the metaverse, sync engine provides an extensible schema with a predefined set of object types and associated attributes. È possibile creare nuovi tipi di oggetto e attributi per gli oggetti del metaverse.You can create new object types and attributes for metaverse objects. Gli attributi possono essere a valore singolo o multivalore e i tipi di attributo possono essere stringhe, riferimenti, numeri e valori booleani.Attributes can be single-valued or multivalued, and the attribute types can be strings, references, numbers, and Boolean values.

Relazioni tra oggetti di staging e oggetti del metaverseRelationships between staging objects and metaverse objects

Nello spazio dei nomi del motore di sincronizzazione il flusso di dati è abilitato dalla relazione di collegamento tra oggetti di staging e oggetti del metaverse.Within the sync engine namespace, the data flow is enabled by the link relationship between staging objects and metaverse objects. Un oggetto di staging collegato a un oggetto del metaverse è chiamato oggetto unito (o oggetto connettore).A staging object that is linked to a metaverse object is called a joined object (or connector object). Un oggetto di staging non collegato a un oggetto del metaverse è chiamato oggetto separato (o oggetto sezionatore).A staging object that is not linked to a metaverse object is called a disjoined object (or disconnector object). Si preferisce usare i termini unito e separato per non creare confusione con i connettori responsabili dell'importazione e dell'esportazione dei dati da una directory connessa.The terms joined and disjoined are preferred to not confuse with the Connectors responsible for importing and exporting data from a connected directory.

I segnaposto non sono mai collegati a un oggetto del metaversePlaceholders are never linked to a metaverse object

Un oggetto unito è costituito da un oggetto di staging e dalle relazioni collegate a un singolo oggetto del metaverse.A joined object comprises a staging object and its linked relationship to a single metaverse object. Gli oggetti uniti vengono usati per sincronizzare i valori degli attributi tra un oggetto dello spazio connettore e un oggetto del metaverse.Joined objects are used to synchronize attribute values between a connector space object and a metaverse object.

Quando un oggetto di staging diventa un oggetto unito durante la sincronizzazione, gli attributi possono scorrere tra l'oggetto di staging e l'oggetto del metaverse.When a staging object becomes a joined object during synchronization, attributes can flow between the staging object and the metaverse object. Il flusso degli attributi è bidirezionale e viene configurato usando le regole di importazione degli attributi e le regole di esportazione degli attributi.Attribute flow is bidirectional and is configured by using import attribute rules and export attribute rules.

Un singolo oggetto dello spazio connettore può essere collegato a un solo oggetto del metaverse.A single connector space object can be linked to only one metaverse object. Ogni oggetto del metaverse, tuttavia, può essere collegato a più oggetti dello spazio connettore nello stesso spazio connettore o in spazi connettore diversi, come illustrato nella figura seguente.However, each metaverse object can be linked to multiple connector space objects in the same or in different connector spaces, as shown in the following illustration.

Architettura 5

La relazione collegata tra l'oggetto di staging e un oggetto del metaverse è persistente e può essere rimossa solo dalle regole specificate.The linked relationship between the staging object and a metaverse object is persistent and can be removed only by rules that you specify.

Un oggetto separato è un oggetto di staging non collegato ad alcun oggetto del metaverse.A disjoined object is a staging object that is not linked to any metaverse object. I valori degli attributi di un oggetto separato non vengono elaborati ulteriormente nel metaverse.The attribute values of a disjoined object are not processed any further within the metaverse. I valori degli attributi dell'oggetto corrispondente nell'origine dati connessa non vengono aggiornati dal motore di sincronizzazione.The attribute values of the corresponding object in the connected data source are not updated by sync engine.

Usando gli oggetti separati è possibile archiviare le informazioni sull'identità nel motore di sincronizzazione ed elaborarle in seguito.By using disjoined objects, you can store identity information in sync engine and process it later. La presenza di un oggetto di staging come oggetto separato nello spazio connettore presenta diversi vantaggi.Keeping a staging object as a disjoined object in the connector space has many advantages. Poiché il sistema ha già inserito temporaneamente le informazioni richieste su questo oggetto, non è necessario creare di nuovo una rappresentazione dell'oggetto durante la successiva importazione dall'origine dati connessa.Because the system has already staged the required information about this object, it is not necessary to create a representation of this object again during the next import from the connected data source. In questo modo, il motore di sincronizzazione ha sempre uno snapshot completo dell'origine dati connessa, anche se non è stata stabilita una connessione all'origine dati connessa.This way, sync engine always has a complete snapshot of the connected data source, even if there is no current connection to the connected data source. Gli oggetti separati possono essere convertiti in oggetti uniti e viceversa, a seconda delle regole specificate.Disjoined objects can be converted into joined objects, and vice versa, depending on the rules that you specify.

Un oggetto di importazione viene creato come oggetto separato.An import object is created as a disjoined object. Un oggetto di esportazione deve essere un oggetto unito.An export object must be a joined object. La logica di sistema applica questa regola ed elimina ogni oggetto di esportazione che non sia un oggetto unito.The system logic enforces this rule and deletes every export object that is not a joined object.

Processo di gestione delle identità del motore di sincronizzazioneSync engine identity management process

Il processo di gestione delle identità controlla come vengono aggiornate le informazioni sull'identità tra origini dati connesse diverse.The identity management process controls how identity information is updated between different connected data sources. La gestione delle identità viene eseguita in tre processi:Identity management occurs in three processes:

  • ImportaImport
  • SincronizzazioneSynchronization
  • EsportazioneExport

Durante il processo di importazione, il motore di sincronizzazione valuta le informazioni sull'identità in ingresso da un'origine dati connessa.During the import process, sync engine evaluates the incoming identity information from a connected data source. Quando vengono rilevate modifiche, crea nuovi oggetti di staging o aggiorna quelli esistenti nello spazio connettore per la sincronizzazione.When changes are detected, it either creates new staging objects or updates existing staging objects in the connector space for synchronization.

Durante il processo di sincronizzazione, il motore di sincronizzazione aggiorna il metaverse rispecchiando le modifiche apportate nello spazio connettore e aggiorna lo spazio connettore rispecchiando le modifiche apportate nel metaverse.During the synchronization process, sync engine updates the metaverse to reflect changes that have occurred in the connector space and updates the connector space to reflect changes that have occurred in the metaverse.

Durante il processo di esportazione, il motore di sincronizzazione effettua il push delle modifiche inserite temporaneamente negli oggetti di staging e contrassegnate come pending export.During the export process, sync engine pushes out changes that are staged on staging objects and that are flagged as pending export.

La figura seguente illustra dove avviene ogni processo mentre le informazioni sull'identità scorrono da un'origine dati connessa a un'altra.The following illustration shows where each of the processes occurs as identity information flows from one connected data source to another.

Architettura 6

Processo di importazioneImport process

Durante il processo di importazione, il motore di sincronizzazione valuta gli aggiornamenti alle informazioni sull'identità.During the import process, sync engine evaluates updates to identity information. Il motore di sincronizzazione confronta le informazioni sull'identità ricevute dall'origine dati connessa con le informazioni sull'identità di un oggetto di staging e determina se l'oggetto di staging richiede aggiornamenti.Sync engine compares the identity information received from the connected data source with the identity information about a staging object and determines whether the staging object requires updates. Se l'oggetto di staging deve essere aggiornato con nuovi dati, viene contrassegnato come pending import.If it is necessary to update the staging object with new data, the staging object is flagged as pending import.

Inserendo temporaneamente gli oggetti di staging nello spazio connettore prima della sincronizzazione, il motore di sincronizzazione può elaborare solo le informazioni sull'identità modificate.By staging objects in the connector space before synchronization, sync engine can process only the identity information that has changed. Questo processo offre i vantaggi seguenti:This process provides the following benefits:

  • Sincronizzazione efficiente.Efficient synchronization. La quantità di dati elaborati durante la sincronizzazione viene ridotta al minimo.The amount of data processed during synchronization is minimized.
  • Risincronizzazione efficiente.Efficient resynchronization. È possibile modificare il modo in cui il motore di sincronizzazione elabora le informazioni sull'identità senza riconnettere il motore di sincronizzazione all'origine dati.You can change how sync engine processes identity information without reconnecting the sync engine to the data source.
  • Opportunità di visualizzare in anteprima la sincronizzazione.Opportunity to preview synchronization. È possibile visualizzare in anteprima la sincronizzazione per verificare che i presupposti sul processo di gestione delle identità siano corretti.You can preview synchronization to verify that your assumptions about the identity management process are correct.

Per ogni oggetto specificato nel connettore, il motore di sincronizzazione prima di tutto cerca di individuare una rappresentazione dell'oggetto nello spazio connettore del connettore.For each object specified in the Connector, the sync engine first tries to locate a representation of the object in the connector space of the Connector. Il motore di sincronizzazione esamina tutti gli oggetti di staging nello spazio connettore e cerca di trovare un oggetto di staging correlato con un attributo di ancoraggio corrispondente.Sync engine examines all staging objects in the connector space and tries to find a corresponding staging object that has a matching anchor attribute. Se nessun oggetto di staging esistente ha un attributo di ancoraggio corrispondente, il motore di sincronizzazione cerca di trovare un oggetto di staging corrispondente con lo stesso nome distinto.If no existing staging object has a matching anchor attribute, sync engine tries to find a corresponding staging object with the same distinguished name.

Quando il motore di sincronizzazione trova un oggetto di staging che corrisponde per il nome distinto, ma non per l'ancoraggio, si verifica il seguente particolare comportamento:When sync engine finds a staging object that matches by distinguished name but not by anchor, the following special behavior occurs:

  • Se l'oggetto che si trova nello spazio connettore non ha ancoraggi, il motore di sincronizzazione rimuove questo oggetto dallo spazio connettore e contrassegna l'oggetto del metaverse a cui è collegato come retry provisioning on next synchronization run.If the object located in the connector space has no anchor, then sync engine removes this object from the connector space and marks the metaverse object it is linked to as retry provisioning on next synchronization run. Quindi crea il nuovo oggetto di importazione.Then it creates the new import object.
  • Se l'oggetto che si trova nello spazio connettore ha un ancoraggio, il motore di sincronizzazione presuppone che questo oggetto sia stato rinominato o eliminato nella directory connessa.If the object located in the connector space has an anchor, then sync engine assumes that this object has either been renamed or deleted in the connected directory. Assegna un nuovo nome distinto temporaneo per l'oggetto dello spazio connettore per poter inserire temporaneamente l'oggetto in ingresso.It assigns a temporary, new distinguished name for the connector space object so that it can stage the incoming object. Il vecchio oggetto diventa temporaneo, in attesa che il connettore importi l'operazione di ridenominazione o eliminazione per risolvere la situazione.The old object then becomes transient, waiting for the Connector to import the rename or deletion to resolve the situation.

Se il motore di sincronizzazione individua un oggetto di staging che corrisponde all'oggetto specificato nel connettore, determina la tipologia di modifiche da applicare.If sync engine locates a staging object that corresponds to the object specified in the Connector, it determines what kind of changes to apply. Ad esempio, il motore di sincronizzazione può rinominare o eliminare l'oggetto nell'origine dati connessa oppure solo aggiornare i valori degli attributi dell'oggetto.For example, sync engine might rename or delete the object in the connected data source, or it might only update the object’s attribute values.

Gli oggetti di staging con dati aggiornati vengono contrassegnati come pending import.Staging objects with updated data are marked as pending import. Sono disponibili tipi di diversi di importazioni in sospeso.Different types of pending imports are available. A seconda del risultato del processo di importazione, un oggetto di staging nello spazio connettore ha uno dei tipi di importazione in sospeso seguenti:Depending on the result of the import process, a staging object in the connector space has one of the following pending import types:

  • None.None. Non sono disponibili modifiche a nessuno degli attributi dell'oggetto di staging.No changes to any of the attributes of the staging object are available. Il motore di sincronizzazione non contrassegna questo tipo come importazione in sospeso.Sync engine does not flag this type as pending import.
  • Add.Add. L'oggetto di staging è un nuovo oggetto di importazione nello spazio connettore.The staging object is a new import object in the connector space. Il motore di sincronizzazione contrassegna questo tipo come importazione in sospeso per un'ulteriore elaborazione nel metaverse.Sync engine flags this type as pending import for additional processing in the metaverse.
  • Update.Update. Il motore di sincronizzazione trova un oggetto di staging corrispondente nello spazio connettore e contrassegna questo tipo come importazione in sospeso in modo che gli aggiornamenti agli attributi possano essere elaborati nel metaverse.Sync engine finds a corresponding staging object in the connector space and flags this type as pending import so that updates to the attributes can be processed in the metaverse. Gli aggiornamenti includono la ridenominazione degli oggetti.Updates include object renaming.
  • Delete.Delete. Il motore di sincronizzazione trova un oggetto di staging corrispondente nello spazio connettore e contrassegna questo tipo come importazione in sospeso in modo che l'oggetto unito possa essere eliminato.Sync engine finds a corresponding staging object in the connector space and flags this type as pending import so that the joined object can be deleted.
  • Delete/Add.Delete/Add. Il motore di sincronizzazione trova un oggetto di staging corrispondente nello spazio connettore, ma i tipi di oggetto non corrispondono.Sync engine finds a corresponding staging object in the connector space, but the object types do not match. In questo caso, viene inserita temporaneamente una modifica di eliminazione/aggiunta.In this case, a delete-add modification is staged. Una modifica di eliminazione/aggiunta indica al motore di sincronizzazione che deve essere eseguita una risincronizzazione completa di questo oggetto perché, quando il tipo di oggetto verrà modificato, a questo oggetto verranno applicati set di regole diversi.A delete-add modification indicates to the sync engine that a complete resynchronization of this object must occur because different sets of rules apply to this object when the object type changes.

Impostando lo stato di importazione in sospeso di un oggetto di staging, è possibile ridurre considerevolmente la quantità di dati elaborati durante la sincronizzazione perché in questo modo il sistema può elaborare solo gli oggetti con dati aggiornati.By setting the pending import status of a staging object, it is possible to reduce significantly the amount of data processed during synchronization because doing so allows the system to process only those objects that have updated data.

Processo di sincronizzazioneSynchronization process

La sincronizzazione è costituita da due processi correlati:Synchronization consists of two related processes:

  • Sincronizzazione in ingresso, quando il contenuto del metaverse viene aggiornato usando i dati nello spazio connettore.Inbound synchronization, when the content of the metaverse is updated by using the data in the connector space.
  • Sincronizzazione in uscita, quando il contenuto dello spazio connettore viene aggiornato usando i dati nel metaverse.Outbound synchronization, when the content of the connector space is updated by using data in the metaverse.

Usando le informazioni inserite temporaneamente nello spazio connettore, il processo di sincronizzazione in ingresso crea nel metaverse la visualizzazione integrata dei dati archiviati nelle origini dati connesse.By using the information staged in the connector space, the inbound synchronization process creates in the metaverse the integrated view of the data that is stored in the connected data sources. Vengono aggregati tutti gli oggetti di staging o solo quelli con informazioni di importazione in sospeso, a seconda di come vengono configurate le regole.Either all staging objects or only those with a pending import information are aggregated, depending on how the rules are configured.

Il processo di sincronizzazione in uscita aggiorna gli oggetti di esportazione quando gli oggetti del metaverse vengono modificati.The outbound synchronization process updates export objects when metaverse objects change.

La sincronizzazione in ingresso crea nel metaverse la visualizzazione integrata delle informazioni sull'identità ricevute dalle origini dati connesse.Inbound synchronization creates the integrated view in the metaverse of the identity information that is received from the connected data sources. Il motore di sincronizzazione può elaborare le informazioni sull'identità in qualsiasi momento usando le informazioni sull'identità più recenti disponibili nell'origine dati connessa.Sync engine can process identity information at any time by using the latest identity information that it has from the connected data source.

Sincronizzazione in ingressoInbound synchronization

La sincronizzazione in ingresso include i processi seguenti:Inbound synchronization includes the following processes:

  • Provision (chiamato anche proiezione se è importante distinguere questo processo dal provisioning della sincronizzazione in uscita).Provision (also called Projection if it is important to distinguish this process from outbound synchronization provisioning). Il motore di sincronizzazione crea un nuovo oggetto del metaverse basato su un oggetto di staging e li collega.The Sync engine creates a new metaverse object based on a staging object and links them. Il provisioning è un'operazione a livello di oggetto.Provision is an object-level operation.
  • Join.Join. Il motore di sincronizzazione collega un oggetto di staging a un oggetto del metaverse esistente.The Sync engine links a staging object to an existing metaverse object. Un join è un'operazione a livello di oggetto.A join is an object-level operation.
  • Importazione del flusso degli attributi.Import attribute flow. Il motore di sincronizzazione aggiorna i valori degli attributi, chiamati flusso degli attributi, dell'oggetto nel metaverse.Sync engine updates the attribute values, called attribute flow, of the object in the metaverse. L'importazione del flusso degli attributi è un'operazione a livello di attributo che richiede un collegamento tra un oggetto di staging e un oggetto del metaverse.Import attribute flow is an attribute-level operation that requires a link between a staging object and a metaverse object.

Il provisioning è il solo processo che crea oggetti nel metaverse.Provision is the only process that creates objects in the metaverse. Il provisioning ha effetto solo sugli oggetti di importazione che sono oggetti separati.Provision affects only import objects that are disjoined objects. Durante il provisioning, il motore di sincronizzazione crea un oggetto del metaverse che corrisponde al tipo di oggetto dell'oggetto di importazione e stabilisce un collegamento tra entrambi gli oggetti, creando in tal modo un oggetto unito.During provision, sync engine creates a metaverse object that corresponds to the object type of the import object and establishes a link between both objects, thus creating a joined object.

Anche il processo di join stabilisce un collegamento tra gli oggetti di importazione e un oggetto del metaverse.The join process also establishes a link between import objects and a metaverse object. La differenza tra il join e il provisioning è che il processo di join richiede che l'oggetto di importazione sia collegato a un oggetto del metaverse esistente, mentre il processo di provisioning crea un nuovo oggetto del metaverse.The difference between join and provision is that the join process requires that the import object are linked to an existing metaverse object, where the provision process creates a new metaverse object.

Il motore di sincronizzazione cerca di aggiungere un oggetto di importazione a un oggetto del metaverse usando i criteri specificati nella configurazione delle regole di sincronizzazione.Sync engine tries to join an import object to a metaverse object by using criteria that is specified in the Synchronization Rule configuration.

Durante i processi di provisioning e di join, il motore di sincronizzazione collega un oggetto separato a un oggetto del metaverse e in questo modo li unisce.During the provision and join processes, sync engine links a disjoined object to a metaverse object, making them joined. Al termine di queste operazioni a livello di oggetto, il motore di sincronizzazione può aggiornare i valori degli attributi dell'oggetto del metaverse associato.After these object-level operations are completed, sync engine can update the attribute values of the associated metaverse object. Questo processo viene chiamato importazione del flusso degli attributi.This process is called import attribute flow.

L'importazione del flusso degli attributi viene eseguita su tutti gli oggetti di importazione contenenti nuovi dati e collegati a un oggetto del metaverse.Import attribute flow occurs on all import objects that carry new data and are linked to a metaverse object.

Sincronizzazione in uscitaOutbound synchronization

La sincronizzazione in uscita aggiorna gli oggetti di esportazione quando un oggetto del metaverse viene modificato, ma non eliminato.Outbound synchronization updates export objects when a metaverse object change but is not deleted. L'obiettivo della sincronizzazione in uscita è valutare se le modifiche agli oggetti del metaverse richiedono aggiornamenti agli oggetti di staging negli spazi connettore.The objective of outbound synchronization is to evaluate whether changes to metaverse objects require updates to staging objects in the connector spaces. In alcuni casi, le modifiche possono richiedere che vengano aggiornati gli oggetti di staging in tutti gli spazi connettore.In some cases, the changes can require that staging objects in all connector spaces be updated. Gli oggetti di staging modificati vengono contrassegnati come pending export e in questo modo diventano oggetti di esportazione.Staging objects that are changed are flagged as pending export, making them export objects. In seguito, durante il processo di esportazione, viene eseguito il push di questi oggetti di esportazione nell'origine dati connessa.These export objects are later pushed out to the connected data source during the export process.

La sincronizzazione in uscita include tre processi:Outbound synchronization has three processes:

  • ProvisioningProvisioning
  • DeprovisioningDeprovisioning
  • Esportazione del flusso degli attributiExport attribute flow

Il provisioning e il deprovisioning sono entrambi operazioni a livello di oggetto.Provisioning and deprovisioning are both object-level operations. Il deprovisioning dipende dal provisioning perché solo il provisioning può avviarlo.Deprovisioning depends on provisioning because only provisioning can initiate it. Il deprovisioning viene attivato quando il provisioning rimuove il collegamento tra un oggetto del metaverse e un oggetto di esportazione.Deprovisioning is triggered when provisioning removes the link between a metaverse object and an export object.

Il provisioning viene sempre attivato quando vengono applicate modifiche agli oggetti nel metaverse.Provisioning is always triggered when changes are applied to objects in the metaverse. Quando vengono apportate modifiche agli oggetti del metaverse, il motore di sincronizzazione può eseguire tutte le attività seguenti durante il processo di provisioning:When changes are made to metaverse objects, sync engine can perform any of the following tasks as part of the provisioning process:

  • Creare oggetti uniti, dove un oggetto del metaverse viene collegato a un nuovo oggetto di esportazione creato.Create joined objects, where a metaverse object is linked to a newly created export object.
  • Rinominare un oggetto unito.Rename a joined object.
  • Separare i collegamenti tra un oggetto del metaverse e gli oggetti di staging, creando un oggetto separato.Disjoin links between a metaverse object and staging objects, creating a disjoined object.

Se il provisioning richiede al motore di sincronizzazione di creare un nuovo oggetto connettore, l'oggetto di staging a cui l'oggetto del metaverse è collegato è sempre un oggetto di esportazione, perché l'oggetto non esiste ancora nell'origine dati connessa.If provisioning requires sync engine to create a new connector object, the staging object to which the metaverse object is linked is always an export object, because the object does not yet exist in the connected data source.

Se il provisioning richiede al motore di sincronizzazione di separare un oggetto unito, creando un oggetto separato, viene attivato il deprovisioning.If provisioning requires sync engine to disjoin a joined object, creating a disjoined object, deprovisioning is triggered. Il processo di deprovisioning elimina l'oggetto.The deprovisioning process deletes the object.

Durante il deprovisioning, l'eliminazione di un oggetto di esportazione non comporta l'eliminazione fisica dell'oggetto.During deprovisioning, deleting an export object does not physically delete the object. L'oggetto viene contrassegnato come deleted, a indicare che l'operazione di eliminazione viene inserita temporaneamente nell'oggetto.The object is flagged as deleted, which means that the delete operation is staged on the object.

L'esportazione del flusso degli attributi viene eseguita anche durante il processo di sincronizzazione in uscita, analogamente a come l'importazione del flusso degli attributi viene eseguita durante la sincronizzazione in ingresso.Export attribute flow also occurs during the outbound synchronization process, similar to the way that import attribute flow occurs during inbound synchronization. L'esportazione del flusso dagli attributi viene eseguita solo tra gli oggetti del metaverse e di esportazione uniti.Export attribute flow occurs only between metaverse and export objects that are joined.

Processo di esportazioneExport process

Durante il processo di esportazione, il motore di sincronizzazione esamina tutti gli oggetti di esportazione contrassegnati come pending export nello spazio connettore e quindi invia gli aggiornamenti all'origine dati connessa.During the export process, sync engine examines all export objects that are flagged as pending export in the connector space, and then sends updates to the connected data source.

Il motore di sincronizzazione può determinare la riuscita di un'operazione di esportazione, ma non riesce a determinare che il processo di gestione delle identità è stato completato.The sync engine can determine the success of an export but it cannot sufficiently determine that the identity management process is complete. Gli oggetti nell'origine dati connessa possono sempre essere modificati da altri processi.Objects in the connected data source can always be changed by other processes. Poiché il motore di sincronizzazione non ha una connessione persistente all'origine dati connessa, non è sufficiente fare ipotesi sulle proprietà di un oggetto nell'origine dati connessa basandosi solo su una notifica di esportazione riuscita.Because sync engine does not have a persistent connection to the connected data source, it is not sufficient to make assumptions about the properties of an object in the connected data source based only on a successful export notification.

Ad esempio, un processo nell'origine dati connessa può reimpostare gli attributi dell'oggetto sui valori originali, ovvero l'origine dati connessa può sovrascrivere i valori subito dopo il push dei dati da parte del motore di sincronizzazione e l'applicazione dei dati stessi nell'origine dati connessa.For example, a process in the connected data source could change the object’s attributes back to their original values (that is, the connected data source could overwrite the values immediately after the data is pushed out by sync engine and successfully applied in the connected data source).

Il motore di sincronizzazione archivia le informazioni sullo stato dell'importazione e dell'esportazione di ogni oggetto di staging.The sync engine stores export and import status information about each staging object. Se i valori degli attributi specificati nell'elenco di inclusione degli attributi sono stati modificati dopo l'ultima esportazione, l'archiviazione dello stato dell'importazione e dell'esportazione consente al motore di sincronizzazione di reagire in modo appropriato.If values of the attributes that are specified in the attribute inclusion list have changed since the last export, the storage of import and export status enables sync engine to react appropriately. Il motore di sincronizzazione usa il processo di importazione per confermare i valori degli attributi esportati nell'origine dati connessa.Sync engine uses the import process to confirm attribute values that have been exported to the connected data source. Un confronto tra le informazioni importate e quelle esportate, come illustrato nella figura seguente, consente al motore di sincronizzazione di determinare se l'esportazione è riuscita o se è necessario ripeterla.A comparison between the imported and exported information, as shown in the following illustration, enables sync engine to determine whether the export was successful or if it needs to be repeated.

Architettura 7

Il motore di sincronizzazione, ad esempio, se esporta l'attributo C, che ha valore 5, in un'origine dati connessa, archivia C=5 nella memoria degli stati di esportazione.For example, if sync engine exports attribute C, which has a value of 5, to a connected data source, it stores C=5 in its export status memory. Ogni ulteriore esportazione eseguita su questo oggetto comporta un tentativo di esportare di nuovo C=5 nell'origine dati connessa perché il motore di sincronizzazione presuppone che questo valore non sia stato applicato in modo persistente all'oggetto (a meno che di recente non sia stato importato un valore diverso dall'origine dati connessa).Each additional export on this object results in an attempt to export C=5 to the connected data source again because sync engine assumes that this value has not been persistently applied to the object (that is, unless a different value was imported recently from the connected data source). La memoria di esportazione viene cancellata quando C=5 viene ricevuto durante un'operazione di importazione eseguita sull'oggetto.The export memory is cleared when C=5 is received during an import operation on the object.

Passaggi successiviNext steps

Ulteriori informazioni sulla configurazione della sincronizzazione di Azure AD Connect.Learn more about the Azure AD Connect sync configuration.

Ulteriori informazioni su Integrazione delle identità locali con Azure Active Directory.Learn more about Integrating your on-premises identities with Azure Active Directory.