🐷

Azure AD認証でWindows 仮想マシンにログインする

2023/06/07に公開

はじめに

VM

AzureポータルでVMを作成する際、途中のタブに「Azure AD でログインする」という項目があります。
そんなことしねーよと思いながらスルーする方も多いのではないかと思いますが、
実際にどんな感じになるのかを試してみます。

VM作成

VM

まずはVMを作成します。
「Azure AD でログインする」のチェックをつけると、自動的に「システム割り当てマネージドID の有効化」のチェックもオンになります。
あとは大体いつも通り、ということで省略。
ちなみに、今回はWindowsVMで、ということでWindows11を選択してます。

VM

作成時に「Azure AD でログインする」を有効にすると、拡張機能に「AADLoginForWindows」が追加されます。

準備

VMを作成したら、Azure ADでログインできるようにするための準備です。

ネットワーク

ネットワーク要件

ファイアウォール等で外部アクセスが制御されている環境の場合は、以下のFSDNに対して、TCP/443で通信できるようにします。

https://enterpriseregistration.windows.net
http://169.254.169.254
https://login.microsoftonline.com
https://pas.windows.net

権限付与

ログインするAzure ADユーザにロールを割り当てます。
組み込みロールだと以下の2つが用意されています。

  • 仮想マシンの管理者ログイン
  • 仮想マシンのユーザーログイン

名前の通り、管理者ログインの場合は管理者権限で、ユーザーログインの場合は一般ユーザー権限でのログインとなります。

VM

カスタムロールで権限を付与したい場合は、dataActionsの欄の権限を付与します。
Micorsoft.HybridCompute の方はAzure Arcで接続したVM用です。
普通のAzureVMの場合は上の2つ。
/login/actionは一般ユーザー、/loginAsAdmin/actionは管理者ユーザーです。

VM
今回はadminというAADユーザで、仮想マシンの管理者ログインの権限を付与しました。

ログイン

ログインする際、クライアント側の状況によってログインできる方法が違ってきます。

パターン1

一つ目は接続元の環境も同じAzure ADに参加済みの場合。
この場合は、リモートデスクトップの接続画面で
Azure ADのユーザのID、パスワードを入力することでログインできます。

パターン2

二つ目は接続元の環境が接続先のAzure ADに参加していない場合。
この場合は、リモートデスクトップの接続画面の
詳細設定欄で「Web アカウントを使用して、リモート コンピューターにサインインする」のチェックを有効にする必要があります。

VM

なお、このチェックボックスは2022年10月の累積的な更新プログラムを適用することで使用できます。
ユーザー認証の欄がない場合は、WindowsUpdateしてください。

VM
チェックボックスをオンにしたら、コンピューターの欄にAzure VMのリソース名(ここではaad-win)を入力し、接続をクリックします。

VM
Azure ADの認証画面が出てくるので、Azure ADのユーザ情報を入力します。

VM
認証後、リモートデスクトップ接続を許可しますか?という画面が出てくるので、「はい」を選択。

VM
これでAzure AD認証でログインできます。

VM
接続先のVM内でローカルユーザを表示した画面です。
黒塗りしたユーザはAzure VM作成時に指定したユーザです。
個別のローカルユーザが作成されたりはしていません。

VM
続いてAdministratorsグループのメンバーの表示です。
黒塗りのユーザは上記と同じAzure VM作成時に指定したユーザです。
「AzureAD」というドメインのドメインユーザとして登録されているのがわかります。

さいごに

Azure AD認証でのWindows VMへのログインを試してみました。
セットアップについては、チェックボックスオンにするだけです。

一方で、ログインするにあたっては、パターン1はかなりユースケースが限定される気がします。
Azure内部で複数あるサーバ間でリモート接続する場合、ぐらいでしょうか。

Azureの外部からAzureのVMに接続したい場合のほうが多いのではないかと思うのですが、
その場合はパターン2になります。
ただし、パターン2の場合、WindowsUpdateしておく必要が出てきます。
自由に実施できる場合は問題ないですが、これがネックになる場合もあるのではないかと思います。

Discussion