💻
Bastion で Windows VM に Azure AD 認証でログイン
はじめに
Bastion 経由で VM に Azure AD 認証ログインを検証する必要があり、いろいろ苦戦したので、メモ残します。
注意点
- Azure AD 認証ログインを有効化すると Windows VM が Azure AD 参加になる
- そのため、すでに AD Join や Hybrid Azure AD Join の場合は使用できない
- Windows Server 2019 Datacenter 以降、Windows 10 1809 以降、Windows 11 21H2 以降がサポート対象
- 接続元端末が同一テナントの Azure AD 参加、Azure AD 登録もしくは Hybrid Azure AD 参加している必要がある (※ パスワードレス認証の場合には不要な条件だが、パスワードレス認証対応 OS が限定的 (Server OS は Win 2022 以降))
- Bastion 経由の場合、ネイティブ クライアント接続になるので Standard SKU が必要
- 接続元端末にログインするユーザーは VM にログインするユーザーと一致しなくてもよい
- 条件付きアクセスが Azure Windows VM Sign-in アプリに対して構成可能だが、パスワード/制限付きパスワードレス認証を使用する場合、MFA が Windows Hello for Business しか使えないため、通常のパスワード認証の場合には条件付きアクセスの MFA 関連ポリシーから対象外にする必要がある
事前準備
VM 構築時に Azure AD ログインにチェックを入れる、もしくは既存 VM に AAD 認証ログイン用の拡張機能をインストール
[仮想マシンの管理者ログイン] もしくは [仮想マシンのユーザー ログイン] ロールの割り当て
動作確認
Azure AD 参加、Azure AD 登録もしくは Hybrid Azure AD 参加している端末から Bastion のネイティブ クライアントを az network bastion rdp
コマンドで起動して、user@contoso.com 形式でログイン
[参考] Linux の場合
拡張機能をインストール
Windows VM と同じように [仮想マシンの管理者ログイン] もしくは [仮想マシンのユーザー ログイン] ロールの割り当て
Azure CLI 用 SSH 拡張機能のインストール
az extension add --name ssh
Linux VM にログイン
az login
az ssh vm -n <vm name> -g <resource group name>
Bastion 経由で Linux VM にログイン
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "AAD"
Discussion