Contents
前提条件と必要な Azure リソース
このセクションでは、Entra ID 認証を Azure Virtual Desktop (AVD) に導入する際に必ず確認すべきテナント情報・サブスクリプション情報、および対象となるホストプールの構成要件を整理します。事前に正しく把握しておくことで、設定途中で発生しやすい認証エラーやリソース不足による障害を未然に防げます。
テナント・サブスクリプション情報の取得方法
Azure Portal もしくは CLI/PowerShell を使って以下の情報をメモしておきましょう。
- テナント ID:
Azure Active Directory > 概要に表示される「ディレクトリ (テナント) ID」 - サブスクリプション ID:
サブスクリプション > 対象のサブスク > プロパティから取得
PowerShell:
Get-AzContext、Azure CLI:az account showでも確認可能です。
ホストプールと Azure AD Join の必須構成
AVD に Entra ID 認証を適用するには、次の条件を満たすホストプールが必要です。
- ホストプール:テスト環境であれば「Standard」タイプの新規作成でも可
- セッションホスト OS:Windows 10/11 Enterprise (バージョン 21H2 以上) が Azure AD Join または Azure AD 登録済み
- MDM 自動登録:Intune 等への自動デバイス登録が有効化されていること
ライセンス要件とエディションの確認
Entra ID 認証を利用するには、以下のライセンスが必要です。
| 必要なライセンス | 主な対象 |
|---|---|
| Azure Virtual Desktop (AVD) の「Windows 10/11 Enterprise Multi‑Session」または「Windows 365」 | ユーザー単位での AVD 利用権 |
| Windows 10/11 Enterprise E3/E5、もしくは Microsoft 365 E3/E5 系列 | Azure AD Join が可能な OS エディション |
| Entra ID (Azure AD) プレミアム P1/P2(条件付きアクセスポリシーや MFA をフル活用する場合) | 高度なセキュリティ機能の利用 |
これらが未取得の場合、Entra ID 認証は有効化できても SSO が期待通りに動作しないことがあります。必ずライセンスプランを確認したうえで構築を進めてください。
Entra ID 認証の概要と AVD がサポートする方式
本節では、AVD で利用できる認証方式の全体像と、Entra ID が提供するシングルサインオン (SSO) の位置付けを解説します。組織のセキュリティ要件に合わせて最適な方式を選択できるようになることが目的です。
Azure AD が提供する認証オプション
AVD は Azure AD と連携し、次の 3 種類の認証フローをサポートします。
| 認証方式 | 特徴 | 主な利用シーン |
|---|---|---|
| Password Hash Sync (PHS) | パスワードハッシュを Azure AD に複製し、クラウド側で認証 | 小規模・オンプレミス依存が少ない環境 |
| Pass‑Through Authentication (PTA) | 認証要求をオンプレミスのエージェントへ転送し、ローカル AD が認証 | パスワードをクラウドに残したくない組織 |
| Federation (AD FS 等) | SAML/WS‑Fed で外部 IdP と連携し、オンプレミスで完全認証 | 高度なカスタムポリシーが必要な企業 |
シングルサインオン (SSO) の仕組み
Entra ID が発行したアクセストークンを利用することで、ユーザーは Windows のログオン画面を経由せずに AVD に接続できます。これにより以下の効果が得られます。
- パスワード入力不要で接続時間が短縮
- 認証情報漏洩リスクが低減
公式ドキュメントはこちら を参照してください。
ホストプールで Entra ID 認証を有効化する手順
ここでは Azure Portal、PowerShell(Az.DesktopVirtualization モジュール)、Azure CLI の 3 パターンでの設定方法を示します。まずはテスト用ホストプールで動作確認し、本番環境へ適用してください。
Azure Portal から有効化する手順
- ポータルにサインインし、Azure Virtual Desktop > ホストプール を開く
- 対象のホストプールを選択し、左メニューの プロパティ → 認証方式 をクリック
- 「Microsoft Entra ID (Azure AD) 認証」にチェックを入れ 保存
設定が反映されたかは、ホストプール概要画面に「認証タイプ: AzureAD」と表示されていることを確認してください。
PowerShell(Az.DesktopVirtualization)で自動化する例
以下のスクリプトは、モジュール名を統一した上で Entra ID 認証を有効化します。テスト環境で実行後、本番へ展開する際はパラメータのみ変更してください。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# Az.DesktopVirtualization モジュールのインストール(未導入時) Install-Module -Name Az.DesktopVirtualization -Scope CurrentUser -Force # Azure へのサインイン Connect-AzAccount # パラメータ設定 $resourceGroup = "rg-avd-test" $hostPoolName = "hp-enra-id" # Entra ID 認証を有効化 Set-AzWvdHostPool ` -ResourceGroupName $resourceGroup ` -Name $hostPoolName ` -AuthenticationType "AzureAD" Write-Output "Entra ID 認証がホストプール '$hostPoolName' に適用されました。" |
Set-AzWvdHostPoolは Az.DesktopVirtualization モジュールに含まれるコマンドレットです。
Azure CLI で同等の操作を行う手順
CLI を使用する場合も同様に --authentication-type AzureAD オプションで有効化できます。Cloud Shell から直接実行できる点が便利です。
|
1 2 3 4 5 6 7 8 9 10 11 12 |
az login RG="rg-avd-test" HP="hp-enra-id" az desktopvirtualization hostpool update \ --resource-group $RG \ --name $HP \ --authentication-type AzureAD echo "Entra ID 認証がホストプール $HP に適用されました。" |
シングルサインオン、MFA、条件付きアクセスポリシーの構成
このセクションでは、AVD のユーザー体験を向上させる SSO の設定手順と、セキュリティ強化のために必須となる MFA と条件付きアクセス(Conditional Access)ポリシーの作り方を解説します。
Azure AD Join と自動 MDM 登録の流れ
- デバイス登録
- Autopilot または手動インストール時に「Azure AD に参加」オプションを選択し、同時に Intune の「MDM 自動登録」を有効化する。
- トークン取得
- ユーザーが Azure AD にサインインするとデバイスへアクセストークンが発行され、AVD クライアントはこのトークンでシームレスに接続できる。
デバイスが正しく Azure AD Join されていないと SSO が機能しません。
設定 > アカウント > 職場または学校にアクセスで状態を確認してください。
MFA の有効化と推奨ポリシー例
MFA は全ユーザー対象でも、サインインリスクが高い場合だけ適用しても構いません。以下は一般的なベストプラクティスです。
| 条件 | 推奨設定 |
|---|---|
| 全ユーザー(基本) | 「Require MFA for all users」ポリシーを作成し、対象アプリに Azure Virtual Desktop を指定 |
| 高リスクサインイン | サインインリスクが high のときに必須 MFA |
| 信頼できない IP 範囲外 | Trusted IP 以外からのアクセス時に MFA 要求 |
ポリシー作成手順は、Azure AD > Security > Conditional Access > 新規ポリシー で対象ユーザー・アプリを設定し、Grant に Require multi-factor authentication を選択します。
条件付きアクセスポリシーの設計ポイント
- 信頼できる IP アドレスの登録
Azure AD > Security > Conditional Access > Named locationsで社内ネットワークを「Trusted」に設定。- デバイスプラットフォーム別の例
- Windows デスクトップ:常に MFA 必須
- iOS/Android:Intune 管理済みデバイスは MFA 免除(リスクが低いと判断)
ポリシーは必ず Report‑only モードでテストし、予期せぬブロックが発生しないことを確認してから本番適用してください。
トラブルシューティング・検証・ベストプラクティス
設定完了後に起こりやすい認証エラーとその対処法、および運用上のチェックリストをまとめます。迅速な原因切り分けでダウンタイムを最小化し、安定したサービス提供を実現します。
主なエラーと推奨対策
| エラーコード・メッセージ | 主な原因 | 推奨対策 |
|---|---|---|
| Multiple sign‑in attempts detected | 短時間に同一デバイスで多数の認証要求が走る | デバイスキャッシュをクリアし再起動、または接続間隔を調整 |
| 401 – トークン期限切れ | Azure AD アクセストークンの有効期限が過ぎた | az account get-access-token --resource https://management.azure.com/ で新トークン取得、Windows Update の適用状況確認 |
| 条件付きアクセスブロック | ポリシーに合致しない IP または非準拠デバイス | Azure Portal の Sign‑in logs で対象イベントを特定し、Trusted IP へ追加または例外設定 |
エラーが頻発する場合は、Azure AD Sign‑in logs と AVD の診断ログ(Log Analytics)を同時に確認すると原因が絞りやすくなります。
ログ取得と分析手順
- Azure Monitor / Log Analytics
kql
AzureDiagnostics
| where ResourceType == "MICROSOFT.DESKTOPVIRTUALIZATION/hostpools"
| where Category == "Authentication"
| summarize Count = count() by ResultDescription, bin(TimeGenerated, 1h) - Windows イベントビューア
Application and Services Logs > Microsoft > Windows > User Device Registration > Operationalにトークン取得失敗 (0x801c0385) が記録されます。 - PowerShell
powershell
Get-AzWvdUserSession -ResourceGroupName $RG -HostPoolName $HP |
Select-Object UserPrincipalName, SessionState, LastHeartBeat
運用ベストプラクティス
- 最小権限のロール割当
Desktop Virtualization ReaderとDesktop Virtualization Administratorを組み合わせ、管理者以外にはAzure AD Joined Device Local Adminのみ付与する。- ポリシー定期レビュー
- 条件付きアクセスポリシーは四半期に一度、リスク評価と合わせて見直し。変更時は必ず Report‑only で検証。
- 設定のバックアップ
az deployment group export --resource-group <RG> > avd_backup.jsonにより ARM テンプレートを取得し、誤設定時に迅速にロールバックできるよう保管する。
これらを実践すれば、Entra ID 認証付き AVD を安全かつ安定的に運用できるでしょう。