Azure VM (Windows 仮想マシン) に Azure AD ユーザーで RDP 接続する方法について (パブリック プレビュー機能)

#はじめに
Azure VM (仮想マシン) に RDP 接続する場合、一般的には仮想マシン作成時に作成する「管理者アカウント」を利用するケースが多いと思います。

もちろんそれで全く問題はないのですが、管理者アカウントは仮想マシンのローカルに作成されるというのと、新規に作成した「管理者アカウント」そのものを管理する必要があります。

昨年末に、Azure サービスの 1 つである、Azure Active Directory 上のユーザーを利用して、RDP ができるという機能がパブリック プレビューされました。

Azure サービスを利用する上で、ユーザー ID の管理をクラウドの ID 基盤管理システムである Azure Active Directory を利用されている方が多いと思います。
わざわざ RDP 用のユーザーを使う必要がない、というだけでなく、以下のようなメリットを享受することができます。

##### Azure AD ユーザーの資格情報を使って RDP するメリット

・既存の Azure AD 上のユーザーを利用してそのまま Windows コンピューターに RDP できる
・Windows コンピューターのローカル管理者を管理する必要がなくなる (Azure AD ユーザーで RDP すればいいので)
・クラウドの ID を利用するので、Azure RBAC を適用でき、VM に対して適切な権限を付与して管理できる(制御が柔軟にできるようになる)
・クラウドの ID を利用するので、ユーザー名、パスワードだけでなく、多要素認証を要求させられるようになる(条件付きアクセスとの合わせ技、認証強化)
・Identity Protection と組み合わせれば、悪意のあるアクターが RDP を試みようとしたときに、ブロック等の対策を講じられる(条件付きアクセスとの合わせ技、Azure AD Premium P2 機能)

また、本機能は以下 Windows コンピューターに対して利用が可能です。

##### 対象コンピューター
・Windows Server 2019 Datacenter
・Windows 10 1809 以降

ネットワーク要件としては、下記エンドポイントにアクセスできる必要があります。
主に Azure AD の認証エンドポイントと、デバイスを Azure AD に参加 (Azure AD Join) させるために必要なエンドポイントになります。
ユーザー ID とデバイスを Azure AD で管理する必要があるので、通信要件としては下記エンドポイントにアクセスできる必要があります。

#####ネットワーク通信要件
・https://enterpriseregistration.windows.net
・https://login.microsoftonline.com
・https://device.login.microsoftonline.com
・https://pas.windows.net

本機能の情報は既に下記 Microsoft の公開情報と公式 Blog にもまとめられていますので、ぜひ参考にしてください。

-参考情報
Azure Active Directory 認証 (プレビュー) を使用して Azure 内の Windows 仮想マシンにサインインする
URL:https://docs.microsoft.com/ja-jp/azure/active-directory/devices/howto-vm-sign-in-azure-ad-windows#enabling-azure-ad-login-in-for-windows-vm-in-azure

Azure AD authentication to Windows VMs in Azure now in public preview
URL:https://techcommunity.microsoft.com/t5/azure-active-directory-identity/azure-ad-authentication-to-windows-vms-in-azure-now-in-public/ba-p/827840#

#やってみる

作業概要としては以下順におこないます。
1. Azure VM の作成
2. ロール (RBAC) の割り当て
3. RDP を Azure AD ユーザーで行う

#####1. Azure VM の作成
Azure ポータル → Virtual Machines より「＋追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/c291b4ed-0ab5-d6ca-e226-90d55a01042f.png)

基本の項目では、下記画面ショットのように「Windows 10 pro, version 1809」を選択するか、「Windows Server 2019 Datacenter」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/19944530-051d-35ea-a9b9-adef98eae401.png)

必須項目を入力して、「次：ディスク＞」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/4502d8e0-eee0-1209-47ce-debe2e818661.png)

(ディスク、ネットワークを適切に設定した状態で「管理」に進みます)
管理の項目で「AAD 資格情報を利用してログインする (プレビュー)」を「オン」にします。
※上記を「オン」にすると「システム割り当てマネージド ID」も「オン」に自動的になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/ffbe5c28-7f8e-39af-1091-d1333fb4707a.png)

「AAD 資格情報を使用してログインする(プレビュー)」が「オン」になっていることを確認し、「作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/fa7c73a5-599d-3967-c8cc-8cda0ebe208f.png)

Azure Cloud Shell で Azure AD ログインを有効にする手順は以下が参考になります。

-参考情報
Azure Cloud Shell のエクスペリエンスを使用して Azure AD ログインを有効にする
URL:https://docs.microsoft.com/ja-jp/azure/active-directory/devices/howto-vm-sign-in-azure-ad-windows#using-the-azure-cloud-shell-experience-to-enable-azure-ad-login

#####2. ロール (RBAC) の割り当て

作成された Azure VM のリソースに移動し、左ペインの「アクセス制御 (IAM)」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/4331f540-a0b3-730b-9e59-cc9b1dc90ddf.png)

画面上部の「＋追加」→「ロールの割り当ての追加」の順にクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/9212908d-3736-f251-76d2-1394ece2e128.png)

ロールの割り当ての追加の画面の「役割」より、「仮想マシンのユーザー ログイン」もしくは「仮想マシンの管理者ログイン」のいずれかを選択します。
「仮想マシンのユーザー ログイン」はユーザー権限で Azure VM にログインできます。
「仮想マシンの管理者ログイン」は管理者特権で Azure VM にログインできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/19ab31ed-afc8-652d-707c-84e430609249.png)

作成した Azure VM に RDP させたいユーザーもしくはグループ等を選択し、「保存」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/672d071f-aff3-5454-dfdc-2c4baabb7448.png)

ロールの割り当てが完了したことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/21f264be-3409-8070-9cc2-805e59f269e9.png)

#####3. RDP を Azure AD ユーザーで行う

これで Windows コンピューターに Azure AD ユーザーで RDP 接続するための設定が完了しました。
RDP ファイルのダウンロードをして接続してみました。

対象の Azure VM を選択し、画面上部の「接続」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/21bdc162-0569-fe62-4568-bbec1fe4cab3.png)

「仮想マシンに接続する」の画面にて、「RDPファイルのダウンロード」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/008b6c37-4c58-618e-c1a6-b51a466efc96.png)

RDP ファイルをローカルにダウンロードし、アイコンをダブルクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/a0041642-a6a6-64f9-e32f-1d40291f5589.png)

「接続」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/ee2f7079-58ba-2685-2ba2-43db5f280e7f.png)

Azure AD 上に登録されている資格情報を入力し「OK」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/1c2d1f3e-c8c0-3ead-abd1-abf8580d7c8c.png)

ログインに失敗してしまいました、Azure AD ユーザーで RDP 接続できませんね…。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/3ebb7e35-7092-bd2c-d102-08e7b1850608.png)

これはどういう事かというと、下記 Microsoft 公開情報に「重要」として記載されています。

-参考情報
Azure AD 資格情報を使用して Windows VM にログインする
URL:https://docs.microsoft.com/ja-jp/azure/active-directory/devices/howto-vm-sign-in-azure-ad-windows#log-in-using-azure-ad-credentials-to-a-windows-vm

>
重要
Azure AD 参加済みの VM にリモート接続できるのは、VM として同じディレクトリに対して Azure AD 参加済みまたはハイブリッド Azure AD 参加済みの Windows 10 PC からのみです。 さらに、Azure AD 資格情報を使用して RDP 接続するには、ユーザーは 2 つの RBAC ロールのいずれか (仮想マシンの管理者ログイン、または仮想マシンのユーザー ログイン) に属している必要があります。 現在、AADLoginForWindows 拡張機能で Azure Active Directory 認証を使用してログインするために Azure Bastion を使用することはできません。 ダイレクト RDP のみがサポートされています。

つまり、本設定を行った Azure VM が Azure AD 参加 (Azure AD Join) しているのが大前提ですが、***RDP を実行する Windows 10 コンピューター*** が必ず同一の Azure AD テナントに Azure AD Join もしくは Hybrid Azure AD Join としてデバイスが参加している必要があります。

従って、対象の Azure AD テナントに参加していない Windows コンピューターからは、この機能は使えない、ということになりますので注意が必要です。

今回は、同じ 「shyamag023.onmicrosoft.com」テナントに Azure AD Join している、Server2019-001 から Windows10-001 に対して Azure AD ユーザーで RDP できるか試してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/30f9a754-2d2b-e7d7-f10f-24c56c3b1aba.png)

RDP ファイルを実行し、「接続」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/fbb8c1e5-3f47-0528-055f-da29654821b2.png)

資格情報を入力して「OK」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/f5d372cc-7893-40b0-4bf9-df9367c54de5.png)

「はい(Y)」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/8f5eb9be-0917-8647-add6-00958b51a7c0.png)

無事 RDP ができました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/1033006f-3388-6bd4-e576-dd8cad83fb31.png)

ちなみに「dsregcmd /status」を実行すると、「AzureAdJoined」が「YES」であること、「Azure AD PRT」が 「YES」であることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/465ec44e-ab83-7e5a-36b6-cc4d3a0081d5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/b08ec9c0-ab1c-fd96-e491-c4e6aadc75a0.png)

つまり PRT が取れているので、Office 365 アプリケーションには、別途資格情報を入力する必要はなく、シングル サインオンができます。

#おわりに
今回は、2019年末にパブリック プレビューの機能で追加された「Azure Active Directory 認証 (プレビュー)」を使用して Azure AD ユーザーで Windows コンピューターに RDP 接続する動作を確認してみました。

現時点でまだパブリック プレビューの機能なので GA (正式リリース) するかどうかは不明ですが、冒頭にも触れましたように、Azure AD 上の ID 情報を利用することで、認証を強化するとともに、管理をシンプルにすることが可能になります。
今回は触れませんでしたが、Windows Hello for Business を構成している環境であれば、条件付きアクセスの多要素認証として、Windows Hello for Business を利用することも可能です。

今回の記事が少しでも参考になれば幸いです。