🧔‍♂️

マネージド環境のHybrid Joinの流れ、トラブルシューティング

に公開

はじめに

Hybrid Joinを構成する際に、ハマってしまうことがある。
内部の仕組みを理解していないとトラブルシューティングが難しい。
内部の仕組みおよびトラブルシューティングの時に参照している情報等をまとめる。

Hybrid Join構成のフロー:ざっくりいうと

Entra Hybrid Joinに登録するためには、
1.初回にWindowsログオンをした時点ではEntra IDで保留中になる。
2.保留中になった後でWindows端末を再起動orサインアウトなどして再度Windowsログオンをする操作が必要になる(2回Windowsログオンが必要)。
3.3回目のログオン以降、PRTを受け取りSSOできるようなる。

Hybrid Join構成のフロー:詳細

※EntraConnectなどは構成済みであることが前提

1. オンプレ AD に参加している Windows 10/11 端末に、同期されているオンプレ AD ユーザーとしてログオンする

2. 初回のログオンでは、Windows 10/11 側のタスク スケジューラーのタスクである Automatic-Device-Join が実行される
 ->この際、イントラネットの DC サーバーとインターネット (=Microsoft Entra ID) 両方に通信できることで、タスクが成功して Microsoft Entra ID とのデバイス認証に必要なデバイス証明書が作成される
  ->オンプレ AD コンピューター オブジェクトの userCertificate 属性にこのデバイス証明書が格納される

※ ログオン処理に伴うタスクの実行ではなく、管理者として起動したコマンド プロンプト上で dsregcmd /join を実行する方法でも同様の結果となる。

3. 上記 2. の userCertificate 属性にデバイス証明書が格納されたコンピューター オブジェクトは、Microsoft Entra Connect (MEC) による同期対象となる
 ->つまり、2. 以降の MEC による同期時に、Microsoft Entra ID に対してデバイス オブジェクトが同期される
  ->この時点では、Microsoft Entra ID にデバイス オブジェクトが “ただ同期によって登録された” だけであり、まだデバイス認証には利用されていない
   ->この時点の Microsoft Entra ID 上のデバイス オブジェクトの [登録済み] の状態は、[保留中] になっている

4. 再度 Windows へのログオン時に実行される Automatic-Device-Join タスクにより Microsoft Entra ID へのデバイス参加のための認証処理が行われる。
 ->つまり、イントラネットの DC サーバーとインターネット (=Microsoft Entra ID) 両方に通信できる状態での Windows へのログオンが必要
  ->この時点で、Microsoft Entra ID のデバイス情報に呼応する認証が行われ、Microsoft Entra ID への [デバイスのハイブリッドな参加状態] が完了する
   ->この時点の Microsoft Entra ID 上のデバイス オブジェクトの [登録済み] の状態は、[本ログオンを行った日時] になっている
  ※ ログオン処理に伴うタスクの実行ではなく、管理者として起動したコマンド プロンプト上で dsregcmd /join を実行する方法でも同様の結果となる。
※この時点では、Microsoft Entra ID へのデバイス “参加” は完了しているものの、デバイス “認証” は完了していない。(PRTは持っていない)

5. 再度 1. のログオンもしくはアンロックを行うと、このログオン処理時に合わせて Microsoft Entra ID への認証も行われる (Automatic-Device-Join タスクではなくログオン時の処理となる)。
 ->この際には、インターネット (=Microsoft Entra ID) に通信できる状態での Windows へのログオンが必要 (イントラネットの DC サーバーへの通信は必須ではない)
  ->この時点で、Microsoft Entra ユーザー/デバイスとしての認証が行われ、Microsoft Entra ID への [デバイスも含めたハイブリッドな認証] が完了する
   ->この時点の Microsoft Entra ID 上のデバイス オブジェクトの [登録済み] の状態はそのまま、[アクティビティ] の項目が [本ログオンを行った日時] になっている
    ->この時点で [Microsoft Entra ハイブリッド参加 としての Microsoft Entra ID へのデバイス認証] が完了し、クライアントにプライマリ更新トークン (略称 PRT) と呼ばれるデバイス認証トークンが発行される

公式ドキュメント

https://learn.microsoft.com/ja-jp/entra/identity/devices/device-registration-how-it-works#microsoft-entra-hybrid-joined-in-managed-environments

補足

EntraIDにて登録済みになるまでの想定時間

フローをどのように完了させたか次第である。
主に時間がかかるポイントは Entra Connect の同期の間隔で、既定では 30 分間隔で同期が行われている。
プッシュすることもできる。差分同期コマンドは以下

Start-ADSyncSyncCycle -PolicyType Delta

https://learn.microsoft.com/ja-jp/entra/identity/hybrid/connect/reference-connect-adsync#start-adsyncsynccycle

WindowsログオンからEntra IDに登録されるまでの間で、正常にタスクがトリガーされていることを確認する方法

タスクスケジューラにて実行状況を可能。
Automatic-Device-Join タスクはタスク スケジューラーの以下の個所を確認する。
[タスクスケジューラ] - [タスクスケジューラ ライブラリ] - [Microsoft] - [Windows] - [Workplace Join]

ただ、切り分けとしては、Automatic-Device-Join タスクのみならず、前述のフローに沿ってどこまで進んでいるかを確認することが重要。

[登録済み]とされる日時はいつか。

Entra ID 上の「登録済み」の日時は、前述のフローの「4」が正常に完了した日時。

EntraConnectで同期対象になっていても同期されない場合

userCertificate 属性にデバイス証明書が格納されたコンピューター オブジェクトは、Microsoft Entra Connect (MEC) による同期対象となる

AD側で同期させたいデバイスのOUを作成し、Entra Connectで同期対象のOUとして指定するだけでは、デバイスは同期対象にならない。
それは、userCertificate 属性に値がない場合は Entra Connect の同期対象にならないためである。
※すなわちUserCertificate属性に値を書き込むために必要な、SCPの構成ができていない場合も同様でEntraConnectでの同期対象にならない。

その端末がHybrid Joinの構成が完了しているか確認する方法

Entra管理センター上ではラグ等でうまく反映していないこともあるため、端末上で確認するのが確実。

dsregcmd /status

確認結果イメージ
Hybrid Joinの構成が完了している場合、Device State の項目が以下のようになる。

+----------------------------------------------------------------------+
| Device State                                                         |
+----------------------------------------------------------------------+
AzureAdJoined : YES
EnterpriseJoined : NO
DomainJoined : YES

PRTが取得できている場合は、SSO Stateについて以下のようになる。

+----------------------------------------------------------------------+
| SSO State                                                            |
+----------------------------------------------------------------------+
               AzureAdPrt : YES
      AzureAdPrtUpdateTime : 202X-XX-XX XX:XX:XX.000 UTC
      AzureAdPrtExpiryTime : 202X-XX-XX XX:XX:XX.000 UTC
       AzureAdPrtAuthority : https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee
+----------------------------------------------------------------------+

関連記事
https://zenn.dev/nyomomo/articles/10fa0e10063949

トラブルシューティングの際に参考にしている記事

このあたりから情報を探せば大抵のトラブルは解消できると思います。
https://jpazureid.github.io/blog/azure-active-directory/troubleshoot-hybrid-azure-ad-join-managed/

https://jpazureid.github.io/blog/azure-active-directory/how-to-create-hybridazureadjoin-managed/

https://learn.microsoft.com/ja-jp/entra/identity/devices/device-registration-how-it-works#microsoft-entra-hybrid-joined-in-managed-environments

https://qiita.com/Shinya-Yamaguchi/items/cf9ec9190113c3f35243
https://jpazureid.github.io/blog/azure-active-directory/hybrid-pending-device/

Discussion