Azure Virtual DesktopをオンプレADを利用して構成する

ADDSはActive Directory Domain Services、Azure Active DirectoryではなくActive Directoryを利用する際に構成するサービスになります。現在AVDはAzure ADを用いて構成することも可能ですが、マルチセッションがプレビューになっているため、オンプレのADを用いて構成する必要がある場合があります。

本記事では、オンプレを想定したVM上に構築したADを利用してAVDを構成するシナリオを実現します。王道すぎるシナリオですが自分の備忘録的にも記事にしておきます。

作業の全体像
1．オンプレ想定＋クラウド側のネットワークの枠組み(VNet/Subnet/VPNGateway/Peering)を作成
2．Windows Server VMでADの構成
3．AD上でユーザ作成＋Azure AD ConnectによるAzure ADとの同期
4．AVDのホストプールを作成するVNetに対するAzure DNSの設定
5．AVD関連リソース作成(ホストプール/ワークスペース等)
6．ワークスペースに接続して利用を開始する

# 1．ネットワーク構成
以下の図のような構成で作成します。企業のネットワークであればExpressRouteで接続することが多いですが、あくまでオンプレ環境をAzureで模しているためVPNでVNet同士を接続します。Gateway周りの設定が面倒であればVNetPeeringをしてしまってもプライベートアドレスで疎通できるため問題はありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/fa20dbf7-6356-6e6c-d393-ea785b0bc147.png)

Azure側のHUBVNetとAVDVNet間のPeeringの際にはONPNet<->AVDVNetが接続できるようにリモートゲートウェイ(AVDVNetがONPVNetのゲートウェイを利用する)の設定をする必要があります。 

AVDVNet側から設定すると以下の図のようになります。「リモート仮想ネットワークのゲートウェイまたはルートサーバを使用する」にチェックをします。（リモート仮想ネットワーク側にGatewayが構築されていないと選択できないようになっています。）

最近のアップデートでリモート仮想ネットワーク側からのピアリングも同時に作成できるようになりました。今回はHUBVNet側にGatewayがあるので、「この仮想ネットワークのゲートウェイまたはルートサーバを使用する」を選択します。（こちらもGatewayが構築されていないと選択できません。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/f704da0a-73c8-b952-eaac-155c04fba889.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/4cb58543-38b8-607f-8ca7-a9e5d27fc903.png)

# 2. オンプレ(想定)VM上にADを構成する
具体的な構成手順は下記の記事を参考にしてください。
https://qiita.com/KentoNaka/items/7c232d4c5ecd2ba76724

手順の中でAD側のRoot DomainにAzure AD側のプライマリドメインを設定する部分がありますが、これはAzure AD ConnectによってAzure AD側と同期するためです。オンプレ環境のみの場合は.localしかない場合は、下記リンクに従って新しいドメイン名で書き換えが可能です。
https://docs.microsoft.com/ja-jp/microsoft-365/enterprise/prepare-a-non-routable-domain-for-directory-synchronization?view=o365-worldwide

（検証用にすでにAzure AD Connectを構成しているVMがあったため、接続を削除する必要がありました。VM上でAzure AD Connectをアンインストールし、下記の手順でAzureADとの同期を解除する必要がありそうです。その後再度Azuer AD Connectを構成するまで最大72時間かかるそうで手間取りました。）

https://mitsushima.work/archives/25469978.html

# 3. ADにユーザ追加、Azure AD Connect
Server Managerの「Tool」から「Active Directory Users and Computers」を選択。人型のアイコンを選択してユーザを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/377424be-95ca-3309-cd06-00798bf9384d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/9191a838-3989-c895-a800-10088091fdce.png)

作成するユーザの情報を入力します。下記の設定にすると検証が楽になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/87a47ac2-0294-dc2f-91e7-a8a67e3d6934.png)

ユーザの追加が完了したら、Azure AD Connectを実施してADの情報をAzureAD側へ同期します。方法は先ほどと同様下記の記事に記載があります。
https://qiita.com/KentoNaka/items/7c232d4c5ecd2ba7672

# 4. Azure側のDNS設定
Azure上に構築するAVDのホストプールは、オンプレ想定のVM上に構成されたActive Directoryに参加させます。その際、明示的にActive Directoryのアドレスを指定しないと名前解決ができないためデプロイに失敗してしまいます。AzureのVNetではVNetやサブネットごとに参照するDNSサーバを登録できます。今回はAVDVNetの単位でDNSサーバを追加します。「カスタム」を選択してActive Directoryを構成したVMのプライベートIPを入力します。リモートゲートウェイを使用してオンプレVMとプライベート接続ができるため、プライベートIPで設定できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/5b1cc3dc-ff1a-c1ba-2f2b-a7ee160ba2b4.png)

参考：

https://docs.microsoft.com/ja-jp/azure/virtual-desktop/troubleshoot-vm-configuration

# 5. AVDリソースの作成
AVDの画面からホストプールを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/233def83-73a6-af3a-257b-1d320cb65434.png)

ホストプールのリージョンは現在米国やカナダ、英国しか選択できません。ここで選択するリージョンはあくまでサービス向上のために収集するデータの送信先になります。ユーザーデータは保管されません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/c4c3b972-8d7f-b813-8704-46a19da8b746.png)

ホストプールに追加する仮想マシンの実体は問題なく東日本にデプロイできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/c127c8e8-4c0f-e298-38ac-a1c8eec6d5ec.png)

仮想ネットワークはAVDVNetを選択、サブネットも適切なものを選択します。「参加するドメイン」はActive DirectoryもしくはAzure ADを選択できますが、Azure ADの場合マルチセッションがプレビューになります。今回はオンプレVMにADを展開済みなのでそのADに対してマシンの権限のあるアカウント情報を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/d8632f47-039e-fbb4-7a71-6618ee497dfe.png)

あとは、ワークスペースを作成するなど良しなに設定を行います。デプロイが問題なく完了した後、オンプレVMに接続してToolのActive Directory Users and Computersを開きます。作成したAVDのセッションホストがADに参加していることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/cb93ba4c-9ea2-e00c-b72d-7353dc89a196.png)

# 6．デスクトップ or Webクライアントから利用開始
利用開始するにあたってアプリケーショングループにユーザを追加する必要があります。ホストプールを利用できるユーザを管理するイメージです。今回ホストプールはオンプレADのドメインに参加しています。よって、オンプレADに登録されているユーザにホストプールを割り当てる必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/1c567192-0894-2864-98d2-a3e3b98b7846.png)

AVDを実際に利用するには、Windowsのデスクトップクライアントをインストールするか、Webクライアントを利用するかのどちらかになります。クライアントからログインするとログインユーザが利用可能なワークスペースとそこに属しているデスクトップやアプリの一覧が確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/6404530a-b7ab-85e8-2990-d7e5f6f4763e.png)

Webクライアント：
https://rdweb.wvd.microsoft.com/webclient

デスクトップクライアントのDL：
https://docs.microsoft.com/ja-jp/azure/virtual-desktop/user-documentation/connect-windows-7-10

「SessionDesktop」をダブルクリックするとログイン画面が現れ、そこでログインするとAVDを利用開始できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/68ea677b-37f8-d379-2835-c958a95857c6.png)

（イメージをWindows11にしてみました(笑)）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/2fd0637b-ab7a-0640-5c18-1c435d0ac5f4.png)

# おわりに
Azure Infraで需要の多いAVDのシナリオについて改めてまとめてみました。スクリーンショットを禁止するといった細かい制御もできるのですが、今回は省略します。またAD周りの設定に関してはAzure AD中心へと移り変わっていくような気もしますが、誰かの参考になれば幸いです。