0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Entra ConnectでADユーザーとEntra IDユーザーを紐づける仕組み

0
Last updated at Posted at 2026-09-09

目次

はじめに

Microsoft Entra Connect(以降、Entra Connectと表記)では、オンプレミスのActive Directory(以降、ADと表記)とクラウドのMicrosoft Entra ID(以降、Entra IDと表記)との間でユーザーやグループ、コンピュータなどのオブジェクトを同期します。このとき、どのADオブジェクトとどのEntra IDオブジェクトが同一であるかを識別する仕組みとして、sourceAnchorが使われています。

基本的に、Entra ConnectではADオブジェクトから新規のEntra IDオブジェクトを同期して作成しますが、既存のEntra IDオブジェクトをあとからADオブジェクトと同期する場合には、ハードマッチやソフトマッチの動作も理解しておく必要があります。

この記事では、Entra Connectを設定・利用したことがあっても、sourceAnchorの定義やsourceAnchorに用いられるobjectGUIDとms-DS-ConsistencyGuid、OnPremisesImmutableId属性の説明、さらにハードマッチとソフトマッチの違いがよく分からない方向けに解説します。

この記事では、ユーザーやグループ、コンピュータなどのオブジェクトのうち、最も基本的なユーザーオブジェクトについての内容を取り扱います。

sourceAnchorとは

sourceAnchorとは、Entra Connectにおける設定値の一つで、AD上のユーザーをEntra ID上で一意に識別するために使用されます。例えば、sourceAnchorにms-DS-ConsistencyGuidを設定した場合、ADユーザーのms-DS-ConsistencyGuid属性と、Entra IDユーザーのOnPremisesImmutableId属性が一致したユーザーを同一ユーザーとみなします。(実際には後述するエンコード処理が行われるため、そのまま属性を比較することはできません)

sourceAnchorの値が変化すると、Entra ID側で既存ユーザーとの対応関係を維持できなくなるため、sourceAnchorに設定する属性は原則変更することができず、また、Entra Connectの初回インストール時にのみ設定できます。sourceAnchorの設定値は、以前はObjectGUIDが使用されていましたが、現在はms-DS-ConsistencyGuidが既定値です。

警告
sourceAnchorの設定値は原則変更不可ですが、ms-DS-ConsistencyGuidへの変更のみサポートされています。詳細は、この記事内のsourceAnchorをms-DS-ConsistencyGuidに変更する方法を確認してください。

ObjectGUID

objectGUIDは、ADオブジェクト作成時に自動で付与される固有の値(GUID)です。バージョン 1.1.486.0 以前のEntra Connect(2017年4月リリース)ではsourceAnchorの既定値でした。ただし、objectGUIDは、フォレスト間の移動によって値が変わるため、フォレスト移動に対応できない問題がありました。

ms-DS-ConsistencyGuid

ms-DS-ConsistencyGuidはEntra Connectによって、objectGUIDの値をコピーして設定される値です。バージョン1.1.524.0以降のEntra Connect(2017年5月リリース)から、sourceAnchorの既定値になりました。ms-DS-ConsistencyGuidは初回同期時に一度だけobjectGUIDの値を設定し、その後は変わることが無いため、現在ではsourceAnchorにms-DS-ConsistencyGuidを使用することをMicrosoft社は推奨しています。

sourceAnchorの設定方法

先述の通り、sourceAnchorはEntra Connectの初回インストール時にのみ設定することができます。カスタムインストールを行い、インストールウィザード内の「一意のユーザー識別」画面においてsourceAnchorを選択します。
一意のユーザー識別画面です。この画面でsourceAnchorを設定します。

  • 「Azure でソース アンカーを管理します」:下記の優先順位でsourceAnchorに設定する値が決定されます(画面下部に、sourceAnchorとして設定される属性が表示されます)
    1. 同期先のEntra IDテナントで過去にEntra Connectを構成していた場合:その属性をsourceAnchorに設定します
    2. ms-DS-ConsistencyGuid属性が未使用の場合:ms-DS-ConsistencyGuidをsourceAnchorに設定します
    3. いずれの条件も満たさない場合:objectGUIDに設定します
  • 「特定の属性を選択します」:objectGUIDやms-DS-ConsistencyGuidなど、任意の属性を選択します

「Azure でソース アンカーを管理します」を選択した場合、最後の構成完了画面で、sourceAnchorとして設定された値が表示されます。
Entra Connect構成を行い最後に表示される完了画面です。

sourceAnchorをms-DS-ConsistencyGuidに変更する方法

先述の通り、原則Entra Connectをインストール後にsourceAnchorを変更することはできません。ただし、例外としてms-DS-ConsistencyGuidへの変更のみ可能です。以下、ms-DS-ConsistencyGuidへ変更する手順です。

警告
sourceAnchorをms-DS-ConsistencyGuidに変更するには、ms-DS-ConsistencyGuidの値が空である必要があります。

警告
一度sourceAnchorをms-DS-ConsistencyGuidに変更すると、sourceAnchorを元の値に戻すことはできません。

  1. Entra Connectの設定画面を開き、「構成」を選択します
    Entra Connectの設定内で最初に表示される画面です。

  2. 「追加のタスク」で、「ソース アンカーの構成」を選択し次へ進みます
    Entra Connectの設定内で追加のタスク画面です。

  3. 管理者権限を持つEntra IDアカウントでサインインし次へ進みます
    Entra Connectの設定内でEntra IDへのサインイン画面です。

  4. 「ソース アンカーの構成」画面で、ADの各オブジェクトに設定されているms-DS-ConsistencyGuid属性を確認します。未使用の場合、sourceAnchorを変更することができます
    Entra Connectの設定内でソースアンカーの構成画面です。

  5. 最後に「構成」を選択し、sourceAnchorを変更します
    Entra Connectの設定内で設定内容の確認画面です。

  6. 結果確認画面で、sourceAnchorがms-DS-ConsistencyGuidに変更されたことを確認します
    Entra Connectの設定内で設定結果の確認画面です。

ms-DS-ConsistencyGuidへ変更後、自動で再同期または手動同期が行われることでobjectGUIDの値がms-DS-ConsistencyGuidに保存されます。

sourceAnchorの確認方法

  1. Entra Connectの設定画面を開き、「構成」を選択します
    Entra Connectの設定内で最初に表示される画面です。

  2. 「追加のタスク」で、「現在の構成の表示またはエクスポート」を選択し次へ進みます
    Entra Connectの設定内で追加のタスク画面です。

  3. 「ソース アンカー」の項目で表示された値を確認します
    Entra Connectの設定内で設定値の表示画面です。

sourceAnchorに使用した属性の値を確認する方法

上記で説明した、objectGUID、ms-DS-ConsistencyGuidやOnPremisesImmutableId属性に実際に設定されている値は、PowerShellコマンドを使用して確認することができます。

# ADサーバー上で確認
Get-ADUser -Identity "ADユーザー名" -Properties Name, objectGUID, ms-DS-ConsistencyGuid | select Name, objectGUID, ms-DS-ConsistencyGuid
# Microsoft Graph PowerShellで確認
Connect-MgGraph -Scopes "User.Read.All"
Get-MgUser -UserId "Entra IDユーザーのUPN" -Select DisplayName,Userprincipalname,OnPremisesImmutableId | fl DisplayName,Userprincipalname,OnPremisesImmutableId

OnPremisesImmutableIdの値はbase64でエンコードされています。そのため、下記の方法でsourceAnchorとして設定した値と同じになることを確認できます。

# sourceAnchorとして設定した値をエンコードするPowerShellコマンド(sourceAnchorがobjectGUIDの場合)
[System.Convert]::ToBase64String((Get-ADUser "ADユーザー名" -Properties objectGUID).objectGUID.ToByteArray())
# sourceAnchorとして設定した値をエンコードするPowerShellコマンド(sourceAnchorがms-DS-ConsistencyGuidの場合)
[System.Convert]::ToBase64String((Get-ADUser "ADユーザー名" -Properties mS-DS-ConsistencyGuid).'mS-DS-ConsistencyGuid')

ADユーザーとEntra IDユーザーとのマッチング方式

Entra ConnectがADのユーザーを最初に同期する際、Entra ID上に対応するオブジェクトが既に存在しているか確認します。この確認処理にはハードマッチとソフトマッチの2種類があります。ハードマッチ、ソフトマッチの説明と利用しない場合の無効化設定は以下の通りです。

ハードマッチ

ハードマッチは、Entra ConnectでsourceAnchorとして指定した属性とEntra IDのOnPremisesImmutableId属性が一致するかの判定を行います。
Entra Connectの同期前に、Entra IDユーザーのOnPremisesImmutableIdの値を設定することでハードマッチが行われます。
ハードマッチを行わない場合には、BlockCloudObjectTakeoverThroughHardMatchEnabledを$trueにすることでハードマッチを無効化できます。

# ハードマッチの無効化設定
Connect-MgGraph -Scopes "OnPremDirectorySynchronization.ReadWrite.All"

$OnPremSync = Get-MgDirectoryOnPremiseSynchronization
$OnPremSync.Features.BlockCloudObjectTakeoverThroughHardMatchEnabled = $true
Update-MgDirectoryOnPremiseSynchronization `
    -OnPremisesDirectorySynchronizationId $OnPremSync.Id `
    -Features $OnPremSync.Features

ソフトマッチ

ソフトマッチは、Entra ConnectとEntra IDのuserPrincipalNameまたはproxyAddresses属性が一致するかの判定を行います。
UPNやメールアドレスが一致するユーザーはこの方法により紐づけられます。
ソフトマッチを行わない場合には、BlockSoftMatchEnabledを$trueにすることでソフトマッチを無効化できます。

# ソフトマッチの無効化設定
Connect-MgGraph -Scopes "OnPremDirectorySynchronization.ReadWrite.All"

$OnPremSync = Get-MgDirectoryOnPremiseSynchronization
$OnPremSync.Features.BlockSoftMatchEnabled = $true
Update-MgDirectoryOnPremiseSynchronization `
    -OnPremisesDirectorySynchronizationId $OnPremSync.Id `
    -Features $OnPremSync.Features

マッチング方式の優先順位

ハードマッチとソフトマッチは以下の優先順位で評価されます。ハードマッチとソフトマッチ両方の条件に満たない場合は、Entra ID上に対応するオブジェクトが存在しないものとみなし、Entra IDに新規オブジェクトを同期して作成します。
1~4の優先順位で、1の場合はハードマッチ、2, 3の場合はソフトマッチが行われます。

  1. Entra ConnectのsourceAnchorがEntra IDのOnPremisesImmutableId属性と一致
  2. ADのproxyAddresses/mailの値がEntra IDの同じ属性と一致
  3. ADのuserPrincipalNameの値がEntra IDの同じ属性と一致
  4. 1~3いずれにも該当しない場合、新規オブジェクトを同期して作成

既存のEntra IDオブジェクトをあとからADオブジェクトと同期する際には、事前にハードマッチかソフトマッチの準備を行ってからEntra Connectで同期することにより、Entra IDでのみ管理されていたユーザーがEntra Connect同期管理に切り替わります。
基本的に、UPNやメールアドレスが一致するユーザーの場合は、追加で値を設定する必要のあるハードマッチではなく、ソフトマッチにより紐づけることで設定の手間を省くことができます。一方で、UPNやメールアドレスが一致しない場合はハードマッチを行うことで、UPNやメールアドレスを変更することなく紐づけることができます。

まとめ

Entra Connectを利用する上で、sourceAnchorの設定値は原則として変更できないため、慎重に設定値を決定しADユーザーとEntra IDユーザーを紐づける必要があります。

また、既存のEntra IDユーザーにADユーザーを後から紐づける場合にはハードマッチとソフトマッチの仕組みを理解し、事前にマッチング方式を検討する必要があります。

参考情報

  • Entra ConnectのsourceAnchorについて(Microsoft Learn)

  • Entra Connectのハードマッチとソフトマッチについて(Microsoft Learn)

  • Entra Connectのハードマッチについて(日本マイクロソフト サポート情報ブログ)

  • Entra Connectのソフトマッチについて(日本マイクロソフト サポート情報ブログ)

We Are Hiring!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?