Azure VM に Entra ID でサインインできない時の原因と解決策(CloudAP・SID エラー・MFA/条件付きアクセス徹底解説)

Azure VM に Microsoft Entra ID(旧 Azure AD)でサインインしようとしても、拡張機能も状態も問題なさそうなのに RDP が通らない――そんな事象は、MFA や条件付きアクセス、RBAC 設定など複数要素が絡むため原因が見えづらくなりがちです。本記事では Windows 11 VM で CloudAP や SID エラーが出るケースを例に、どこから調べてどう直すかを実務目線で整理します。

目次

前提シナリオの整理

まず、本記事で想定する典型的なトラブルシナリオを整理します。

  • Azure 上の Windows 11 VM
  • AADLoginForWindows 2.2.0(現:Microsoft Entra ログイン拡張機能)が「成功」「稼働中」
  • VM 上で dsregcmd /status → AzureAdJoined : YES(Entra 参加済み)
  • Azure ポータルで VM の「Microsoft Entra ID」タブを見ると、Virtual Machine Administrator Login = 有効
  • しかし、RDP で Entra ID ユーザーの UPN([email protected])を入力してもサインイン不可
  • イベントログにはローカル グループへ SID を追加しようとした形跡があるが、「SID が見つからない」系のエラー
  • Microsoft Entra のサインインログには何も記録されない
  • VM 再作成やログイン拡張の再インストールでも改善せず

このパターンでは、CloudAP 自体よりもMFA/条件付きアクセス/RBAC/接続元クライアントのいずれか(または複数)がボトルネックになっていることがほとんどです。

まず理解しておきたい仕組み:Entra ログイン拡張機能と CloudAP

トラブルシュートを始める前に、「何が何をしているのか」をざっくり押さえておくと原因の当たりがつけやすくなります。

Microsoft Entra ログイン拡張機能の役割

Windows VM にインストールする「Microsoft Entra ログイン拡張機能」(旧 AADLoginForWindows)は、ざっくり言うと次のような役割を担います。

  • VM を Microsoft Entra ID にデバイスとして登録/参加させる
  • ローカル グループ「AzureAD\Virtual Machine Users」「AzureAD\Virtual Machine Administrators」と、
    Azure 側の RBAC ロール(Virtual Machine User/Admin Login)をひも付ける
  • RDP サインイン時に Entra ID での認証が走るよう、Windows 側のログオンプロバイダーを有効化する

一方で、CloudAP(Cloud Authentication Provider)は Windows に組み込みの機能であり、この拡張機能が何かを「追加インストール」しているわけではありません。CloudAP が「見えない」「登録されていない」のでは?と心配になりがちですが、多くのケースでは CloudAP ではなく上流の認証条件や RBAC の問題です。

SID 解決エラーが意味していること

Entra ログインで VM に接続する際、Azure 側でユーザーに「Virtual Machine Administrator Login」などの RBAC ロールが付与されていると、Windows はそのユーザーをローカル グループに追加しようとして内部的に SID を解決します。ここでうまくいかないと、イベントログに次のようなイメージのメッセージが出ます。

  • 「SID <…> を名前に解決できませんでした」
  • 「ローカル グループへの追加に失敗しました」

このとき、SID 解決に失敗している=Entra 側と VM 側でユーザー/ロール情報が正しくひも付いていない可能性が高いと考えます。原因として多いのは、後述する RBAC 不足や MFA/条件付きアクセスによるブロックです。

原因になりやすい 4 つの領域

Entra ID で Azure VM ログインができないとき、多くのケースは次の 4 つのどれか(または複合)に分類できます。

領域典型的な問題影響
MFA/条件付きアクセスVM サインインに対して MFA を必須にしてしまっているRDP での対話型 MFA ができないため、クラウドに到達する前に失敗
接続元クライアントクライアントが Entra 未登録、OS バージョン不足Entra ログイン前提の RDP 要件を満たせず、ログイン画面まで行かない
RBAC(ロール割り当て)ユーザー/グループに VM ログイン用のロールが付いていないSID 解決エラー、ローカル グループにユーザーが反映されない
デバイス/トークン状態dsregcmd での参加状態の不整合、PRT 期限切れ等CloudAP がトークンを取得できず、Entra への認証要求が出ない

以降では、この 4 領域を順番に確認していく形で、具体的な対処方法を整理します。

MFA/条件付きアクセスの影響を除外する

実務で最も遭遇しやすいのが、このパターンです。

なぜ VM 直接サインインと MFA は相性が悪いのか

RDP で Azure VM に直接サインインする場合、ブラウザーやスマホ認証のような「インタラクティブな MFA フロー」を挟む余地がありません。そのため、Microsoft 公式ドキュメントや Q&A でも、VM ログインそのものに対して MFA を必須にする構成はサポートされず、結果としてサインイン失敗扱いになると案内されています。

チェックポイント 1:ユーザー単位 MFA の状態

古典的な「ユーザー単位 MFA」が有効/強制になっていると、そのユーザーが VM に対しても MFA を求められ、結果としてサインインできなくなります。

  • Microsoft 365 管理センター → ユーザー → 多要素認証
  • 対象ユーザーが 「有効」「強制」 になっていないか確認
  • VM サインインを検証するときは、一時的に 「無効」 にしてから試す

本番運用では、VM ログイン専用のテストユーザーを作り、そのアカウントに対してのみ MFA を無効化するほうが安全です。

チェックポイント 2:条件付きアクセスの対象アプリ

条件付きアクセスで「すべてのクラウドアプリに対して MFA 必須」としている場合、「Microsoft Azure Windows Virtual Machine Sign-in」(テナントによっては「Azure Windows VM Sign-in」)アプリにも MFA が要求されることになります。

このアプリは VM への Entra ログイン専用のサービス プリンシパルで、アプリ ID は 372140e0-b3b7-4226-8ef9-d57986796201 です。条件付きアクセスでこのアプリに対して MFA を課すと、RDP セッション内での MFA プロンプトが成立せずサインインそのものが失敗します。

公式ドキュメントでは、Windows Hello for Business を利用していない環境では、このアプリを条件付きアクセスから「除外」することが推奨されています。

設定イメージは次の通りです。

  • Entra 管理センター → 保護 → 条件付きアクセス → 該当ポリシー
  • 「対象のリソース(クラウドアプリ)」で 「すべてのクラウドアプリ」などを指定している場合
  • 「除外」タブで 「Microsoft Azure Windows Virtual Machine Sign-in」(または「Azure Windows VM Sign-in」)を検索して追加

チェックポイント 3:セキュリティの既定値(Security Defaults)

テナントで「セキュリティの既定値」が有効な場合、全体管理者(Global Administrator)など一部ロールには常に MFA が必須になります。

このとき、たとえユーザー単位 MFA を無効にしても、役割によっては VM 直接サインインができません。対策としては次のようなパターンがあります。

  • VM サインイン用に非管理者アカウントを用意し、Global Admin ロールを持たないユーザーで接続する
  • どうしても管理者アカウントで入りたい場合は、例外用の条件付きアクセス ポリシーで同アカウントを除外する(推奨度は低め)

検証時におすすめの最小構成

まずはシンプルに「MFA/CA の影響がない状態」で動作確認するのが近道です。

設定項目検証用の推奨値
ユーザー単位 MFA対象ユーザーのみ 無効
条件付きアクセスVM サインイン アプリを 除外、または CA 自体を一時的に無効
セキュリティの既定値検証テナントでは 無効 が無難

この状態で Entra ログインが成功することを確認したうえで、必要なセキュリティ要件を 1 つずつ足していくと、どこで問題が起きるかが把握しやすくなります。

接続元クライアントの要件を満たしているか

次に見落とされがちなのが、「RDP を実行する側」の条件です。公式ドキュメントでは、以下が最低条件として案内されています。

  • クライアント OS:Windows 10 20H1 以降、または Windows 11
  • クライアントが同じテナントで Entra 参加/ハイブリッド参加/Entra 登録のいずれかになっている

クライアントがワークグループ端末のままだったり、別テナントに参加していたりすると、Entra ログイン前提の RDP フローが成立しません。

クライアントが Entra 参加しているか確認する

クライアント PC 側では、次の画面から確認できます。

  • 設定 → アカウント → 「職場または学校にアクセスする」
  • 「接続済み」の欄に組織アカウントが表示されているか
  • 詳細から 「Azure AD に参加」もしくは 「Azure AD に登録」になっているか

ここが未設定の場合、まずはクライアントをテナントに登録/参加させてから再度 RDP を試します。

RDP のユーザー名と .rdp ファイルのポイント

RDP 接続時のユーザー名は以下の形式を推奨します。

また、Azure ポータルから「接続」→「RDP ファイルのダウンロード」で取得した .rdp を使うと、自動的に enablerdsaadauth:i:1 等の設定が含まれており、Entra ログイン前提の RDP 設定になります。自前で mstsc の設定を作るより、この .rdp を利用したほうがトラブルを減らせます。

RBAC:Virtual Machine Login ロールを必ず確認する

「Entra ログインを有効化したから、もうユーザーは入れるはず」と思いがちですが、実は 拡張機能の有効化と RBAC ロールの割り当ては別作業です。

必要なロールと違い

Azure VM に Entra ID でログインする場合、ユーザー(またはグループ)に次のいずれかのロールを付与する必要があります。

ロール名権限のレベル用途
Virtual Machine User Login標準ユーザー権限アプリ実行・設定変更が少ない一般ユーザー向け
Virtual Machine Administrator Loginローカル管理者権限サーバー管理・ソフトウェアインストール等を行う管理者向け

これらのロールは、VM 単体/リソースグループ/サブスクリプションなど任意のスコープで割り当て可能です。ロールが付いていないユーザーは、拡張機能が有効になっていても VM にログインできません。

ロール割り当ての確認方法

  1. Azure ポータルで対象 VM を開く
  2. 「アクセス制御 (IAM)」 → 「アクセスの確認」
  3. 対象ユーザー(またはグループ)を検索し、
    Virtual Machine User Login / Administrator Login のいずれかが表示されるか確認

ここに何も表示されない場合は、該当ロールを割り当ててから数分待ち、再度 RDP を試します。ロールを付けた直後は、トークンやグループ情報が更新されるまでにタイムラグがあるため、後述のとおり VM とクライアント側でサインアウト/再起動を行うとなお確実です。

CloudAP とデバイス状態の確認

ここまでの時点で、MFA/CA/クライアント/RBAC を見直してもまだダメな場合、ようやく CloudAP やデバイス登録の状態を疑います。

dsregcmd /status で VM の参加状態を確認する

VM 上で管理者権限の PowerShell またはコマンドプロンプトを開き、次を実行します。

dsregcmd /status

確認したい主な項目は次のとおりです。

項目期待値
AzureAdJoinedYES
TenantName / TenantId想定しているテナントになっている
DeviceId空ではなく GUID が表示されている

ここで AzureAdJoined が NO になっている場合、そもそも拡張機能による Entra 参加が完了していないため、まずは拡張機能の状態や VM 再起動、ネットワーク到達性(インターネット/Entra エンドポイント)を確認します。

CloudAP/User Device Registration のイベントログを見る

トラブルが深刻な場合は、次のイベントログも併せて確認します。

  • アプリケーションとサービス ログ > Microsoft > Windows > User Device Registration > Admin / Operational
  • アプリケーションとサービス ログ > Microsoft > Windows > CloudAP > Operational

ここにネットワーク到達性や証明書、トークン周りのエラーが出ている場合は、それを手掛かりにさらに深掘りします。たとえばプロキシ制限で Entra への通信がブロックされていると、CloudAP がトークンを取得できず、Entra サインインログにも何も出ない、といった状態になります。

チェックリスト:どこから確認すべきか

ここまでの内容を、実際の切り分け順に並べたチェックリストとしてまとめます。

ステップ確認内容確認場所OK となる状態
1VM の Entra 参加VM 上で dsregcmd /statusAzureAdJoined : YES
2ログイン拡張機能の状態Azure ポータル → VM → 拡張機能AADLoginForWindows(Entra ログイン)が「成功」「稼働中」
3RBAC ロールVM / RG / サブスクリプション → 「アクセス制御 (IAM)」対象ユーザー(またはグループ)に「Virtual Machine (User/Admin) Login」が付与されている
4ユーザー単位 MFAMicrosoft 365 管理センター → 多要素認証検証ユーザーは「無効」
5条件付きアクセスEntra 管理センター → 保護 → 条件付きアクセス「Microsoft Azure Windows Virtual Machine Sign-in」アプリが除外されている
6セキュリティの既定値Entra 管理センター → プロパティ必要に応じて無効/管理者ロールを持たないアカウントで検証
7クライアントの状態クライアント PC → 設定 → アカウントWindows 10/11 かつ Entra 参加/登録済み
8RDP 設定Azure ポータルから RDP ファイルをダウンロードユーザー名が UPN、enablerdsaadauth:i:1 が含まれる .rdp を使用
9イベントログCloudAP / User Device Registration ログ重大/エラーが出ていない、もしくは内容に応じて対処

実際の復旧シナリオ例(ステップバイステップ)

冒頭のように「SID 解決エラー」「Entra サインインログに何も出ない」状態から、最終的にログインできるようになるまでの具体的なフロー例を示します。

ステップ 1:MFA/条件付きアクセスを一時的に緩める

  1. 検証用ユーザー(VM ログイン用)を 1 つ決める
  2. そのユーザーのユーザー単位 MFA を 無効 にする
  3. 条件付きアクセスのうち、すべてのクラウドアプリに MFA を要求しているポリシーを特定
  4. そのポリシーの「除外」で Microsoft Azure Windows Virtual Machine Sign-in を追加
  5. 必要に応じて、テナントのセキュリティ既定値を一時的に無効にする、もしくは非管理者アカウントで検証

ステップ 2:RBAC ロールを明示的に付与する

  1. Azure ポータルで VM を開く
  2. 「アクセス制御 (IAM)」 → 「ロールの割り当ての追加」
  3. Virtual Machine Administrator Login(または User Login)を選択
  4. ステップ 1 で決めた検証ユーザーを割り当てる

ステップ 3:クライアントを整える

  1. 検証に使うクライアント PC を Windows 10/11 にする
  2. 設定 → アカウント → 「職場または学校にアクセスする」で、VM と同じテナントのアカウントで Entra 登録/参加する
  3. Azure ポータルから VM の RDP ファイルをダウンロード
  4. .rdp ファイルのユーザー名を UPN([email protected]) に変更

ステップ 4:トークン/グループ情報を更新する

  1. VM を再起動、または再ログオンして Entra 参加状態を最新化
  2. クライアント PC も再起動し、PRT(Primary Refresh Token)とグループ情報を更新

ステップ 5:再度 RDP を実行し、サインインログを確認

  1. .rdp ファイルから接続し、ユーザー名に [email protected] を入力
  2. パスワード入力後、サインインに成功するか確認
  3. Entra 管理センター → 「サインインログ」で、アプリ名が「Microsoft Azure Windows Virtual Machine Sign-in」のエントリが記録されているか確認

ここまででログインに成功し、サインインログにも記録が出るようになれば、MFA/CA/RBAC/クライアントの前提条件は概ね整ったと判断できます。以降はポリシーを少しずつ強化しながら、どの設定まで許容できるかを検証していきます。

「Entra サインインログに何も出ない」ケースの考え方

今回のシナリオのように、Entra サインインログが完全に空のままという場合、次のように考えると切り分けしやすくなります。

  • クライアント/VM 側でブロックされている(CloudAP まで到達していない)
  • MFA/CA による事前ブロックで、Entra 側での「試行」すら発生していない
  • デバイス登録状態の破損により、トークンが取得できない

Entra 管理センターの「サインイン診断」機能を使うと、ユーザーやアプリ単位でサインインイベントを絞り込み、どこでブロックされているかを可視化できます。

よくある落とし穴とベストプラクティス

落とし穴 1:「Entra ログイン有効化=すぐログインできる」と思い込む

VM の「Microsoft Entra ログイン」を有効化すると、それだけでログイン可能だと勘違いしがちですが、実際には次の 3 点が揃って初めてログイン可能になります。

  • Entra ログイン拡張機能が正常に稼働
  • 接続元クライアントが Entra 参加/登録済み
  • ユーザー(またはグループ)に Virtual Machine (User/Admin) Login ロールが付与

このうちどれか 1 つでも欠けると、SID 解決エラーやログオン失敗に繋がります。

落とし穴 2:管理者アカウントでしか試さない

テナント管理者は Global Administrator ロールを持つことが多く、Security Defaults や条件付きアクセスにより常時 MFA が必須になっているケースがほとんどです。そのため、管理者アカウントでの VM 直接サインインは、設計上うまくいかないシナリオが多くなります。

検証時は必ず、

  • 管理者ロールを持たない一般ユーザー
  • VM ログイン専用のテストアカウント

を用意して試すことをおすすめします。

落とし穴 3:別テナントのアカウント/クライアントを混在させる

テスト環境と本番環境を行き来しているうちに、「クライアントは本番テナントに参加」「VM は検証用テナント」など、テナントが食い違う構成になっていることも珍しくありません。

Entra ログインでは、

  • VM が所属するテナント
  • Entra 参加しているクライアントのテナント
  • ログインに使うユーザー アカウントのテナント

が同じであることが前提となります。ここが食い違うと、そもそもトークンの取得ができません。

まとめ

Entra ID(Azure AD)で Azure の Windows 11 VM にサインインできない場合、つい CloudAP 自体の問題に見えてしまいますが、実際には次の 4 点を順に確認していくと多くのケースを解決できます。

  • MFA/条件付きアクセス:VM サインイン アプリに対して MFA を必須にしていないか、ユーザー単位 MFA が有効になっていないか
  • 接続元クライアント:Windows 10/11 かつ同テナントに Entra 参加/登録しているか
  • RBAC(Virtual Machine (User/Admin) Login):ユーザーまたはグループにロールが付与されているか
  • デバイス/CloudAP 状態:dsregcmd /status や CloudAP イベントログに異常がないか

「SID 解決エラーが出る」「Entra サインインログに何も表示されない」といった事象は、これらの前提条件が崩れているサインであることがほとんどです。本記事のチェックリストと手順をそのままなぞっていけば、どこでブロックされているかを段階的に切り分け、最終的には安定して Entra ログインできる構成に持っていけるはずです。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次