Azure AD Connect のアップグレードで参考にした情報まとめ

<font color="red">(2021/09/07 追記)</font>
**Azure AD Connect 1.x のすべてのバージョンは 2022/08/31 でリタイア**するとアナウンスがありました。
お早めに 2.x にアップグレードしましょう。

https://azure.microsoft.com/en-us/updates/action-required-upgrade-to-the-latest-version-of-azure-ad-connect-before-31-august-2022/?WT.mc_id=AZ-MVP-5003113

# はじめに

2021 年 6 月 30 日をもって Azure AD での TLS 1.0/1.1 が無効化され、Azure AD Connect でも TLS 1.2 を対応する必要があります。

https://docs.microsoft.com/ja-jp/troubleshoot/azure/active-directory/enable-support-tls-environment?WT.mc_id=AZ-MVP-5003113

この対応について主な作業は以下のとおり。

- Azure AD Connect を最新のバージョン (1.4.38.0 以降) に更新する
    - <font color="red">(2021/06/22 以下を追記)</font>
    - 以下のドキュメントでは、「Azure Active Directory Connect のバージョン **1.2.65.0 以降**では、Azure との通信に対して TLS 1.2 のみの使用が完全にサポートされています。」と記載されているので、これ以降がマストですかね。
    - [Azure AD Connect に対する TLS 1.2 の強制](https://docs.microsoft.com/ja-jp/azure/active-directory/hybrid/reference-connect-tls-enforcement?WT.mc_id=AZ-MVP-5003113)
- Windows Server で TLS 1.2 が無効化されていないことを確認する
- パススルー認証を採用している場合、エージェントのバージョンが 1.5.389.0 以降であることを確認する

https://jpazureid.github.io/blog/azure-active-directory-connect/azure-ad-connect-tls/

ここ最近、この対応をいくつか行ったので、その際に参考にした公式ドキュメントや記事を備忘録としてここにまとめておこうと思います。
※追記した内容は、[更新履歴](#%E6%9B%B4%E6%96%B0%E5%B1%A5%E6%AD%B4)をご確認ください。


# その前に、そもそも同期の動きって？

更新作業を実施する際、以下のような質問をよくいただくことがあります。:scream:

- 新規に構築した Azure AD Connect のステージングモードを無効化した途端にフル同期 (完全同期) となって同期完了するまで時間がかかってしまうの？
- 同期元の Azure AD Connect サーバーを切り替えると、Azure AD 上の同期済みのオブジェクトに影響はないの？書き換わってしまうの？

私 (たち) もなんとなく理解しているつもりですがツッコまれると回答に詰まり、あーちゃんと深く理解していなかったなーと自覚＆反省しました...:sweat_smile:

このあたりの挙動を理解するために情報を探ってみたところ、以下の記事がとても分かりやすかったです。

https://jpazureid.github.io/blog/azure-active-directory-connect/introduction-staging-server/

とくに、記事中の「1. Staging サーバーとは？」の「Active サーバーと Staging サーバーを並べて構成したイメージ」図がとても分かりやすい！理解した！:triumph:

![Active サーバーと Staging サーバーを並べて構成したイメージ](https://jpazureid.github.io/blog/azure-active-directory-connect/introduction-staging-server/aadc_staging_1-1.jpg)

さて前述した質問ですが、以下のように回答できるかと思います。

ステージングモードの状態で「フル同期」を実施して事前に Azure AD とオンプレ AD からの Import (最新の状態の取り込み) と Sync (データベースの更新) することで、

- 切り替え時に実施する同期の大半は「Azure AD とオンプレ AD への Export」となり、同期時間の短縮を図ることができる 
- 切り替え時は Azure AD Connect 内の情報は最新の状態となっているので大丈夫
    - 切り替え前にオブジェクトの追加・更新・削除はなるべく避けていただいたほうが良い (想定外の同期が発生させたくないので)


# Azure AD Connect をアップグレード

## Azure AD Connect のアップグレード方法を決める

Azure AD Connect のアップグレード方法には以下の 4 パターンが挙がるかと思います。

1. 2 台構成によるスウィングアップグレード 
2. 1 台構成に新規でもう 1 台追加してアップグレード
3. 1 台構成によるインプレースアップグレード
4. 自動アップグレード

※1. と 2. はだいたい似たような作業 (スウィングアップグレード) になりますね。

https://docs.microsoft.com/ja-jp/azure/active-directory/hybrid/how-to-upgrade-previous-version?WT.mc_id=AZ-MVP-5003113


## Azure AD Connect のアップグレード方法の手順は？

それぞれのアップグレード方法の解説や手順は、公式ドキュメントにも記載されています。まずはこちらを一読すると良いでしょう。

- 旧バージョンからアップグレードする＞スウィング移行 (スウィングアップグレード)

https://docs.microsoft.com/ja-jp/azure/active-directory/hybrid/how-to-upgrade-previous-version?WT.mc_id=AZ-MVP-5003113#swing-migration

- 旧バージョンからアップグレードする＞一括アップグレード (インプレースアップグレード)

https://docs.microsoft.com/ja-jp/azure/active-directory/hybrid/how-to-upgrade-previous-version?WT.mc_id=AZ-MVP-5003113#in-place-upgrade

- Azure AD Connect 自動アップグレード

https://docs.microsoft.com/ja-jp/azure/active-directory/hybrid/how-to-connect-install-automatic-upgrade?WT.mc_id=AZ-MVP-5003113

読んでわかるように、文字がいっぱいでちょっとツラいです。:sweat_smile:

以下の記事には、それぞれの方法 (自動アップグレード以外) の詳しい手順が記載されたパワポがダウンロードできます。お客様に説明する際の参考資料としても使えそうです。

https://jpazureid.github.io/blog/azure-active-directory-connect/how-to-upgrade-details/


## 既存のものと同じようにセットアップしたかシンパイ

2 台構成 (および新規で 1 台追加した構成) で一方をステージングモードでセットアップした内容が既存のものと同じであることをチェックする必要があるかと思います。
そのような場合は、Azure AD Connect Sync Configuration Documenter を使用して、設定内容を機械的に比較して、差分があるか、そしてその差分内容をチェックします。

https://jpazureid.github.io/blog/azure-active-directory-connect/azure-ad-connect-AADConnectConfigDocumenter/


## カスタマイズした同期規則がシンパイ

<font color="red">(2021/06/22 追記)</font>

標準の同期規則を変更している状態で、アップグレードを実施すると上書きされてしまいます。
以下のドキュメントに従って対処しましょう。

- Azure AD Connect Sync: 既定の構成を変更するためのベスト プラクティス＞同期規則に対する変更

https://docs.microsoft.com/ja-jp/azure/active-directory/hybrid/how-to-connect-sync-best-practices-changing-default-configuration?WT.mc_id=AZ-MVP-5003113#changes-to-synchronization-rules

https://docs.microsoft.com/ja-jp/azure/active-directory/hybrid/how-to-connect-create-custom-sync-rule?WT.mc_id=AZ-MVP-5003113


## セットアップ後の事前確認

<font color="red">(2021/07/07 追記)</font>

ステージングモードでも同期処理は行っています。ただ、Azure AD とオンプレミス AD へのエクスポート (Azure AD とオンプレミス AD のオブジェクトへの変更) 処理は行っていません。この状態で、CSExportAnalyzer を使ってエクスポート待ちとなっているデータを確認することができます。このコマンドのアウトプットから Azure AD オブジェクトに対する変更内容を確認することができます。

- どうやって大きな作業に向けた事前確認で安心できるの？

https://jpazureid.github.io/blog/azure-active-directory-connect/introduction-staging-server/#3-%E3%81%A9%E3%81%86%E3%82%84%E3%81%A3%E3%81%A6%E5%A4%A7%E3%81%8D%E3%81%AA%E4%BD%9C%E6%A5%AD%E3%81%AB%E5%90%91%E3%81%91%E3%81%9F%E4%BA%8B%E5%89%8D%E7%A2%BA%E8%AA%8D%E3%81%A7%E5%AE%89%E5%BF%83%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%AE%EF%BC%9F


## 自動アップグレードなのに最新バージョンじゃない！

自動アップグレードなのにも関わらず最新バージョンではない！という場合は、以下のトラブルシューティングを行って確認してみましょう。

- Azure AD Connect 自動アップグレード＞トラブルシューティング

https://docs.microsoft.com/ja-jp/azure/active-directory/hybrid/how-to-connect-install-automatic-upgrade?WT.mc_id=AZ-MVP-5003113#troubleshooting

<font color="red">(2021/06/22 以下を追記)</font>
あと、リリース履歴には、バージョンごとに自動アップグレード用にリリースされたか否かが記載されているので、こちらもご参照ください。

https://docs.microsoft.com/ja-jp/azure/active-directory/hybrid/reference-connect-version-history?WT.mc_id=AZ-MVP-5003113

<font color="red">(2021/06/24 以下を追記)</font>
リリース履歴を確認すると、最後に自動アップグレード用にリリースされたのは**「1.4.18.0」**です。
※一部のテナントにはその次のバージョン「1.4.25.0」がリリースされたそうですが。
もし、既存の Azure AD Connect がこのバージョン (またはこの次のバージョン) だった場合は、自動アップグレード機能に不具合があるわけではない (正常な動作) ということですね。

なお、バージョン「1.4.xx.x」の Azure AD Connect を利用している環境では、以下のような既知の問題があるそうです。

https://docs.microsoft.com/ja-jp/azure/active-directory/hybrid/reference-connect-device-disappearance?WT.mc_id=AZ-MVP-5003113


## OS レベルで TLS 1.2 が有効になっているか

「Windows Server で TLS 1.2 が無効化されていないこと」の確認については、以下のドキュメントと記事が参考になります。

- Azure AD Connect に対する TLS 1.2 の強制＞レジストリを更新する

https://docs.microsoft.com/ja-jp/azure/active-directory/hybrid/reference-connect-tls-enforcement?WT.mc_id=AZ-MVP-5003113#update-the-registry

- Azure AD Connect における TLS 1.2 の対応について＞2. Windows Server （OS レベル）で TLS 1.2 が無効化されていないことを確認する。

https://jpazureid.github.io/blog/azure-active-directory-connect/azure-ad-connect-tls/#2-Windows-Server-%EF%BC%88OS-%E3%83%AC%E3%83%99%E3%83%AB%EF%BC%89%E3%81%A7-TLS-1-2-%E3%81%8C%E7%84%A1%E5%8A%B9%E5%8C%96%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%81%93%E3%81%A8%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E3%80%82


## Azure AD への接続を確認したい

Azure AD との接続に問題がないことを確認したい場合は、以下の記事で紹介されているスクリプト**「AADConnect-CommunicationsTest.ps1」**を Azure AD Connect をインストールしたサーバーで実行します。

このスクリプトは、Azure AD Connect が使用する接続先への疎通テストを一括で実施してくれます。また、システム構成 (Azure AD Connect) の確認 (プロキシ設定や OS レベルでの TLS など) も実施してくれます。

https://jpazureid.github.io/blog/azure-active-directory-connect/azure-ad-connect-general-information/

なお、この記事で紹介されているスクリプト**「AADConnect-CommunicationsTest.ps1」**は、以下のページから入手できます。
※TechNet ギャラリーは無くなってしまいました。:weary:

https://www.powershellgallery.com/packages/AADConnect-CommunicationsTest/


# まとめ

他にも参考になりそうな情報があったら (思い出したら)、今後も追記していこうと思います！:sunglasses:


# 更新履歴

- 2021/06/22 更新
    - [「はじめに」](#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB)にて、Azure AD Connect のバージョンについて追記
    - [「カスタマイズした同期規則がシンパイ」](#%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%81%97%E3%81%9F%E5%90%8C%E6%9C%9F%E8%A6%8F%E5%89%87%E3%81%8C%E3%82%B7%E3%83%B3%E3%83%91%E3%82%A4)を追記
    - [「自動アップグレードなのに最新バージョンじゃない！」](#%E8%87%AA%E5%8B%95%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89%E3%81%AA%E3%81%AE%E3%81%AB%E6%9C%80%E6%96%B0%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%98%E3%82%83%E3%81%AA%E3%81%84)にて、リリース履歴について追記
- 2021/06/24 更新
    - [「自動アップグレードなのに最新バージョンじゃない！」](#%E8%87%AA%E5%8B%95%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89%E3%81%AA%E3%81%AE%E3%81%AB%E6%9C%80%E6%96%B0%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%98%E3%82%83%E3%81%AA%E3%81%84)にて、リリース履歴について追記
- 2021/07/07 更新
    - [「セットアップ後の事前確認」](#%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E5%BE%8C%E3%81%AE%E4%BA%8B%E5%89%8D%E7%A2%BA%E8%AA%8D)を追記