Azure AD Connect 同期: アーキテクチャの概要Azure AD Connect sync: Understanding the architecture

このトピックでは、Azure AD Connect 同期の基本的なアーキテクチャについて説明します。多くの点で、前身の MIIS 2003、ILM 2007、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. Azure AD Connect sync は、これらのテクノロジが進化したものです。Azure AD Connect sync is the evolution of these technologies. これらの以前のテクノロジのいずれかに慣れていれば、このトピックの内容も既によくご存知のことと思われます。If you are familiar with any of these earlier technologies, the content of this topic will be familiar to you as well. 同期テクノロジについて初めて学ぶ場合は、このトピックを読むことをお勧めします。If you are new to synchronization, then this topic is for you. ただし、このトピックの内容を隅々まで理解しなくても、(このトピックでは同期エンジンと呼んでいる) Azure AD Connect 同期を問題なくカスタマイズできます。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

同期エンジンは、接続された複数のデータ ソースに格納されているオブジェクトの統合ビューを作成し、それらのデータ ソース内の ID 情報を管理します。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. 統合ビューは、接続されたデータ ソースから取得された ID 情報と、この情報の処理方法を指定する一連のルールによって決まります。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.

接続されたデータ ソースとコネクタConnected Data Sources and Connectors

同期エンジンは、Active Directory や SQL Server データベースなどのさまざまなデータ リポジトリからの ID 情報を処理します。The sync engine processes identity information from different data repositories, such as Active Directory or a SQL Server database. データベースのような形式でデータを管理し、標準的なデータ アクセス メソッドを提供するすべてのデータ リポジトリが、同期エンジンのデータ ソースの候補になります。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. 同期エンジンによって同期されるデータ リポジトリは、接続されたデータ ソースまたは接続されたディレクトリ (CD) と呼ばれます。The data repositories that are synchronized by sync engine are called connected data sources or connected directories (CD).

同期エンジンは、接続されたデータ ソースとの対話を コネクタと呼ばれるモジュール内にカプセル化します。The sync engine encapsulates interaction with a connected data source within a module called a Connector. 接続されたデータ ソースの種類ごとに専用のコネクタがあります。Each type of connected data source has a specific Connector. コネクタは、必要な操作を接続されたデータ ソースが理解する形式に変換します。The Connector translates a required operation into the format that the connected data source understands.

コネクタは、API 呼び出しを行って、接続されたデータ ソースと ID 情報を交換します (読み取りと書き込みの両方)。Connectors make API calls to exchange identity information (both read and write) with a connected data source. また、拡張可能な接続フレームワークを使用してカスタム コネクタを追加することもできます。It is also possible to add a custom Connector using the extensible connectivity framework. 次の図では、コネクタが接続されたデータ ソースを同期エンジンに接続する方法を示します。The following illustration shows how a Connector connects a connected data source to the sync engine.

Arch1

データはどちらの方向にも流れることができますが、同時に双方向に流れることはできません。Data can flow in either direction, but it cannot flow in both directions simultaneously. つまり、コネクタは、接続されたデータ ソースから同期エンジンへの、または同期エンジンから接続されたデータ ソースへの、データ フローを許可するように構成できますが、1 つのオブジェクトと属性について一度に実行できる操作は 1 つだけです。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. 方向は、オブジェクトごと、および属性ごとに異なっていてもかまいません。The direction can be different for different objects and for different attributes.

コネクタを構成するには、同期するオブジェクトの種類を指定します。To configure a Connector, you specify the object types that you want to synchronize. オブジェクトの種類を指定することで、同期プロセスに含まれるオブジェクトの範囲を定義します。Specifying the object types defines the scope of objects that are included in the synchronization process. 次に、同期する属性を選択します。これは、対象属性リストと呼ばれます。The next step is to select the attributes to synchronize, which is known as an attribute inclusion list. これらの設定は、ビジネス ルールの変化に対応していつでも変更できます。These settings can be changed any time in response to changes to your business rules. Azure AD Connect インストール ウィザードを使用すると、これらの設定が自動的に構成されます。When you use the Azure AD Connect installation wizard, these settings are configured for you.

接続されたデータ ソースにオブジェクトをエクスポートするには、対象属性リストに、接続されたデータ ソースで特定のオブジェクトの種類を作成するために必要な最低限の属性が含まれる必要があります。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. たとえば、Active Directory にユーザー オブジェクトをエクスポートするには、sAMAccountName 属性が対象属性リストに含まれる必要があります。なぜなら、Active Directory のすべてのユーザー オブジェクトでは、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. 繰り返しになりますが、この構成はインストール ウィザードによって自動的に行われます。Again, the installation wizard does this configuration for you.

接続されたデータ ソースがパーティションやコンテナーなどの構造化されたコンポーネントを使用してオブジェクトを管理している場合、特定のソリューションに使用される接続されたデータ ソースの領域を制限できます。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.

同期エンジンの名前空間の内部構造Internal structure of the sync engine namespace

同期エンジンの名前空間全体は、ID 情報を格納する 2 つの名前空間で構成されます。The entire sync engine namespace consists of two namespaces that store the identity information. 次の 2 つの名前空間です。The two namespaces are:

  • コネクタ スペース (CS)The connector space (CS)
  • メタバース (MV)The metaverse (MV)

コネクタ スペース は、接続されたデータ ソースの指定されたオブジェクトの表現と、対象属性リストで指定されている属性を含む、ステージング領域です。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. 同期エンジンはコネクタ スペースを使用して、接続されたデータ ソースの変更内容を確認し、受信した変更をステージングします。The sync engine uses the connector space to determine what has changed in the connected data source and to stage incoming changes. また、同期エンジンは、接続されたデータ ソースへのエクスポート用に送信する変更をステージングするためにも、コネクタ スペースを使用します。The sync engine also uses the connector space to stage outgoing changes for export to the connected data source. 同期エンジンは、各コネクタに対するステージング領域として、個別のコネクタ スペースを保持します。The sync engine maintains a distinct connector space as a staging area for each Connector.

ステージング領域を使用することにより、同期エンジンは接続されたデータ ソースからの独立を維持し、接続されたデータ ソースの可用性やアクセス可能性による影響を受けません。By using a staging area, the sync engine remains independent of the connected data sources and is not affected by their availability and accessibility. その結果、ステージング領域のデータを使用して、いつでも ID 情報を処理できます。As a result, you can process identity information at any time by using the data in the staging area. 同期エンジンは、最後の通信セッションが終了した後で接続されたデータ ソースの内部で行われた変更のみを要求したり、接続されたデータ ソースがまだ受信していない ID 情報の変更だけをプッシュしたりできるので、同期エンジンと接続されたデータ ソースの間のネットワーク トラフィックが減ります。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.

さらに、同期エンジンはコネクタ スペースにステージングしているすべてのオブジェクトに関するステータス情報を保持します。In addition, sync engine stores status information about all objects that it stages in the connector space. 新しいデータを受信すると、同期エンジンはデータが既に同期されているかどうかを常に評価します。When new data is received, sync engine always evaluates whether the data has already been synchronized.

メタバース は、複数の接続されたデータ ソースからの集約された ID 情報を格納するストレージ領域であり、すべての結合されたオブジェクトに関する単一のグローバルな統合ビューを提供します。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. メタバース オブジェクトは、接続されたデータ ソースから取得された ID 情報と、同期プロセスをカスタマイズできる一連のルールを基にして作成されます。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.

次の図では、同期エンジン内のコネクタ スペース名前空間とメタバース名前空間を示します。The following illustration shows the connector space namespace and the metaverse namespace within the sync engine.

Arch2

同期エンジンの ID オブジェクトSync engine identity objects

同期エンジンのオブジェクトは、接続されたデータ ソース内のオブジェクト、または同期エンジンが保持するこれらのオブジェクトの統合ビューのいずれかを表現したものです。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. すべての同期エンジン オブジェクトは、グローバル一意識別子 (GUID) を持つ必要があります。Every sync engine object must have a globally unique identifier (GUID). GUID により、データの整合性と、オブジェクト間の高速の関係が提供されます。GUIDs provide data integrity and express relationships between objects.

コネクタ スペース オブジェクトConnector space objects

同期エンジンは、接続されたデータ ソースと通信するとき、接続されたデータ ソース内の ID 情報を読み取り、その情報を使用してコネクタ スペース内に ID オブジェクトの表現を作成します。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. これらのオブジェクトを個別に作成または削除することはできません。You cannot create or delete these objects individually. ただし、コネクタ スペース内のすべてのオブジェクトを手動で削除することはできます。However, you can manually delete all objects in a connector space.

コネクタ スペース内のすべてのオブジェクトには 2 つの属性があります。All objects in the connector space have two attributes:

  • グローバル一意識別子 (GUID)A globally unique identifier (GUID)
  • 識別名 (DN)A distinguished name (also known as DN)

接続されたデータ ソースが固有の属性をオブジェクトに割り当てている場合、コネクタ スペース内のオブジェクトはアンカー属性を持つこともできます。If the connected data source assigns a unique attribute to the object, then objects in the connector space can also have an anchor attribute. アンカー属性は、接続されたデータ ソース内のオブジェクトを一意に識別します。The anchor attribute uniquely identifies an object in the connected data source. 同期エンジンは、アンカーを使用して、接続されたデータ ソース内でこのオブジェクトの対応する表現を見つけます。The sync engine uses the anchor to locate the corresponding representation of this object in the connected data source. 同期エンジンは、オブジェクトの有効期間全体を通してオブジェクトのアンカーが変化しないものと想定します。Sync engine assumes that the anchor of an object never changes over the lifetime of the object.

コネクタの多くは、オブジェクトをインポートするときに、既知の一意の識別子を使用して各オブジェクトのアンカーを自動的に生成します。Many of the Connectors use a known unique identifier to generate an anchor automatically for each object when it is imported. たとえば、Active Directory コネクタは objectGUID 属性をアンカーに使用します。For example, the Active Directory Connector uses the objectGUID attribute for an anchor. 接続されたデータ ソースが明確に定義された一意の識別子を提供しない場合は、コネクタ構成の一部としてアンカーの生成を指定できます。For connected data sources that do not provide a clearly defined unique identifier, you can specify anchor generation as part of the Connector configuration.

その場合、アンカーは、いずれも変化せず、コネクタ スペース内のオブジェクトを一意に識別する、オブジェクトの種類が備える 1 つ以上の固有の属性から作成されます (たとえば、従業員番号やユーザー ID)。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).

コネクタ スペース オブジェクトは次のいずれかです。A connector space object can be one of the following:

  • ステージング オブジェクトA staging object
  • プレースホルダーA placeholder

ステージング オブジェクトStaging Objects

ステージング オブジェクトは、指定されたオブジェクトの種類の接続されたデータ ソースでのインスタンスを表します。A staging object represents an instance of the designated object types from the connected data source. GUID と識別名に加えて、ステージング オブジェクトはオブジェクトの種類を示す値を常に持ちます。In addition to the GUID and the distinguished name, a staging object always has a value that indicates the object type.

インポートされたステージング オブジェクトは常に、アンカー属性の値を持っています。Staging objects that have been imported always have a value for the anchor attribute. 同期エンジンによって新しくプロビジョニングされ、接続されたデータ ソースで作成処理中のステージング オブジェクトには、アンカー属性の値はありません。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.

また、ステージング オブジェクトは、ビジネス属性の現在の値、および同期エンジンが同期プロセスを実行するために必要な運用情報も保持しています。Staging objects also carry current values of business attributes, and operational information needed by sync engine to perform the synchronization process. 運用情報には、ステージング オブジェクトでステージングされている更新の種類を示すフラグが含まれます。Operational information includes flags that indicate the type of updates that are staged on the staging object. ステージング オブジェクトは、まだ処理されていない新しい ID 情報を接続されたデータ ソースから受け取ると、 インポート保留中のフラグを設定されます。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. 接続されたデータ ソースにまだエクスポートされていない新しい ID 情報を持つステージング オブジェクトには、 エクスポート保留中のフラグが設定されます。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.

ステージング オブジェクトは、インポート オブジェクトまたはエクスポート オブジェクトです。A staging object can be an import object or an export object. 同期エンジンは、接続されたデータ ソースから受信したオブジェクト情報を使用して、インポート オブジェクトを作成します。The sync engine creates an import object by using object information received from the connected data source. 同期エンジンは、コネクタで選択されたオブジェクトの種類のいずれかに一致する新しいオブジェクトの存在に関する情報を受信すると、接続されたデータ ソース内のオブジェクトの表現として、コネクタ スペースにインポート オブジェクトを作成します。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.

次の図は、接続されたデータ ソース内のオブジェクトを表すインポート オブジェクトを示したものです。The following illustration shows an import object that represents an object in the connected data source.

Arch3

同期エンジンは、メタバースのオブジェクト情報を使用して、エクスポート オブジェクトを作成します。The sync engine creates an export object by using object information in the metaverse. エクスポート オブジェクトは、次の通信セッションの間に接続されたデータ ソースにエクスポートされます。Export objects are exported to the connected data source during the next communication session. 同期エンジンから見ると、エクスポート オブジェクトは接続されたデータ ソースにまだ存在していません。From the perspective of the sync engine, export objects do not exist in the connected data source yet. そのため、エクスポート オブジェクトのアンカー属性は使用できません。Therefore, the anchor attribute for an export object is not available. 接続されたデータ ソースは、同期エンジンからオブジェクトを受信した後、オブジェクトのアンカー属性用に一意の値を作成します。After it receives the object from sync engine, the connected data source creates a unique value for the anchor attribute of the object.

次の図では、メタバース内の ID 情報を使用してエクスポート オブジェクトが作成される方法を示します。The following illustration shows how an export object is created by using identity information in the metaverse.

Arch4

同期エンジンは、接続されたデータ ソースからオブジェクトを再インポートすることによって、オブジェクトのエクスポートを確認します。The sync engine confirms the export of the object by reimporting the object from the connected data source. その接続されたデータ ソースからの次のインポート中に同期エンジンがオブジェクトを受信すると、エクスポート オブジェクトはインポート オブジェクトになります。Export objects become import objects when sync engine receives them during the next import from that connected data source.

プレースホルダーPlaceholders

同期エンジンは、フラットな名前空間を使用してオブジェクトを格納します。The sync engine uses a flat namespace to store objects. ただし、Active Directory などの一部の接続されたデータ ソースは、階層形式の名前空間を使用します。However, some connected data sources such as Active Directory use a hierarchical namespace. 階層型名前空間からフラットな名前空間に情報を変換するため、同期エンジンはプレースホルダーを使用して階層を維持します。To transform information from a hierarchical namespace into a flat namespace, sync engine uses placeholders to preserve the hierarchy.

各プレースホルダーは、同期エンジンにインポートされていないが、階層の名前を作成するために必要な、オブジェクトの階層名のコンポーネントを表します (たとえば、組織単位) 。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. プレースホルダーは、コネクタ スペースのステージング オブジェクトではないオブジェクトに対する、接続されたデータ ソース内の参照によって作成されたギャップを埋めます。They fill gaps created by references in the connected data source to objects that are not staging objects in the connector space.

また、同期エンジンは、まだインポートされていない参照先オブジェクトの格納にもプレースホルダーを使用します。The sync engine also uses placeholders to store referenced objects that have not yet been imported. たとえば、Abbie Spencer オブジェクトのマネージャー属性を含むように同期が構成されていて、受信した値がまだインポートされていないオブジェクトである場合 (CN=Lee Sperry,CN=Users,DC=fabrikam,DC=com など)、マネージャー情報はプレースホルダーとしてコネクタ スペースに格納されます。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. 後でマネージャー オブジェクトがインポートされると、プレースホルダー オブジェクトはマネージャーを表すステージング オブジェクトによって上書きされます。If the manager object is later imported, the placeholder object is overwritten by the staging object that represents the manager.

メタバース オブジェクトMetaverse objects

メタバース オブジェクトには、同期エンジンが保持する、コネクタ スペース内のステージング オブジェクトの集約されたビューが含まれます。A metaverse object contains the aggregated view that sync engine has of the staging objects in the connector space. 同期エンジンは、インポート オブジェクトの情報を使用してメタバース オブジェクトを作成します。Sync engine creates metaverse objects by using the information in import objects. 複数のコネクタ スペース オブジェクトを 1 つのメタバース オブジェクトにリンクできますが、1 つのコネクタ スペース オブジェクトを複数のメタバース オブジェクトにリンクすることはできません。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.

メタバース オブジェクトは、手動で作成または削除することはできません。Metaverse objects cannot be manually created or deleted. 同期エンジンは、コネクタ スペース内のどのコネクタ スペース オブジェクトにもリンクしなくなったメタバース オブジェクトを自動的に削除します。The sync engine automatically deletes metaverse objects that do not have a link to any connector space object in the connector space.

接続されたデータ ソースのオブジェクトをメタバース内の対応するオブジェクトの種類にマップするため、同期エンジンは、オブジェクトの種類と関連する属性の定義済みのセットを含む拡張可能なスキーマを提供します。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. メタバース オブジェクトに対する新しいオブジェクトの種類と属性を作成できます。You can create new object types and attributes for metaverse objects. 属性は単一値でも複数値でもよく、属性の型は文字列、参照、数値、およびブール値を使用できます。Attributes can be single-valued or multivalued, and the attribute types can be strings, references, numbers, and Boolean values.

ステージング オブジェクトとメタバース オブジェクトの間の関係Relationships between staging objects and metaverse objects

同期エンジンの名前空間内のデータ フローは、ステージング オブジェクトとメタバース オブジェクトの間のリンク関係によって実現されます。Within the sync engine namespace, the data flow is enabled by the link relationship between staging objects and metaverse objects. メタバース オブジェクトにリンクされているステージング オブジェクトは、結合オブジェクト (またはコネクタ オブジェクト) と呼ばれます。A staging object that is linked to a metaverse object is called a joined object (or connector object). メタバース オブジェクトにリンクされていないステージング オブジェクトは、非結合オブジェクト (または非コネクタ オブジェクト) と呼ばれます。A staging object that is not linked to a metaverse object is called a disjoined object (or disconnector object). 接続されたディレクトリのデータのインポートとエクスポートを行うコネクタと混乱しないよう、結合および非結合という用語の方を使います。The terms joined and disjoined are preferred to not confuse with the Connectors responsible for importing and exporting data from a connected directory.

プレースホルダーがメタバース オブジェクトにリンクされることはありません。Placeholders are never linked to a metaverse object

結合オブジェクトは、ステージング オブジェクトと、1 つのメタバース オブジェクトに対するそのリンク関係によって構成されます。A joined object comprises a staging object and its linked relationship to a single metaverse object. 結合オブジェクトは、コネクタ スペース オブジェクトとメタバース オブジェクトの間で属性値を同期するために使用されます。Joined objects are used to synchronize attribute values between a connector space object and a metaverse object.

同期の間にステージング オブジェクトが結合オブジェクトになると、ステージング オブジェクトとメタバース オブジェクトの間を属性がフローできるようになります。When a staging object becomes a joined object during synchronization, attributes can flow between the staging object and the metaverse object. 属性フローは双方向であり、インポート属性ルールとエクスポート属性ルールを使用して構成されます。Attribute flow is bidirectional and is configured by using import attribute rules and export attribute rules.

1 つのコネクタ スペース オブジェクトは、1 つのメタバース オブジェクトだけとリンクできます。A single connector space object can be linked to only one metaverse object. ただし、次の図に示すように、各メタバース オブジェクトは、同じコネクタ スペース内または異なるコネクタ スペース内の複数のコネクタ スペース オブジェクトにリンクできます。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.

Arch5

ステージング オブジェクトとメタバース オブジェクトのリンク関係は永続的であり、ルールを指定することによってのみ削除できます。The linked relationship between the staging object and a metaverse object is persistent and can be removed only by rules that you specify.

非結合オブジェクトは、どのメタバース オブジェクトにもリンクされていないステージング オブジェクトです。A disjoined object is a staging object that is not linked to any metaverse object. 非結合オブジェクトの属性値は、メタバース内ではそれ以上処理されません。The attribute values of a disjoined object are not processed any further within the metaverse. 接続されたデータ ソース内の対応するオブジェクトの属性値は、同期エンジンによって更新されません。The attribute values of the corresponding object in the connected data source are not updated by sync engine.

非結合オブジェクトを使用すると、ID 情報を同期エンジンに保存して、後で処理できます。By using disjoined objects, you can store identity information in sync engine and process it later. コネクタ スペース内に非結合オブジェクトとしてステージング オブジェクトを保持することには、多くの利点があります。Keeping a staging object as a disjoined object in the connector space has many advantages. システムはこのオブジェクトに関する必要な情報を既にステージングしてあるため、接続されたデータ ソースからの次のインポート時に再びこのオブジェクトの表現を作成する必要はありません。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. これにより、現在は接続されたデータ ソースへの接続がなくても、同期エンジンは接続されたデータ ソースの完全なスナップショットを常に持っています。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. ルールを指定することで、非結合オブジェクトを結合オブジェクトに、または結合オブジェクトを非結合オブジェクトに変換できます。Disjoined objects can be converted into joined objects, and vice versa, depending on the rules that you specify.

インポート オブジェクトは、非結合オブジェクトとして作成されます。An import object is created as a disjoined object. エクスポート オブジェクトは結合オブジェクトである必要があります。An export object must be a joined object. システムのロジックによりこの規則が適用され、結合オブジェクトではなくなったエクスポート オブジェクトはすべて削除されます。The system logic enforces this rule and deletes every export object that is not a joined object.

同期エンジンの ID 管理プロセスSync engine identity management process

ID 管理プロセスは、異なる接続されたデータ ソース間で ID 情報を更新する方法を制御します。The identity management process controls how identity information is updated between different connected data sources. ID 管理は 3 つのプロセスで行われます。Identity management occurs in three processes:

  • [インポート]Import
  • SynchronizationSynchronization
  • エクスポートExport

インポート プロセスの間に、同期エンジンは接続されたデータ ソースから受信した ID 情報を評価します。During the import process, sync engine evaluates the incoming identity information from a connected data source. 変更が検出されると、新しいステージング オブジェクトを作成するか、またはコネクタ スペース内の既存のステージング オブジェクトを同期用に更新します。When changes are detected, it either creates new staging objects or updates existing staging objects in the connector space for synchronization.

同期プロセスでは、同期エンジンは、コネクタ スペース内で発生した変更を反映するようにメタバースを更新し、メタバース内で発生した変更を反映するようにコネクタ スペースを更新します。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.

エクスポート プロセスでは、同期エンジンは、ステージング オブジェクトにステージングされてエクスポート保留中のフラグが設定された変更をプッシュします。During the export process, sync engine pushes out changes that are staged on staging objects and that are flagged as pending export.

次の図では、ある接続されたデータ ソースから別の接続されたデータ ソースに ID 情報が流れたときにどこで各プロセスが発生するかを示します。The following illustration shows where each of the processes occurs as identity information flows from one connected data source to another.

Arch6

インポート プロセスImport process

インポート プロセスの間に、同期エンジンは ID 情報に対する更新を評価します。During the import process, sync engine evaluates updates to identity information. 同期エンジンは、接続されたデータ ソースから受信した ID 情報をステージング オブジェクトについての ID 情報と比較し、ステージング オブジェクトの更新が必要かどうかを判断します。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. ステージング オブジェクトを新しいデータで更新する必要がある場合、ステージング オブジェクトにはインポート保留中のフラグが設定されます。If it is necessary to update the staging object with new data, the staging object is flagged as pending import.

同期の前にコネクタ スペースにオブジェクトをステージングすることで、同期エンジンは変更のあった ID 情報だけを処理できます。By staging objects in the connector space before synchronization, sync engine can process only the identity information that has changed. この処理には次のような利点があります。This process provides the following benefits:

  • 効率的な同期Efficient synchronization. 同期中に処理されるデータの量を最小限にできます。The amount of data processed during synchronization is minimized.
  • 効率的な再同期Efficient resynchronization. 同期エンジンをデータ ソースに再接続しなくても、同期エンジンによる ID 情報の処理方法を変更できます。You can change how sync engine processes identity information without reconnecting the sync engine to the data source.
  • 同期をプレビューする機会Opportunity to preview synchronization. 同期をプレビューして、ID 管理プロセスに関する仮定が正しいことを確認できます。You can preview synchronization to verify that your assumptions about the identity management process are correct.

コネクタで指定されている各オブジェクトについて、同期エンジンは最初にコネクタのコネクタ スペース内でオブジェクトの表現の検索を試みます。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. 同期エンジンは、コネクタ スペース内のすべてのステージング オブジェクトを調べ、一致するアンカー属性を持つ対応するステージング オブジェクトを見つけようとします。Sync engine examines all staging objects in the connector space and tries to find a corresponding staging object that has a matching anchor attribute. 一致するアンカー属性を持つ既存のステージング オブジェクトがない場合、同期エンジンは、同じ識別名を持つ対応するステージング オブジェクトを検索します。If no existing staging object has a matching anchor attribute, sync engine tries to find a corresponding staging object with the same distinguished name.

識別名だけ一致してアンカーは一致しないステージング オブジェクトが見つかると、次の特別な動作が行われます。When sync engine finds a staging object that matches by distinguished name but not by anchor, the following special behavior occurs:

  • コネクタ スペース内にあるオブジェクトがアンカーを持っていない場合は、同期エンジンはこのオブジェクトをコネクタ スペースから削除し、それがリンクしているメタバース オブジェクトを、 次の同期実行時にプロビジョニングを再試行とマークします。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. その後、新しいインポート オブジェクトを作成します。Then it creates the new import object.
  • コネクタ スペース内にあるオブジェクトがアンカーを持っている場合は、同期エンジンはこのオブジェクトが接続されたディレクトリで名前を変更されているか削除されているものとみなします。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. コネクタ スペース オブジェクトに一時的な新しい識別名を割り当てて、受信したオブジェクトをステージングできるようにします。It assigns a temporary, new distinguished name for the connector space object so that it can stage the incoming object. 古いオブジェクトは 一時的になり、コネクタが名前の変更または削除をインポートして状況を解決するのを待機します。The old object then becomes transient, waiting for the Connector to import the rename or deletion to resolve the situation.

コネクタで指定されたオブジェクトに対応するステージング オブジェクトが見つかった場合、同期エンジンは適用する変更の種類を判断します。If sync engine locates a staging object that corresponds to the object specified in the Connector, it determines what kind of changes to apply. たとえば、接続されたデータ ソースのオブジェクトの名前変更や削除、またはオブジェクトの属性値の更新だけなどです。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.

更新されたデータのあるステージング オブジェクトは、インポート保留中としてマークされます。Staging objects with updated data are marked as pending import. さまざまな種類のインポート保留中を利用できます。Different types of pending imports are available. インポート プロセスの結果に応じて、コネクタ スペース内のステージング オブジェクトには次のいずれかのインポート保留中種類が設定されます。Depending on the result of the import process, a staging object in the connector space has one of the following pending import types:

  • なしNone. ステージング オブジェクトのどの属性にも変更はありません。No changes to any of the attributes of the staging object are available. 同期エンジンはこのタイプにはインポート保留中のフラグを設定しません。Sync engine does not flag this type as pending import.
  • 追加Add. ステージング オブジェクトは、コネクタ スペース内の新しいインポート オブジェクトです。The staging object is a new import object in the connector space. 同期エンジンは、メタバース内の追加処理のために、このタイプにインポート保留中のフラグを設定します。Sync engine flags this type as pending import for additional processing in the metaverse.
  • 更新Update. 同期エンジンは、コネクタ スペース内で対応するステージング オブジェクトを探し、属性への更新をメタバースで処理できるように、このタイプにインポート保留中フラグを設定します。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. 更新には、オブジェクトの名前変更が含まれます。Updates include object renaming.
  • 削除Delete. 同期エンジンは、コネクタ スペース内で対応するステージング オブジェクトを探し、結合オブジェクトを削除できるように、このタイプにインポート保留中フラグを設定します。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. 同期エンジンはコネクタ スペースで対応するステージング オブジェクトを検索しますが、オブジェクトの種類が一致しません。Sync engine finds a corresponding staging object in the connector space, but the object types do not match. その場合は、削除/追加の変更がステージングされます。In this case, a delete-add modification is staged. 削除/追加の変更は、オブジェクトの種類が変わったときは異なるルール セットがそのオブジェクトに適用されるため、オブジェクトの完全な同期を行う必要があることを、同期エンジンに指示します。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.

ステージング オブジェクトのインポート保留中ステータスを設定することで、データが更新されたオブジェクトだけを処理できるので、同期中に処理されるデータの量を大幅に減らすことができます。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.

同期プロセスSynchronization process

同期は、2 つの関連するプロセスで構成されます。Synchronization consists of two related processes:

  • 受信同期: コネクタ スペース内のデータを使用して、メタバースの内容が更新されます。Inbound synchronization, when the content of the metaverse is updated by using the data in the connector space.
  • 送信同期: メタバース内のデータを使用して、コネクタ スペースの内容が更新されます。Outbound synchronization, when the content of the connector space is updated by using data in the metaverse.

コネクタ スペース内のステージングされた情報を使用することにより、受信同期プロセスは、接続されたデータ ソースに格納されているデータの統合ビューをメタバースに作成します。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. ルールの構成方法に応じて、すべてのステージング オブジェクト、またはインポート保留中の情報があるステージング オブジェクトだけが集約されます。Either all staging objects or only those with a pending import information are aggregated, depending on how the rules are configured.

送信同期プロセスは、メタバース オブジェクトが変化するとエクスポート オブジェクトを更新します。The outbound synchronization process updates export objects when metaverse objects change.

受信同期は、接続されたデータ ソースから受信した ID 情報の統合ビューをメタバースに作成します。Inbound synchronization creates the integrated view in the metaverse of the identity information that is received from the connected data sources. 同期エンジンは、接続されたデータ ソースからの最新の ID 情報を使用して、いつでも ID 情報を処理できます。Sync engine can process identity information at any time by using the latest identity information that it has from the connected data source.

受信同期Inbound synchronization

受信同期には次のプロセスが含まれます。Inbound synchronization includes the following processes:

  • プロビジョニング (このプロセスを送信同期のプロビジョニングと区別することが重要な場合は、プロジェクションと呼ぶこともできます)。Provision (also called Projection if it is important to distinguish this process from outbound synchronization provisioning). 同期エンジンは、ステージング オブジェクトに基づいて新しいメタバース オブジェクトを作成し、それらをリンクします。The Sync engine creates a new metaverse object based on a staging object and links them. プロビジョニングはオブジェクト レベルの操作です。Provision is an object-level operation.
  • 結合Join. 同期エンジンは、ステージング オブジェクトを既存のメタバース オブジェクトにリンクします。The Sync engine links a staging object to an existing metaverse object. 結合はオブジェクト レベルの操作です。A join is an object-level operation.
  • インポート属性フローImport attribute flow. 同期エンジンは、メタバース内のオブジェクトの属性フローと呼ばれる属性値を更新します。Sync engine updates the attribute values, called attribute flow, of the object in the metaverse. インポート属性フローは、ステージング オブジェクトとメタバース オブジェクト間のリンクを必要とする属性レベルの操作です。Import attribute flow is an attribute-level operation that requires a link between a staging object and a metaverse object.

プロビジョニングは、メタバースにオブジェクトを作成する唯一のプロセスです。Provision is the only process that creates objects in the metaverse. プロビジョニングは、非結合オブジェクトであるインポート オブジェクトのみに影響します。Provision affects only import objects that are disjoined objects. プロビジョニングの間に、同期エンジンは、インポート オブジェクトの種類に対応するメタバース オブジェクトを作成し、両方のオブジェクト間にリンクを確立することによって、結合オブジェクトを作成します。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.

結合プロセスも、インポート オブジェクトとメタバース オブジェクトの間にリンクを確立します。The join process also establishes a link between import objects and a metaverse object. 結合とプロビジョニングの違いは、結合プロセスではインポート オブジェクトを既存のメタバース オブジェクトにリンクする必要があるのに対し、プロビジョニング プロセスでは新しいメタバース オブジェクトを作成することです。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.

同期エンジンは、同期ルールの構成で指定されている条件を使用して、メタバース オブジェクトへのインポート オブジェクトの結合を試みます。Sync engine tries to join an import object to a metaverse object by using criteria that is specified in the Synchronization Rule configuration.

プロビジョニング プロセスと結合プロセスの間に、同期エンジンは、非結合オブジェクトをメタバース オブジェクトにリンクすることによって両者を結合します。During the provision and join processes, sync engine links a disjoined object to a metaverse object, making them joined. これらのオブジェクト レベルの操作が完了した後、同期エンジンは、関連付けられたメタバース オブジェクトの属性値を更新できます。After these object-level operations are completed, sync engine can update the attribute values of the associated metaverse object. このプロセスは、インポート属性フローと呼ばれます。This process is called import attribute flow.

インポート属性フローは、新しいデータを保持し、メタバース オブジェクトにリンクされている、すべてのインポート オブジェクトで発生します。Import attribute flow occurs on all import objects that carry new data and are linked to a metaverse object.

送信同期Outbound synchronization

送信同期は、メタバース オブジェクトが変化しているものの、削除されていない場合に、エクスポート オブジェクトを更新します。Outbound synchronization updates export objects when a metaverse object change but is not deleted. 送信同期の目的は、メタバース オブジェクトへの変更によりコネクタ スペースのステージング オブジェクトを更新する必要があるかどうかを評価することです。The objective of outbound synchronization is to evaluate whether changes to metaverse objects require updates to staging objects in the connector spaces. 場合によっては、全コネクタ スペース内のステージング オブジェクトの更新が必要になります。In some cases, the changes can require that staging objects in all connector spaces be updated. 変更されたステージング オブジェクトは、エクスポート保留中のフラグが設定され、エクスポート オブジェクトになります。Staging objects that are changed are flagged as pending export, making them export objects. このようなエクスポート オブジェクトは、その後、エクスポート プロセスの間に接続されたデータ ソースにプッシュされます。These export objects are later pushed out to the connected data source during the export process.

送信同期には 3 つのプロセスがあります。Outbound synchronization has three processes:

  • プロビジョニングProvisioning
  • プロビジョニング解除Deprovisioning
  • エクスポート属性フローExport attribute flow

プロビジョニングとプロビジョニング解除は、どちらもオブジェクト レベルの操作です。Provisioning and deprovisioning are both object-level operations. プロビジョニング解除を開始できるのはプロビジョニングだけなので、プロビジョニング解除はプロビジョニングに依存します。Deprovisioning depends on provisioning because only provisioning can initiate it. プロビジョニングがメタバース オブジェクトとエクスポート オブジェクトの間のリンクを削除すると、プロビジョニング解除がトリガーされます。Deprovisioning is triggered when provisioning removes the link between a metaverse object and an export object.

プロビジョニングは、メタバース内のオブジェクトに変更が適用されると常にトリガーされます。Provisioning is always triggered when changes are applied to objects in the metaverse. メタバース オブジェクトが変更されたとき、同期エンジンはプロビジョニング プロセスの一部として次のどのタスクでも実行できます。When changes are made to metaverse objects, sync engine can perform any of the following tasks as part of the provisioning process:

  • 結合オブジェクトの作成。新しく作成されたエクスポート オブジェクトにメタバース オブジェクトがリンクされます。Create joined objects, where a metaverse object is linked to a newly created export object.
  • 結合オブジェクトの名前の変更。Rename a joined object.
  • メタバース オブジェクトとステージング オブジェクトの間のリンクの切断。これにより、非結合オブジェクトが作成されます。Disjoin links between a metaverse object and staging objects, creating a disjoined object.

プロビジョニングの間に同期エンジンが新しいコネクタ オブジェクトを作成する必要がある場合、オブジェクトは接続されたデータ ソースにまだ存在しないため、メタバース オブジェクトがリンクされるステージング オブジェクトは常にエクスポート オブジェクトです。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.

プロビジョニングにおいて同期エンジンが結合オブジェクトを切断することにより、非結合オブジェクトを作成する必要がある場合、プロビジョニング解除がトリガーされます。If provisioning requires sync engine to disjoin a joined object, creating a disjoined object, deprovisioning is triggered. プロビジョニング解除プロセスではオブジェクトが削除されます。The deprovisioning process deletes the object.

プロビジョニング解除では、エクスポート オブジェクトを削除してもオブジェクトが物理的に削除されることはありません。During deprovisioning, deleting an export object does not physically delete the object. オブジェクトには 削除のフラグが設定され、削除操作がそのオブジェクトでステージングされていることを示します。The object is flagged as deleted, which means that the delete operation is staged on the object.

送信同期プロセスではエクスポート属性フローも発生し、これは受信同期での属性フローのインポートと似ています。Export attribute flow also occurs during the outbound synchronization process, similar to the way that import attribute flow occurs during inbound synchronization. エクスポート属性フローは、結合されているメタバース オブジェクトとエクスポート オブジェクトの間でのみ発生します。Export attribute flow occurs only between metaverse and export objects that are joined.

エクスポート プロセスExport process

エクスポート プロセスの間に、同期エンジンはコネクタ スペースでエクスポート保留中のフラグが設定されているすべてのエクスポート オブジェクトを調べて、接続されたデータ ソースに更新を送信します。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.

同期エンジンはエクスポートの成功を判断できますが、ID 管理プロセスが完了したことを十分に判断することはできません。The sync engine can determine the success of an export but it cannot sufficiently determine that the identity management process is complete. 接続されたデータ ソース内のオブジェクトは、常に他のプロセスによって変更される可能性があります。Objects in the connected data source can always be changed by other processes. 同期エンジンは接続されたデータ ソースへの永続的な接続を持たないため、エクスポート成功通知だけでは、接続されたデータ ソース内のオブジェクトのプロパティに関する判断を行うのに不十分です。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.

たとえば、接続されたデータ ソース内のプロセスがオブジェクトの属性を元の値に戻しているかもしれません (つまり、同期エンジンがデータをプッシュして接続されたデータ ソースに正常に適用した直後に、接続されたデータ ソースが値を上書きしている可能性があります)。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).

同期エンジンは、各ステージング オブジェクトに関するエクスポートとインポートのステータスの情報を保存しています。The sync engine stores export and import status information about each staging object. 前回のエクスポート以降に対象属性リストで指定されている属性の値が変化した場合、保存されているインポートとエクスポートのステータスにより同期エンジンは適切に対応できます。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. 同期エンジンは、インポート プロセスを使用して、接続されたデータ ソースにエクスポートされた属性値を確認します。Sync engine uses the import process to confirm attribute values that have been exported to the connected data source. 次の図に示すように、インポートされた情報とエクスポートされた情報を比較することで、同期エンジンは、エクスポートが成功したかどうか、または繰り返す必要があるかどうかを判断できます。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.

Arch7

たとえば、同期エンジンが接続されたデータ ソースに対して属性 C をエクスポートし、その値が 5 である場合、同期エンジンはエクスポート ステータス メモリに C = 5 を格納します。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. 同期エンジンはこの値が永続的にオブジェクトに適用されていないものとみなすので (つまり、接続されたデータ ソースから最近別の値がインポートされていない限り)、このオブジェクトに対する追加の各エクスポートでは、接続されたデータ ソースへの C = 5 のエクスポートが再度試みられます。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). オブジェクトのインポート操作で C = 5 を受信すると、エクスポート メモリはクリアされます。The export memory is cleared when C=5 is received during an import operation on the object.

次のステップNext steps

Azure AD Connect Sync の構成に関するページをご覧ください。Learn more about the Azure AD Connect sync configuration.

オンプレミス ID と Azure Active Directory の統合」をご覧ください。Learn more about Integrating your on-premises identities with Azure Active Directory.