水曜日, 4月 30, 2025
ホームニューステックニュースRDP で SSO を実現! Remote Credential Guard とは? #Windows

RDP で SSO を実現! Remote Credential Guard とは? #Windows



RDP で SSO を実現! Remote Credential Guard とは? #Windows

ドメインに参加したホストへ RDP 接続を行う際に、SSO を実現することができる Remote Credential Guard を試してみました。
単なる接続だけでなく、いくつかのシーンと組み合わせて利用できるのかどうかも、検証しており、推奨する設定例や手順まで紹介しています。

検証済みのシナリオ

  • パスワードレスで ドメインログオン (FIDO2 or WHfB) した物理マシン からの SSO
  • Windows Server 2016 に対しての パスワードレス (FIDO2 or WHfB) ログオン SSO
  • AVD からのダブルホップ SSO
  • Microsoft Entra Join したマシン からの SSO(要:Microsoft Entra Kerberos)
  • Remote Credential Guard でログオンしたマシンから、別のマシンへ ダブルホップ SSO

上記のシナリオが全部実現できます。

公開情報:Remote Credential Guard
https://learn.microsoft.com/ja-jp/windows/security/identity-protection/remote-credential-guard?wt.mc_id=mvp_407731

ポイント
通常の RDP 接続の場合は、パスワードの入力が必要です。
そのため、パスワードレス なドメインユーザーの場合、RDP を利用ですることができません。
Remote Credential Guard を使うと、パスワードレス のユーザーであっても RDP を利用することができるようになります。

まず、Remote Credential Guard があると、どのような動作になるのかを理解しましょう。

Remote Credential Guard は、リモートクライアント側(接続元)と リモートホスト側(接続先)の設定の組み合わせによって機能します。

   リモートホスト ▶
▼ リモートクライアント
(a)
Remote Credential Guard 無効
(b)
Remote Credential Guard 有効
(1)
Remote Credential Guard 無効
(通常の RDP 動作)
ユーザー切り替え可
パスワード入力
(通常の RDP 動作)
ユーザー切り替え可
パスワード入力
(2)
Remote Credential Guard 有効
エラー SSO で 接続

上記の設定を組み合わせた際の動作イメージは、以下の通りです。

1-1. 動作イメージ:(1)+(a) & (1)+(b) Remote Credential Guard を使わない場合

通常のリモートデスクトップの動作と一緒です。

上記の画面で、接続 を押すと、以下のとおり、パスワードの入力を求められます。
正しいパスワードを入力すれば、RDP の接続が可能です。

※この場合、パスワードレスのユーザーは、パスワードを知らないので 先へ進むことができません。

リモートクライアント側 の Remote Credential Guard が 無効 の場合は、リモートホスト側 の Remote Credential Guard の 設定にかかわらず、正しいパスワードを入力すれば、RDP の接続が可能です。

1-2. 動作イメージ:(2) クライアント側 の Remote Credential Guard 有効

ユーザー名の欄は、リモートクライアントにログオンした際のアカウントで固定化されていて、その他のユーザーに切り替えることはできません。

1-2-1. 動作イメージ:(2)+(a) リモートホスト側 の Remote Credential Guard 無効

リモートクライアント側で Remote Credential Guard が 有効 であっても、リモートホスト側で Remote Credential Guard が 無効 の場合は、以下のエラーが発生して接続が拒否されます。
エラーメッセージ:”アカウントの制限により、このユーザーはサインインできません。空のパスワードが許可されていない、サインイン時間が制限されている、またはポリシーによる制限が使用されたなどの理由が考えられます。”
image.png
※このあと、パスワードの入力画面へ遷移するので、パスワードの入力によって RDP 接続することは可能です。

1-2-2. 動作イメージ:(2)+(b) リモートホスト側 の Remote Credential Guard 有効

クライアント と ホスト が共に Remote Credential Guard が 有効 の場合に SSO が機能します。
その結果、パスワードレス のユーザーでも RDP を行うことができます。

認証が不要になるので、接続 ボタンを押したあとに すぐに リモートホストの画面が表示されるので、お見せできる画面キャプチャがありません・・・

動作イメージは、以下の公開情報の動画を参照してください。ホントに 一瞬でつながります。

公開情報:ユーザー エクスペリエンス
https://learn.microsoft.com/ja-jp/windows/security/identity-protection/remote-credential-guard?wt.mc_id=mvp_407731&tabs=gpo#user-experience

  • RDP 接続の際に、資格情報 の入力を省略したい(OS の資格情報をつかって SSO させたい)
  • ユーザーがパスワードを持っていない(FIDO2 や WHfB、スマートカード ログオンを使っている)

結果として、冒頭でも紹介していますが、以下のようなシーンに適用することができます。

検証済みのシナリオ(再掲)

  • パスワードレスで ドメインログオン (FIDO2 or WHfB) した物理マシン からの SSO
  • Windows Server 2016 に対しての パスワードレス (FIDO2 or WHfB) ログオン SSO
  • AVD からのダブルホップ SSO
  • Microsoft Entra Join したマシン からの SSO(要:Microsoft Entra Kerberos)
  • Remote Credential Guard でログオンしたマシンから、別のマシンへ ダブルホップ SSO

上記のようなニーズがある場合に、Remote Credential Guard は、強力なソリューションです。

しかしながら、後述する 制限事項 を理解しておく必要があります。

Remote Credential Guard に関する注意点があります。
代表的な2点の注意点を挙げておきます。

RD ゲートウェイ、RD コネクションブローカー には対応していない
冗長構成の RDS 環境を運用する場合、RD ゲートウェイや RD コネクションブローカーが使われることが多いですが、このような環境の場合は Remote Credential Guard は使えません。とても残念です。

Kerberos 認証を必要とする点
Kerberos 認証が必要であるため、RDP 接続時に ホスト名 を使う必要があります。
通常の RDP では、IP アドレスを使った場合、通常は NTLM 認証へ切り替わって接続が成功するのですが、Remote Credential Guard が有効な場合は、Kerberos が強制されるため、IP アドレス での接続ができません。

※Remote Credential Guard が有効なクライアントから、IP アドレスで接続しようとした場合
image.png

その他も含めた詳細は、以下の公開情報に記載されています。

考慮事項
https://learn.microsoft.com/ja-jp/windows/security/identity-protection/remote-credential-guard?wt.mc_id=mvp_407731&tabs=gpo#considerations

3-1. リモートホスト側

3-1-1. リモートホスト側の おススメ構成

リモートホスト側の Remote Credential Guard は、有効 になっていても害は無いと思います。そのため、ドメイン内の 全ホスト に対して、GPO で有効化しましょう。

※Intune でも設定は可能なのですが、ドメイン環境が前提ですし、Windows Server にも適用させることを考えると、GPO 一択 なのかなと思います。

3-1-2. リモートホスト側の設定手順

以下の公開情報の内容をキャプチャで紹介します。

公開情報:リモート ホストで nonexportable 資格情報の委任を有効にする
https://learn.microsoft.com/ja-jp/windows/security/identity-protection/remote-credential-guard?wt.mc_id=mvp_407731&tabs=gpo#enable-delegation-of-nonexportable-credentials-on-the-remote-hosts

  1. ポリシーを ドメイン全体に適用するか、一部の コンピューター のみに適用するかを決めてください。
    → 一部の コンピューター に適用する場合は、事前に OU を作成しておきます。
     
  2. グループポリシー管理エディターを開き、ドメイン名 または、事前に作成した OU を右クリックして、このドメインに GPO を作成し、このコンテナーにリンクする を選択します。
     
  3. GPO には、任意の名前を付けてください。
    今回の手順用のキャプチャでは RemoteCredentialGuard_Host という名称をつけました。
     
  4. 作成された GPO を右クリックして開きます。
     
     
  5. 左ペインから、コンピューターの構成ポリシー管理用テンプレートシステム資格情報の委任 を開きます。
     
     
  6. 続いて リモートホストでエクスポート不可の資格情報の委任を許可する を開きます。
    image.png
     
  7. 値を 有効 に変更します。
     
     
  8. ポリシーを保存したら、ドメコン上で Gpupdate /force を実行したあと、リモートホスト側でも Gpupdate /force を実行してください。

注意点:Windows Server 2016 の場合
Windows Server 2016 には、GPO を適用しても、機能しませんでした。
試しに、ローカルのポリシーエディタを開いてみてみると、該当の項目(Remote host allows delegation of nonexportable credentials) がありませんでした。
image.png

解決策
仕方がないので、以下の通り レジストリ で設定したところ、期待通りに動きました。
image.png

3-2. リモートクライアント側

3-2-1. リモートクライアント側の おススメ構成

リモートクライアント側の Remote Credential Guard は、有効 になっている場合、必ず SSO の動作になり、ユーザーの切り替えができなくなります。
Remote Credential Guard の設定は、GPO で一律で有効化もできますが、コマンド起動時のパラメーターで制御することも可能です。

ユーザー切り替えを必要(または許容)とするシステムの場合は、GPO で設定してしまうと融通が利かなくなります。
そのため、コマンド起動時のパラメーターを使って、都度 リモートクライアントを起動するようにすることをおススメします。

ドメイン内の全ホストで、ユーザー切り替えを禁止して 一律で SSO をさせるような運用シーンでは、GPO で構成するのが良いと思います。

3-2-2. リモートクライアント側の設定手順

以下の公開情報の内容をキャプチャで紹介します。

公開情報:クライアントでの資格情報の委任を構成する
https://learn.microsoft.com/ja-jp/windows/security/identity-protection/remote-credential-guard?wt.mc_id=mvp_407731&tabs=gpo#configure-delegation-of-credentials-on-the-clients

① コマンドで都度 指定する場合

用途に応じて、以下のように 起動方法を切り替えてください。

  • ユーザー切り替え&パスワード認証を使う場合は、mstsc.exe
  • SSO を行いたい場合は、mstsc.exe /remoteguard

指定した起動方法に応じて、冒頭の 動作イメージ で紹介した通りの リモートデスクトップ画面 が表示されます。

② GPO で一律 Remote Credential Guard を有効化する場合

ドメイン全体に GPO を適用する場合の注意
リモートホスト側が 無効 の状態で、リモートクライアント側の 有効 を GPO でドメイン全体に適用すると、RDP で接続できなくなってしまうので、注意してください。

  1. ポリシーを ドメイン全体に適用するか、一部の コンピューター のみに適用するかを決めてください。
    → 一部の コンピューター に適用する場合は、事前に OU を作成しておきます。
     
  2. グループポリシー管理エディターを開き、ドメイン名 または、事前に作成した OU を右クリックして、このドメインに GPO を作成し、このコンテナーにリンクする を選択します。
     
  3. GPO には、任意の名前を付けてください。
    今回の手順用のキャプチャでは RemoteCredentialGuard_Client という名称をつけました。
     
  4. 作成された GPO を右クリックして開きます。
     
     
  5. 左ペインから、コンピューターの構成ポリシー管理用テンプレートシステム資格情報の委任 を開きます。
     
     
  6. 続いて リモートサーバーへの資格情報の委任を制限する を開きます。
    image.png
     
  7. 値を 有効 にし Remote Credential Guard が必要 を選択して OK を押します。
     
     
  8. ポリシーを保存したら、ドメコン上で Gpupdate /force を実行したあと、リモートホスト側でも Gpupdate /force を実行してください。

以上の設定で、Remote Credential Guard が動作するようになりました。

クライアント側の構成を GPO で設定した場合は、いつもの通りに、リモートデスクトップ接続 のアプリ (mstsc.exe) を起動します。

クライアント側の構成を GPO で設定しなかった場合は、以下のコマンドを使って起動します。
mstsc.exe /remoteguard

以下のウィンドウが開けば OK です。

Remote Credential Guard が有効な リモートデスクトップ接続

  • (赤下線)コンピューター名は、かならず ホスト名 で指定してください。
  • (緑枠) グレーアウトされており、変更することはできません。
  • (青下線)「Windows ログオン資格情報は、接続に使用されます」と書かれており、ログオンアカウントの認証がそのまま引き継がれるようになります。
    image.png

動作イメージは、以下の公開情報の動画を参照してください。ホントに 一瞬でつながります。

公開情報:ユーザー エクスペリエンス
https://learn.microsoft.com/ja-jp/windows/security/identity-protection/remote-credential-guard?wt.mc_id=mvp_407731&tabs=gpo#user-experience

うまく接続できない場合は、1章 の動作イメージ で紹介した設定の組み合わせ や エラー画面 を再確認してください。



フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -

Most Popular