Microsoft Entra ハイブリッド参加（旧HAADJ）を構成してみた

# はじめに
**"Microsoft Entra ハイブリッド参加"** だと名称が長いので、以後は **M**icrosoft **E**ntra **H**ybrid **J**oin の頭文字をとって、本記事では **MEHJ** と表記します。

企業では 従来から、Active Directory を使った "オンプレミスのドメイン参加" を活用した PC と ユーザー の管理手法が 広く普及しています。

通常、Windows デバイスは "Microsoft Entra テナント" に参加するか、オンプレミスのドメインに参加するか、どちらかを選ぶことしかできません。

**MEHJ** では、PC が オンプレミスへのドメイン参加状態 を維持したまま、Microsoft Entra テナントへも 参加 (Hybrid Join) させることで、クラウドを活用した機能が利用できるように拡張することができます。

**MEHJ** は、あくまで オンプレミスのドメイン管理が **"主：認証"** であり、クラウド側は **"従：リソース提供"** の位置づけだと考えてください。
まだまだ 組織内には オンプレミスのドメイン認証に依存したサービスやリソースがあり、利用が継続されるけど、クラウド側の機能も使いたい場合には、有力な選択肢になります。
※逆に、オンプレミス側の認証に依存したサービスが無いなら MEHJ を使うことを考えるよりも、認証を Microsoft Entra ID へ移行することを考えましょう。

逆に、クラウド側が **"主：認証"** で、オンプレミス側が **"従：リソース提供"** となる利用方法もあります。
**"Microsoft Entra Kerberos 信頼（旧：Azure AD Kerberos）** という仕組みです。
この方法だと、Microsoft Entra Join されたデバイスが 社内のドメイン認証のファイルサーバーへアクセスする際に認証を不要にすることが出来ます。以下の記事にまとめてあります。

https://qiita.com/carol0226/items/a52a54ff63c19fa957e6

:::note info
どの方法が自組織に適しているのかを検討した上での導入をお勧めします。
:::

# 1. MEHJ とは
オンプレミスのドメインに参加している Windows デバイスを Microsoft Entra テナント にも 参加 (Join) させることが出来る仕組みです。
デバイスが テナントに Join されていることによって、以下のことが実現できます。
- Office 365 などの Microsoft Entra ID で認証するクラウドサービスへ シングルサインオン(SSO) が提供されます。
※PC へのドメインログオンだけで認証が済み、あとは認証せずに、クラウドサービスを利用できます。
　
- 条件付きアクセス で、**"Microsoft Entra Hybrid 参加済み"** が利用できます。
※**"Hybrid 参加済み"** デバイスだけ、サービスを利用させ、他はブロック のようなルールを記述可能です。
　
- Windows Hello for Business で、ハイブリッド（Cloud Kerberos 信頼）の展開オプションが利用可。Windows Hello for Business を オンプレミスのみで展開する場合は、"キー信頼" か、"証明書信頼" の選択肢のみであり、AD FS の構成が必要です。
しかし MEHJ を使うことで ハイブリッド展開が可能になり、"Cloud Kerberos 信頼" も選択可能になります。"Cloud Kerberos 信頼" だと、AD FS が不要になる点がメリット大です。

https://qiita.com/carol0226/items/0c06016f18e57bf44cb0

- オンプレドメイン参加のデバイスを Intune へ自動登録できます。<br>ダウンレベルのバージョンであっても、Intune へ登録させることが可能です。

https://azuread.net/archives/8425

:::note warn
**ダウンレベルデバイスのサポート**
MEHJ を使うと、Windows 7 / 8 / 8.1 , Windows Server 2008 / 2012 など、旧バージョンが理由で、テナントに直接 Join させることができない OS を、Join させることができ、さらには Intune への登録も行えます。
私も ４年前(2019年頃)くらいに検証はしたことがありますが、もうあまり使われないかなと思って、本記事では紹介のみとします。
https://learn.microsoft.com/ja-jp/entra/identity/devices/hybrid-join-control?wt.mc_id=mvp_407731#supporting-down-level-devices
:::

## 1-1. 本手順の位置づけ
私が Microsoft Entra 関係で記載している記事で共通で使っている表です。
私なりに、機能を分類して コンポーネント に分割しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/3b8d36cd-f52d-de10-41b2-6d960c3d2ddf.png)

|分類|コンポーネント|備考|
|:-:|:-:|:-:|
|デバイスの手配|A-②、A-③<br>開発部門、IT 部門|会社所有のデバイス|
|OSキッティング<br>（IT 部門）|B-①<br>会社標準<br>FAT PC|IT 部門が会社標準機を提供|
|OSキッティング<br>（個人）|C-②<br>従業員手配<br>Volume License 等|技術力のある部署が独自に OS を導入|
|ユーザー管理|D-③<br>Microsoft Entra Hybrid Join<br>(MEHJ)|オンプレミスのドメインに参加した PC が Microsoft Entra Connect で クラウドへ同期。MEHJ によって Hybrid Join される。|
|デバイス管理|なし|本手順では未構成。なお、任意に構成は可能<br>E-②：Intune 手動登録<br>E-③：Intune 自動登録|

## 1-2. 名称変更
**Microsoft Entra ハイブリッド参加** は、以前は **Hybrid Azure AD Join** と呼ばれていた機能の事です。

"Hybrid" の位置が 入れ替わったりしていて、憶えづらいのですが、以下に まとめてみました。
|   |旧呼び名|現名称|
|:-:|:-:|:-:|
|名称 (操作)|Hybrid Azure AD Join|Microsoft Entra ハイブリッド参加<br>Microsoft Entra hybrid join|
|名称 (状態)|Hybrid Azure AD 参加済み<br>Hybrid Azure AD Joined|Microsoft Entra ハイブリッド参加済み<br>Microsoft Entra hybrid joined|
|略称|HAADJ|MEHJ (？)<br>こう呼ぶと思いますが あまり普及してない💦|

**使い分け**
名称 (操作) の方は、"PC を、Microsoft Entra ハイブリッド参加 させてください" のように手順書などで操作を指示する際の言葉として利用。
名称 (状態) の方は、"前提条件は Microsoft Entra ハイブリッド参加済み デバイスであること" のように結果・現在の状態 を示したい場合に利用。

**公開情報で説明されている 新旧名称比較より抜粋**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/66365d90-d069-f1a2-c8d7-fef1813f070c.png)
https://learn.microsoft.com/ja-jp/entra/fundamentals/new-name?wt.mc_id=mvp_407731#glossary-of-updated-terminology

名称変更の詳細は、以下に記事化しています。

https://qiita.com/carol0226/items/2a767e3d9e114b66c562

# 2. MEHJ 構成のための前提条件
詳細は、公開情報を確認いただきたいですが、MEHJ を構成するためには、ざっと 以下の前提条件があります。
- 2-1. **Microsoft Entra Connect** が構成されている
- 2-2. **ネットワーク接続**（ドメインコントローラーや インターネットとの接続性）
- 2-3. デバイスは、**参加可能なデバイスのバージョン** であること

**公開情報：前提条件**
https://learn.microsoft.com/ja-jp/entra/identity/devices/how-to-hybrid-join?wt.mc_id=mvp_407731#prerequisites

## 2-1. Microsoft Entra Connect
オンプレミスの ドメインコントローラー（AD DS）と、Microsoft Entra テナント の両方が必要です。

上記の２つを、Microsoft Entra Connect を使って、接続（Connect）された環境が必要です。

以下の記事に Microsoft Entra Connect に関する説明と テナントの構成に合わせた 構築手順 を紹介していますので、参考にしてみてください。

https://qiita.com/carol0226/items/487874f07d2fe90f8e0c

## 2-2. ネットワーク接続

### 2-2-1. ドメインコントローラーとの接続
デバイスは、ドメインコントローラーとの接続が必要です。
つまり、社内 LAN に接続した状態、または 外部から VPN などを使って ドメインコントローラーが存在する拠点内へアクセスできる必要があります。

### 2-2-2. インターネットエンドポイント
さらに、デバイスは インターネットにもアクセスできる必要があります。
企業内ネットワークには、F/W や、Webフィルタリング が導入されている場合がありますが、それらによって、MEHJ に必要なエンドポイントへの接続が遮られないようになっている必要があります。

**公開情報：ネットワーク接続の要件**
https://learn.microsoft.com/ja-jp/entra/identity/devices/how-to-hybrid-join?wt.mc_id=mvp_407731#network-connectivity-requirements

## 2-3. 参加可能な デバイスのバージョン
本記事の検証では、Windows 10 で実施しています。

物理マシンでも、仮想マシンでも構いませんが、前章で説明した オンプレミスの ドメインコントローラー との接続が必要です。

- Windows 11
- Windows 10
- Windows Server 2016（バージョン 1803 以上）
- Windows Server 2019

:::note info
Windows の最新バージョンにアップグレードすることが推奨されています。
:::

**公開情報：サポート対象デバイスを確認する**
https://learn.microsoft.com/ja-jp/entra/identity/devices/hybrid-join-plan?wt.mc_id=mvp_407731#review-supported-devices

Windows 10 を Hyper-V で手配する場合は、以下の記事も参考にしてみてください。

https://qiita.com/carol0226/items/60a22fc1bb5e3556a183

# 3. 構成手順
公開情報には、マネージドドメイン と フェデレーション ドメインが併記されていますが、フェデレーションは、AD FS を必要とする 古い仕組みです。
今から構築する場合は、マネージドドメインが多いと思いますので、本手順では マネージドドメインの手順を紹介しています。

**公開情報：マネージドドメイン**
https://learn.microsoft.com/ja-jp/entra/identity/devices/how-to-hybrid-join?wt.mc_id=mvp_407731#managed-domains

## 3-1. マネージドドメインの構築手順（サーバー側作業）

0. Microsoft Entra Connect (Azure AD Connect) が導入されているサーバー に管理者アカウントでサインインします。
　<br>
0. 以下のアイコンから、Microsoft Entra Connect (Azure AD Connect) ウィザードを起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/af09bf12-0d90-e9e0-86dc-b5fcf20fbb29.png)
　<br>
0. ウィザードが起動されたら **構成** ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/d29d721a-866d-aedd-590b-e6f60b4ecda9.png)
　<br>
0. **デバイスオプションの構成** を選択して **次へ** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/2c722dcc-2d1c-5264-2b71-69c080a5238e.png)
　<br>
0. そのまま **次へ** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/7f13d1f4-4d7f-cd18-b9fb-f9e310110c50.png)
　<br>
0. Microsoft Entra ID (Azure AD) の管理者アカウント（全体管理者）のアカウントを入力して、**次へ** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/47e49769-4735-a6ab-6562-e27cb7348ffa.png)
　<br>
0. 以下の通り、認証ウィンドウが表示されるため、認証を続けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/cf60d7f4-d9a7-af7d-26ec-0f31ae20b9f7.png)
　<br>
0. MFA が構成されている場合。このまま 認証を続けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/bb6542a5-dcd8-ff88-d051-fdf8a90492ab.png)
　<br>
0. 以下の画面では、**"ハイブリッド Azure AD 参加の構成"** を選択して **次へ** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/bc8721b6-625e-e71b-b170-c8e4c1749599.png)
　<br>
0. **"Windows 10 以降のドメインに参加しているデバイス"** にチェックを入れて **次へ** を押します。
旧バージョンの OS（ダウンレベル）にも対応させるためには、**"サポートされている Windows ダウンレベル ドメインに参加しているデバイス"** にチェックを入れるだけでなく、以下の URL の追加構成も必要です。
https://learn.microsoft.com/ja-jp/entra/identity/devices/hybrid-join-control#supporting-down-level-devices
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b5cc0588-1e5c-099c-726d-992126d95ef7.png)
　<br>
0. **SCP の構成** では、下図の通り フォレストにチェックを入れ、認証サービス **Azure Active Directory** を選択して **追加** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/1b9493f1-01c5-6c5e-1685-a4d5386d093c.png)
　<br>
0. 以下の認証では、オンプレミスの エンタープライズ管理者（シングルドメイン環境では、ドメイン管理者で OK）のアカウントで認証します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/2aa67352-e5f4-3e01-146a-7db9751bb6f9.png)
　<br>
0. 認証が通ったら、以下のような画面になるため **次へ** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e1bcb57b-663a-efcf-d034-a3b2870e5b8f.png)
　<br>
0. 以下のような画面になれば 準備完了 です。**構成** を押して 処理を実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/fe28f2ca-a8a0-980b-e6cb-c213e4ddb9dd.png)
　<br>
0. 以下のような画面になれば、構成は完了です。**終了** ボタンを押して画面を閉じてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/1857a8b5-8521-d960-9093-c3773d80bc52.png)

:::note info
元々 ドメイン参加されていたデバイスは、本作業が終了後に ドメインユーザーでサインインすると、MEHJ が実施された状態（参加済みデバイス）になります。
:::

## 3-2. MEHJ 参加の手順 （クライアントデバイス側の作業）
作業内容は、クライアントを 3-1 章で構成済みの ドメインコントローラー に ドメイン参加 するだけです。

0. スタートボタンを右クリックして **設定** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/585983e2-c909-98ad-98a7-67367999263e.png)
　<br>
0. **アカウント** から、**職場または学校へのアクセス** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/cda32880-c59e-a4c6-c735-1448f85956e2.png)
　<br>
0. **接続** ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/8a6fecd6-4aff-9678-1d8b-b36e1be314b4.png)
　<br>
0. 赤枠部分 の **このデバイスをローカルの Active Directory ドメインに参加させる** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/c721b4b0-276f-a310-c7de-0313cc65fdc4.png)
　<br>
0. オンプレミスの ドメイン名 を入力して **次へ** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b6fb0aa2-516e-ebb5-2474-207c9c24c434.png)
　<br>
0. ドメインユーザー のアカウントを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/ebce704b-5b94-1dd5-abca-fd9be35d8d0f.png)
　<br>
0. 以下の画面が表示されるため **次へ** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/614eab6c-b24a-4298-718a-49a84cb66e81.png)
　<br>
0. 以下の画面が表示されるため **今すぐ再起動する** を押して 再起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/1d84e154-6267-94fb-73e9-442b8f03ae1f.png)

:::note warn
**仮想マシンの場合の注意点**
仮想マシンなどの場合は、RDP 接続で接続すると思います。
しかし、既定では 管理者アカウントしか RDP 接続できません。
管理者以外のユーザーが RDP できるようにするには、以下の設定を追加してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/9e1ca139-0997-d62c-2b60-fc03a9e16329.png)
★上記の "AVD" は、ドメイン名です。ご自身のドメイン名に読み替えてください。
:::

# 4. 動作確認
0. ドメイン参加後で、ログオン前の状態
Azure Portal の デバイス一覧を確認します。
デバイスを ドメイン参加した直後は、以下のとおり **Microsoft Entra hybrid joined** と表示されて **保留中** になっていることが確認できます。
この状態は、ドメインコントローラーから Connect 同期 を介して コンピューターオブジェクトが同期された状態ですが、 デバイスそのものが まだ テナントにアクセスしてきていない状態です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/1fdb3921-2274-f0f8-b046-d529ca74d8b0.png)
※上記のデバイス一覧に、ドメイン参加したコンピューターが表示されていない場合は、同期されるまで 最大30分 待機してください。
　<br>
0. MEHJ で参加したデバイスへ、ドメインユーザーでログオンします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b0bca27c-1dac-e44a-cde2-4ff7c7856a17.png)
　<br>
0. ログオンに成功したあと、dsregcmd /status というコマンドを実行した結果です。
**AzureAdJoined** と、**DomainJoined** の両方が **Yes** になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/a51a7cd1-f1e9-4c95-96a6-acacdd42d713.png)
　<br>
0. Azure Portal を確認すると、**保留** ではなく、登録された日付を確認できます。
この状態になると、デバイス と テナントが直接接続されて MEHJ が構成された状態になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/373319ba-915b-d43f-513c-63c80658c2b0.png)

**公開情報：Microsoft Entra ハイブリッド参加を確認する**
https://learn.microsoft.com/ja-jp/entra/identity/devices/how-to-hybrid-join-verify?wt.mc_id=mvp_407731

# トラブルシューティング
うまく MEHJ が動作しない場合などは、以下の トラブルシューティング が役立ちます。

https://learn.microsoft.com/ja-jp/entra/identity/devices/troubleshoot-hybrid-join-windows-current?wt.mc_id=mvp_407731

https://learn.microsoft.com/ja-jp/troubleshoot/mem/intune/device-enrollment/troubleshoot-windows-auto-enrollment?wt.mc_id=mvp_407731

# Next Step 1
Hybrid Join が行われた際に、連動して Intune にも自動登録させることができます。
MEHJ に 成功したら 次は、このアクションにチャレンジしてみましょう。

https://azuread.net/archives/8425

# Next Step 2
MEHJ が構成出来たら、次は Windows Hello for Business の構成にもチャレンジしてみましょう。

https://qiita.com/carol0226/items/0c06016f18e57bf44cb0

# 参考
https://www.slideshare.net/yusukekodama12/hybrid-azure-ad-join

https://jpazureid.github.io/blog/azure-active-directory/haadj-re-registration/