コンテンツへスキップ

会社・組織のマイクロソフトアカウントでログインしているPC 端末に、リモートデスクトップするときの覚書

リモートデスクトップのログインで困る女の子のイラスト

組織の M365(Entra ID)でサインインしている会社 PC に RDP しようとしたら、「お使いの資格情報は機能しませんでした」でずっと弾かれていた件の覚書。結論から言うと、ユーザー名の問題ではなく NLA(ネットワークレベル認証)の問題だった。

会社・組織のマイクロソフトアカウントでログインしているPC 端末に、リモートデスクトップするときの覚書

環境と症状

環境

  • 接続先:Windows 11 Pro、Microsoft 365 Business、Entra ID(旧Azure AD)参加
  • RDP 有効、ファイアウォール OK、同一セグメント、管理者権限あり
  • 接続元:Windows の RDP クライアント、iPhone の Windows App

症状

どちらの接続元からも、資格情報を入れた時点で弾かれる。

NLA 有効時に出るエラー。「リモート コンピューターは AAD に参加しています」と言われる

試したユーザー名

エラー文に従ってユーザー名の書き方を疑い、以下を全部試したがすべて NG だった。

AzureAD\user@example.com
user@example.com
AzureAD\(エイリアス名)
AzureAD\user@(テナント名).onmicrosoft.com
whoami で出た名前
whoami /upn で出た値

組織の M365 だと、表示名・メール・エイリアス・UPN・onmicrosoft の UPN・PC 内部のアカウント名……と「自分」を表す名前がたくさんあって、「オレは誰なのよ」状態になる。

NLA を切ったら入れた

NLA を無効にする設定箇所

接続先の「システムのプロパティ※」→「リモート」タブで、「ネットワーク レベル認証でリモート デスクトップを実行しているコンピューターからのみ接続を許可する」のチェックを外す。

(※ Windows ロゴ 右クリックメニュー → システム → 「システムの詳細設定」 で出てくるパネル。環境変数入れるときとかでも使うやつ。)

このチェックを外すと NLA が無効になる

whoami の値でログインできた

チェックを外したら接続でき、ログオン画面でパスワードを入力してログイン成功。最終的にユーザー名は、接続先で whoami を実行して出てきた値で通った。メールアドレスではなく、表示名ベースの文字列だった。

> whoami
azuread\(表示名ベースの名前)

ただし入れたのは Windows の RDP だけ

NLA を無効にして接続できたのは、Windows の RDP クライアント(mstsc)からだけだった。iPhone の Windows App からは、NLA を無効にしても結局接続できなかった。iPhone 側が入れない原因までは特定できていない。

原因の整理

NLA ON と OFF では認証の順番が違う

NLA有効時は門番に追い返され、無効時はログオン画面でパスワードを入力するイメージ
NLA ON は接続前の「門番」(事前認証)で追い返される。OFF ならログオン画面まではたどり着ける

「RDP がつながらない」のではなく、「NLA の認証で落ちていた」というのがポイント。

NLA ON :  接続 → 事前認証(NLA)→ 成功したら RDP セッション生成
NLA OFF:  接続 → RDP セッション生成 → ログオン画面 → 認証

NLA OFF だとパスワードを間違えてもセッションは切れず、ログオン画面のまま「もう一回どうぞ」になる。NLA ON だと事前認証で失敗した時点で切断される。

イベントログに 4625 が残らない

NLA ON で弾かれたときのイベントログを見ても、ログオン失敗の 4625 は見当たらなかった。認証がログオン処理まで届く前に落ちている様子。

なぜ NLA で弾かれるのか(調べた範囲での理解)

ドメイン参加 PC なら、NLA の裏では Kerberos や NTLM でドメインコントローラーに問い合わせる。でも Entra ID 参加 PC には問い合わせ先の DC がないので、PKU2U という仕組みで、クライアントとホストが同じテナントの証明書同士で認証し合う形になる。

パスワードで NLA を通すための条件
  • 接続元も Windows で、同じテナントに Entra 参加 or 登録されていること(iPhone や個人 PC は対象外)
  • 接続先で PKU2U が許可されていること
  • ユーザー単位 MFA や、MFA を要求する条件付きアクセスがこの経路にかかっていないこと

テナント外の端末からの接続はこの条件を満たさないので NLA で弾かれた、と考えると今回の症状と辻褄が合う。4625 が残らないのも、ログオン処理の手前で落ちていたからだと思われる。

対処

① NLA OFF で運用(今回はこれで解決)

Windows の RDP クライアントからはこれで入れるようになった(iPhone は不可)。ただし、認証前に誰でもログオン画面まで到達できる状態になるので、RDP のポートをインターネットに直接公開せず、LAN 内か VPN 経由で使うのが前提。

② 「Web アカウントを使用してリモート コンピューターにサインインする」(未検証)

NLA を有効にしたまま、Entra ID 本来の認証(MFA 対応)で入る方式。新しいアカウントを作るわけではなく、いつもの会社アカウントでサインインする。

設定方法
  • mstsc の「オプションの表示」→「詳細設定」タブにチェック項目がある(.rdp ファイルなら enablerdsaadauth:i:1)
  • 接続先は IP ではなく PC 名で指定する
  • 接続元・接続先とも比較的新しい Windows の更新が必要。テナント側で許可設定が要る場合もある
  • iPhone の Windows App でこの方式が使えるかはバージョン次第で、確認できていない

補足

RDP の接続先履歴の保存場所

RDP が接続先やアカウントを記録している場所。自動入力のあれの保存場所なので、RDP のショートカット(.rdp ファイル)として保存している場合は、ファイルのほうを編集する。

コンピューター\HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers
Servers キーの下に、これまで接続した接続先が並んでいる

個人の Microsoft アカウントとの違い

個人の Microsoft アカウントでサインインしている PC なら、中身は「メールアドレスに紐づいたローカルアカウント」なので、user@outlook.com とパスワードで NLA ON のままでも普通に入れる。会社の M365 は「名前の多さ」と「NLA の壁」が重なっていたので、切り分けが難しかった。

ちなみに個人アカウントでも、Windows Hello で「パスワードなし」にしていると RDP で入れなくなることがあるので注意。(一度でも、パスワード認証でログインしたことがあればOK。パスワード認証情報を記憶させるイメージです。Windows Hello は秘密鍵系なので、パスワードには関係ないらしい。環境によっては、Windows Hello でRDP できたりもします。認証済み端末を使ってログインする場合。)

まとめ

RDP は壊れていなかった。NLA(接続前の認証)が、テナント外の端末から来た Entra ID ユーザーを通さなかった。NLA を切って Windows の RDP からは入れるようになったけど、iPhone からはまだ入れない。ユーザー名探しで遠回りしたけど、少なくとも「オレは誰なのよ」からは卒業できた。
まさしく「who am i」だったわけで^^;

以上です。

(Visited 1 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です