💻

Bastion で Windows VM に Azure AD 認証でログイン

2023/06/27に公開

はじめに

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"
Microsoft (有志)

Discussion