【図解】Entra Connectは何を同期している?ソースアンカー・UPN・SSOに使う属性を初心者向けに解説

オンプレの Active Directory(AD)と Microsoft Entra ID を一緒に使う環境では、AD のユーザーを Entra ID にコピーする「同期」が欠かせません。この同期を受け持つのが Microsoft Entra Connect(以下、Entra Connect)です。同期のおかげで、利用者は AD と同じユーザー名とパスワードで Microsoft 365 にサインインでき、Entra 参加の PC から社内のファイルサーバにも入れます。

この記事では、Entra Connect が何を、どのように同期しているのかを、属性に注目して説明します。AD と Entra ID のユーザーを結び付ける「ソースアンカー」、サインイン名になる UPN、社内のリソースへの SSO に使われる属性、パスワードのハッシュの同期、書き戻しまでを図で整理します。

この記事でわかること
  1. Entra Connect が同期するものと、同期のしくみ
  2. AD と Entra ID のユーザーを結び付けるソースアンカー(immutableId)と、ハードマッチ・ソフトマッチ
  3. UPN の決まりと、確認済みのドメインが必要な理由
  4. 社内の SSO やハイブリッド参加に使われる属性

Entra Connect がしていること

Entra Connect は、社内のサーバにインストールして使う同期のソフトウェアです。AD からユーザーやグループなどを読み取り、Entra ID に書き込みます。

オンプレの ADcorp.example.comユーザーグループ連絡先コンピューターEntra Connect(同期サーバ)Entra IDテナントユーザーグループ連絡先デバイス読む書くオブジェクトと属性:30分ごとパスワードのハッシュ:2分ごと一部は Entra Connect が AD に書き戻す基本は「AD が正」。Entra ID の同期されたユーザーは、AD で変更する
図1 Entra Connect がしていること
同期するもの間隔内容
ユーザー・グループ・連絡先既定で30分ごと名前、メールアドレス、所属などの属性。グループのメンバーも含む
コンピューター既定で30分ごとuserCertificate 属性に値がある Windows 10 以降のコンピューター。ハイブリッド参加に使う
パスワードのハッシュ2分ごとパスワードハッシュ同期を有効にしたとき

同期は基本的に AD から Entra ID への一方通行で、AD が正です。同期されたユーザーの名前や部署を Entra ID 側で直接変えることはできず、AD で変えると次の同期で Entra ID に反映されます。

同期のしくみ

Entra Connect の中には、データを一時的に置く場所が3つあります。AD の写しを置く「AD のコネクタースペース」、Entra ID の写しを置く「Entra ID のコネクタースペース」、そしてその間で全体をまとめる「メタバース」です。

ADcorp.example.comAD のコネクタースペースメタバース全体をまとめた場所Entra ID のコネクタースペースEntra IDテナントEntra Connect のサーバの中① インポートAD の変更を写す② 同期ルールで属性を組み立てる③ エクスポートEntra ID に書く差分だけ(デルタ)を、既定で30分ごとに①→②→③の順で回す
図2 同期のしくみ
  1. インポート:AD の変更を、AD のコネクタースペースに写す
  2. 同期:同期のルールに従って、メタバースでユーザーの属性を組み立て、Entra ID のコネクタースペースに「書き込む予定の変更」を作る
  3. エクスポート:その変更を Entra ID に書き込む

ふだんは差分だけを扱う「デルタ同期」が、既定で30分ごとに自動で回ります。急ぎで反映したいときは、Entra Connect のサーバで Start-ADSyncSyncCycle -PolicyType Delta を実行すると、すぐに1回分を回せます。

同じ人だと見分ける:ソースアンカー

同期でいちばん大事なのは、「AD の user01」と「Entra ID の user01」を、確実に同じ人として結び付けることです。名前やメールアドレスは結婚や異動で変わることがあるので、結び付けには使えません。そこで、一度決めたら変わらない値を使います。これがソースアンカー(sourceAnchor)で、Entra ID 側では immutableId と呼びます。

AD の user01objectGUIDAD が自動で決める番号(変えられない)mS-DS-ConsistencyGuidソースアンカーとして使う属性空なら Connect がコピーbase64 にするEntra ID の user01immutableId(onPremisesImmutableId)userPrincipalName などほかの属性は変わってもよい名前やメールが変わっても、この値で「同じ人」だと分かる。一度決めたら変えない
図3 ソースアンカー

今の Entra Connect(1.1.524.0 以降)では、ユーザーのソースアンカーに AD の mS-DS-ConsistencyGuid 属性を使うのが既定です。この属性が空のユーザーを見つけると、Entra Connect は AD が自動で決めた objectGUID の値をそこにコピーして書き込み、それから Entra ID に送ります。Entra ID の immutableId は、この値を base64 にしたものです。

objectGUID をそのまま使わずに mS-DS-ConsistencyGuid にコピーするのは、ユーザーを別のフォレストやドメインに移したときにも同じ値を持ち運べるようにするためです。objectGUID は AD が決めるので、移した先では新しい値になってしまいますが、mS-DS-ConsistencyGuid なら一緒にコピーできます。

ソースアンカーは途中で変えられない

どの属性をソースアンカーにするかは、Entra Connect を最初にインストールするときに決めます。あとから変えるにはアンインストールし直す必要があり、2台目の Entra Connect を入れるときも同じ属性を選ぶ必要があります。また、Entra ID に送ったあとで AD 側の値を変えると、同期エラーになってそのユーザーの同期が止まります。

既存のクラウドのユーザーと結び付ける:ハードマッチとソフトマッチ

Microsoft 365 を先にクラウドだけで使い始め、あとから Entra Connect を入れることもよくあります。このとき、AD から届いたユーザーを、すでにクラウドにいる同じ人のユーザーと結び付ける必要があります。Entra ID は、新しく届いたユーザーについて次の順で相手を探します。

AD から新しいユーザーが届いた① ハードマッチ:immutableId が同じクラウドのユーザーがいる?はいそのユーザーと結び付けるAD の値で上書きいいえ② ソフトマッチ:UPN か主の SMTP アドレスが同じユーザーがいる?はいそのユーザーと結び付けるAD の値で上書きいいえ新しいユーザーを作るソフトマッチは、まだ immutableId を持たないクラウドのユーザーだけが相手管理者ロールを持つクラウドのユーザーとは、ソフトマッチしない
図4 既存のクラウドのユーザーとの結び付け
方法比べる属性使う場面
ハードマッチソースアンカー(immutableId)Entra Connect のサーバを作り直したときや、クラウドのユーザーに immutableId を設定して結び付けるとき
ソフトマッチUPN、または proxyAddresses のうち主の SMTP アドレス(大文字の「SMTP:」の値)クラウドだけで作ったユーザーを、AD のユーザーに引き継ぐとき

結び付けが成功すると、そのユーザーは「AD から同期されたユーザー」に変わり、AD に値がある属性はすべて AD の値で上書きされます。クラウド側だけで最新にしていた情報(メールアドレスなど)が AD 側で古いままだと、その情報が失われるので、同期の前に AD の値を整えておくことが大切です。

なお、すでに別の immutableId を持つクラウドのユーザーとはソフトマッチしません(InvalidSoftMatch のエラーになります)。また、乗っ取りを防ぐため、管理者ロールを持つクラウドのユーザーともソフトマッチしません。Microsoft は、クラウドのユーザーを引き継ぐ必要がないときはハードマッチを止めておくことも勧めています。

サインイン名:UPN

Entra ID は、UPN(userPrincipalName)をサインイン名として使います。既定では、AD の userPrincipalName 属性がそのまま Entra ID の UPN になります。ここで注意が必要なのは、UPN のサフィックス(@ の後ろ)が、Entra ID で確認済みのドメインでなければならないことです。

AD の UPNEntra ID の UPNuser01@corp.localcorp.local は確認できないドメインuser01@example.onmicrosoft.comサフィックスが置き換わるuser01@corp.example.comEntra ID で確認済みのドメインuser01@corp.example.comそのままサインイン名になるAD に UPN サフィックス(corp.example.com)を足し、ユーザーの UPN を変えてから同期する
図5 UPN とドメインの関係

AD のドメイン名が corp.local のような、インターネットでは使えない名前(ルーティングできないドメイン)の場合、そのドメインを Entra ID で確認することはできません。そのまま同期すると、UPN のサフィックスが テナント名.onmicrosoft.com に置き換わり、利用者が覚えにくい名前になります。

この場合は、AD に「UPN サフィックス」として自社のドメイン(corp.example.com など)を追加し、Entra ID でそのドメインを確認したうえで、ユーザーの UPN を新しいサフィックスに変えてから同期します。UPN はメールアドレスと同じ形にしておくと、利用者が迷いません。

主な属性と、使われる場面

ユーザーについて同期される主な属性を、使われる場面と一緒にまとめます。Entra ID 側の名前は、Microsoft Graph での呼び方です。

AD の属性Entra ID の属性使われる場面
userPrincipalNameuserPrincipalNameサインイン名。ソフトマッチにも使う
mS-DS-ConsistencyGuid(objectGUID)onPremisesImmutableIdAD と Entra ID のユーザーの結び付け
mail・proxyAddressesmail・proxyAddressesメールの宛先。ソフトマッチにも使う
sAMAccountNameonPremisesSamAccountNameEntra 参加の PC が、社内のリソースに「CORP\user01」として認証するとき
ドメインの DNS 名・NetBIOS 名onPremisesDomainName などEntra 参加の PC が、どのドメインの DC に名乗ればよいかを知る
objectSidonPremisesSecurityIdentifierオンプレの SID。Microsoft Entra Kerberos などで使う。テナントの中で重複できない
distinguishedNameonPremisesDistinguishedNameAD のどこにいるユーザーかを示す
displayName・department などdisplayName・department などアドレス帳や組織図に表示される情報

Entra 参加の PC での使われ方

表の中で、Entra 参加の PC が社内のファイルサーバに入るときに使われるのが、onPremisesSamAccountName やドメインの情報です。Entra 参加の PC は AD に参加していないので、自分ではどのドメインに属しているかを知りません。サインインのときに Entra ID がこれらの情報を PC に渡すことで、PC は社内の DC を見つけて Kerberos の認証ができるようになります。

① サインイン:同期された属性が PC に届く② 社内のファイルサーバを開くPC01Entra 参加Entra IDDC01corp.example.comuser01@corp.example.com でサインインPRT + ドメインの情報onPremisesDomainName・onPremisesSamAccountName などDNS で corp.example.com の DC を探すCORP\user01 として Kerberos の認証TGTドメインの情報が同期されていないと、どの DC に名乗ればよいか分からない
図6 同期された属性の使われ方

Entra 参加とハイブリッド参加の違いは「ドメイン参加・Entra参加・ハイブリッド参加の違い」の記事で、Windows Hello for Business などでサインインしたときにオンプレのチケットをもらうしくみは「Microsoft Entra Kerberosとは?」の記事で説明しています。

コンピューターの同期とハイブリッド参加

ユーザーと違って、コンピューターは AD にあるものがすべて同期されるわけではありません。同期されるのは、userCertificate 属性に値があるコンピューターだけです。この属性は、ふだんは空のことが多く、ハイブリッド参加の準備をした Windows 10 以降の PC が、自分で値を書き込みます。

オンプレの AD のコンピューターPC01$userCertificate ありPC02$userCertificate なしPC03$同期しない OU にいるEntra Connect同期のルールuserCertificate が空でないEntra IDデバイス:PC01状態:保留中PC02・PC03 のデバイスはできないWindows 10 以降の PC は、ハイブリッド参加の準備で userCertificate に自分の証明書を書く
図7 コンピューターが同期される条件

図7の PC01$ は、userCertificate に値があるので同期され、Entra ID にデバイスができます。PC02$ は userCertificate が空なので同期されません。PC03$ は、userCertificate があっても、Entra Connect で同期しない OU にいるので同期されません。ハイブリッド参加がうまくいかないときは、PC の userCertificate に値が入っているか、その PC のいる OU が同期の対象に入っているかを、まず確かめます。

同期されるときは、AD のコンピューターの属性が、Entra ID のデバイスの属性に次のように写されます。

AD のコンピューター(PC01$)Entra ID のデバイス(PC01)objectGUIDdeviceIdデバイスの IDobjectSidonPremisesSecurityIdentifierオンプレの SIDuserCertificate証明書(公開鍵)PC が本人だと確かめる相手displayNamedisplayName表示名operatingSystem・VersionOS の種類・バージョン(固定の値)deviceTrustTypeドメイン参加を示すobjectGUID が deviceId になるので、AD のコンピューターと Entra ID のデバイスは1対1で結び付く
図8 コンピューターの属性の対応

AD の objectGUID が Entra ID の deviceId になるので、AD のコンピューターと Entra ID のデバイスは1対1で結び付きます。dsregcmd /status に表示される DeviceId と、AD のコンピューターの objectGUID を比べると、同じ値になっています。

では、なぜわざわざ証明書を AD 経由で同期するのでしょうか。それは、Entra ID が「いま名乗ってきた PC は、本当に AD の PC01$ なのか」を確かめるためです。

① PC01 が書くAD の PC01$ に自分の証明書(公開鍵)書く先:AD② Entra Connect が同期Entra ID にデバイスができる証明書の公開鍵も一緒に届く状態:保留中③ PC01 が名乗る証明書の秘密鍵で Entra ID に認証公開鍵と合えば本人と分かる状態:登録済み秘密鍵は PC01 だけが持つ。AD から同期された公開鍵と合うことで、Entra ID は「AD の PC01$ と同じコンピューターだ」と確かめてから、デバイスを登録済みにする
図9 ハイブリッド参加でコンピューターの同期が必要な理由
  1. PC01 は、自分で作った証明書の公開鍵を、AD の自分のコンピューターアカウント(PC01$)の userCertificate に書きます
  2. Entra Connect がそれを同期すると、Entra ID に「保留中」のデバイスができ、公開鍵も一緒に届きます
  3. PC01 は、証明書の秘密鍵を使って Entra ID に名乗ります。Entra ID は、AD から届いた公開鍵と合うことで、AD の PC01$ と同じコンピューターだと分かり、デバイスを「登録済み」にします

つまり、AD と Entra Connect という信頼できる経路を通して公開鍵を先に届けておくことで、PC の本人確認をしているわけです。そのため、ドメイン参加した直後は、②の同期(既定で30分ごと)が終わるまでハイブリッド参加が完了せず、Entra 管理センターでは「保留中」と表示されます。登録の流れ全体は「ドメイン参加・Entra参加・ハイブリッド参加の違い」の記事でも説明しています。

パスワードハッシュ同期

AD と同じパスワードで Microsoft 365 にサインインできるようにする方法の1つが、パスワードハッシュ同期(PHS)です。名前のとおり、パスワードそのものではなく、パスワードのハッシュをもとにした値を同期します。

ADパスワードのハッシュパスワードそのものは持っていないEntra Connectユーザーごとのソルトを足し、さらにハッシュにかける(PBKDF2)Entra IDその値だけを保存するTLS で送る。元のハッシュは送らないサインインでは、入力したパスワードに同じ計算をして、保存した値と比べるパスワードの平文は、Entra Connect にも Entra ID にも渡らない
図10 パスワードハッシュ同期の考え方

Entra Connect は、AD が持っているパスワードのハッシュに、ユーザーごとのソルトを足してさらにハッシュにかけ、その値を TLS で Entra ID に送ります。Entra ID は、サインインのときに入力されたパスワードに同じ計算をして、保存した値と比べます。パスワードの平文は、Entra Connect にも Entra ID にも渡りません。また、AD が持つ元のハッシュは Entra ID に送られないので、Entra ID 側の値を AD の認証に使うことはできません。ハッシュやソルトのしくみは「暗号の基礎」の記事で説明しています。

サインインの方法には、ほかにパススルー認証(PTA)とフェデレーション(AD FS など)があります。パスワードハッシュ同期は追加のサーバがいらず、AD FS が止まったときの予備としても使えます。

書き戻し:AD への書き込み

同期は基本的に AD から Entra ID への一方通行ですが、一部の情報は AD にも書き込まれます。これを「書き戻し」と呼びます。ここで大事なのは、AD に書き込むのは、いつも社内にある Entra Connectだという点です。Entra ID はクラウドにあり、社内の AD に直接書き込むことはできません。Entra Connect が Entra ID から変更を受け取り、同期用のアカウント(AD DS コネクタのアカウント)の権限で AD に書き込みます。

オンプレの ADEntra ConnectEntra IDmS-DS-ConsistencyGuid(Entra ID は関係しない)書くAD の objectGUID をコピー自動ユーザーのパスワードSSPR で変えたパスワード書くパスワードの書き戻し設定で有効化デバイスのオブジェクトEntra ID のデバイス書くデバイスの書き戻し設定で有効化グループのオブジェクトMicrosoft 365 グループ書くグループの書き戻し設定で有効化AD に書き込むのは、いつも社内の Entra Connect。Entra ID が直接 AD に書くことはない
図11 書き戻しで、だれが AD に書くか
書き戻し内容
mS-DS-ConsistencyGuidEntra ID から来る情報ではない。Entra Connect が、AD の objectGUID を同じユーザーの mS-DS-ConsistencyGuid にコピーして書く。そのために、同期用のアカウントにこの属性への書き込み権限が要る
パスワードの書き戻しセルフサービスのパスワードリセット(SSPR)でクラウドで変えたパスワードを、Entra Connect が受け取って AD に設定する
デバイスの書き戻しEntra ID のデバイスを、Entra Connect が AD にも作る
グループの書き戻しMicrosoft 365 グループを AD に作る(v1)。クラウドのセキュリティグループを AD に作る v2 はプレビューのまま廃止され、Microsoft Entra Cloud Sync の機能に置き換わった

同期する範囲を絞る

Entra Connect は、AD のすべてを同期する必要はありません。ドメインや OU 単位で、同期する範囲を絞れます。たとえば、サービスアカウントや退職者用の OU を外しておくと、不要なユーザーがクラウドに出ていきません。いっぽうで、次のものは範囲に入れておく必要があります。

  • ハイブリッド参加させる PC がいる OU(コンピューターも同期が必要)
  • Entra 参加の PC から社内のリソースを使うユーザーのドメイン(複数のドメインがあるとき)
2026年10月時点のバージョンの状況

Entra Connect の 2.x は、新しいバージョンが出てから12か月で古いバージョンのサポートが終わります。1.x はすでに同期が動きません。さらに Microsoft は、2027年4月7日までにバージョン 2.6.84.0 以降に上げ、アプリケーションベースの認証を構成するよう求めています。間に合わないと、その日以降は同期が止まります。インストール用のファイルは Entra 管理センターから入手します。

また、新しく入れる場合や作り直す場合は、軽いエージェントで動く Microsoft Entra Cloud Sync で要件を満たせないかを先に確かめるよう、Microsoft は案内しています。

確認に使うコマンド

Entra Connect のサーバ(PowerShell・管理者):同期の間隔と次の実行時刻を表示する

Get-ADSyncScheduler

Entra Connect のサーバ(PowerShell・管理者):差分の同期を、今すぐ1回実行する

Start-ADSyncSyncCycle -PolicyType Delta

DC01(PowerShell):user01 の UPN・メールアドレス・ソースアンカーの値を表示する

Get-ADUser user01 -Properties mS-DS-ConsistencyGuid, proxyAddresses | Select-Object UserPrincipalName, ObjectGUID, mS-DS-ConsistencyGuid, proxyAddresses

DC01(PowerShell):user01 の objectGUID を base64 にする(immutableId と比べるため)

[Convert]::ToBase64String((Get-ADUser user01).ObjectGUID.ToByteArray())

管理用の PC(PowerShell):Entra ID 側の user01 の同期された属性を表示する

Connect-MgGraph -Scopes "User.Read.All"
Get-MgUser -UserId user01@corp.example.com -Property UserPrincipalName, OnPremisesImmutableId, OnPremisesSamAccountName, OnPremisesDomainName, OnPremisesSecurityIdentifier, OnPremisesSyncEnabled | Format-List UserPrincipalName, OnPremises*

まとめ

項目ひとことで
Entra ConnectAD のユーザー・グループ・コンピューターを Entra ID に同期する。AD が正
同期のしくみインポート → 同期 → エクスポート。差分を既定で30分ごと
ソースアンカーmS-DS-ConsistencyGuid(もとは objectGUID)を base64 にした immutableId。一度決めたら変えない
ハード・ソフトマッチimmutableId、または UPN・主の SMTP アドレスで既存のクラウドのユーザーと結び付ける
UPNサフィックスは確認済みのドメインに。corp.local のままだと onmicrosoft.com になる
SSO 用の属性onPremisesSamAccountName・ドメイン名・SID で、Entra 参加の PC が社内の DC に名乗れる
パスワードハッシュ同期ハッシュにソルトを足してさらにハッシュにかけた値を2分ごとに送る。平文は渡らない

Entra Connect は「入れておけば勝手に同期してくれるもの」と思われがちですが、どの属性で同じ人を見分けているか、どの属性がどこで使われているかを知っておくと、同期エラーやハイブリッド参加、社内リソースへの SSO のトラブルを切り分けやすくなります。

コメント