はじめに
以下の記事で紹介している手順を使う事で、パスワードレスで ドメインログオン して ファイル共有への SSO まで実現できます。しかし、これだけでは、RDP 接続は パスワードレス にはなりません。
FIDO2 セキュリティキーを使った パスワードレス ドメインログオン
Windows Hello for Business (WHfB) を使った パスワードレス ドメインログオン
上記の構成に加えて、本記事で紹介する手順(PKU2U の有効化)を実施することで、ドメインのメンバーサーバーへ パスワードレス(WHfB や FIDO2)で RDP 接続が出来るようになります。
手順開拓までの経緯
この方法を見つけるために ネット記事を彷徨い歩いていたのですが、以下の記事をみつけて、Webauthn の存在を知りました。
Webauthn の存在を知る切っ掛けとなった記事
Webauthn を使えば 実現できそうとは思うものの 検証してみると Windows Server では Webauthn が動作せず、どうしたものか・・・と暗礁に乗り上げていたのですが、ついに 解決策を見つけました。
公開情報①:リモートの Microsoft Entra 参加済みデバイスに接続する
上記の 公開情報に、以下の注意書きがあります。この赤線のリンク先が気になりました。
公開情報②:リモートの Microsoft Entra 参加済みデバイスに接続する
上記の赤線部分のリンク先が、以下の公開情報です。
上記の 公開情報に、以下の注意書きを見つけました。これが、影響していたようです。
(英語のサイトですが、和訳した後のキャプチャです)
この記事の内容を構成することで、Windows Server で Webauthn が動作するようになりました。
このようにして Webauthn を使う事で、ドメインのメンバーサーバーへ パスワードレス(WHfB や FIDO2)で RDP 接続が出来るようになります。
では、やってみましょう。
検証に使用した環境について
Webauthn や WHfB , FIDO2 , Microsoft Entra Hybrid Join , Microsoft Entra Kerberos などそれぞれの構成に システムバージョンの要件があり、網羅的に示すことが難しいです。
机上では調べられるけど、組み合わせて動くかまでは責任もてません。
そのため、私が検証に使った環境を示しておきます。
※これより新しい組み合わせならば、動く事でしょう!
リモートデスクトップクライアント(接続元)
- Windows 10 Pro 22H2 Build 19045
- Windows 11 Pro 23H2 Build 22631
- Windows Server 2022 21H2 Build 20348
リモートホスト(接続先)
- Windows 11 Pro 23H2 Build 22631
- Windows Server 2022 21H2 Build 20348
公開情報:Webauthn を動作させるためのシステム要件
このサイトに記載されている OS のバージョン以降であれば、その他の要件よりも新しいので たぶん大丈夫だと思います。
https://learn.microsoft.com/ja-jp/windows/client-management/client-tools/connect-to-remote-aadj-pc?wt.mc_id=mvp_407731#connect-with-microsoft-entra-authentication
注意点
Webauthn で接続可能は Windows Server OS は 2022 以降 である必要があります。
2016 / 2019 などの古い OS は非サポートであるのが残念なところです。
2019 以前の OS では Webauthn は使えません。
回避策として PIV/CBA という仕組みを使う事で、利用者にとっては 同様のユースケースが実現できますが、構築は 全く別の手段で行う必要があり、対応した セキュリティキーの手配も必要です。
これについて、冒頭でも紹介した 以下の記事で解説されています。
前半に FIDO2 の方法、後半に PIV/CBA の方法が記載されています。
The complete guide to RDP with Security Keys (PC)
https://swjm.blog/the-complete-guide-to-rdp-with-yubikeys-fido2-cba-1bfc50f39b43
PIV/CBAの場合は、管理者が 証明書を1つ1つ セキュリティキーに保存する必要がありますし、セキュリティキーのコストも増加します。将来的には PIV/CBA を運用しながら、FIDO2 への移行も検討する必要が出てくるかもしれません(これは、悩ましい問題になりえます)
2019 以前の OS で RDS 環境を運用している場合は、まずは FIDO2 で完結する方向性を検討するために、2022 へのマイグレーション可否を評価した方が良いと思います(可能であれば、初めから FIDO2 で運用開始したいですね)
参考:Yubico セキュリティキー 一覧
https://www.yubico.com/jp/store/
FIDO2 の認証のみでよければ、セキュリティキーシリーズ(25ドル~)のコストで済み、指紋認証も利用できる YubiKey Bio シリーズ(90ドル~)も選択可能です。
PIV/CBA を使うためには、Yubikey5(50ドル~)のコストになります。
前提事項
RDP 接続を行う際の証明書を構成
RDP 接続を行う際に、以下のような 黄色の 確認画面が表示されます。
以下の記事の構成を行うことで、上記の 証明書確認画面 が抑止することができます。
リモートホストで RDP の許可
ローカル Remote Desktop Users グループに、RDP 接続をさせたい ユーザー・グループ を追加します。ここで、追加したアカウントのみが RDP する事ができます。
※認証した 全ユーザーを 対象にするには Authenticated Users を追加します。
-
リモートデスクトップ を オン にして、リモートデスクトップ ユーザー を選択します。
- 以下の画面で 追加 を押します。
-
選択するオブジェクト名を入力してください の欄に、Authenticated Users または 許可したい グループ や ユーザー名 を入力して名前の確認 を押します。赤下線のような表示になったら、OK を押します。
※Authenticated Users が確認出来ない場合は、場所 をドメインではなくローカルに変更します。
- 一覧に 追加したユーザーが表示されている事を確認して OK を押します。
ポイント
上記まで構成したら、パスワードを使って RDP 接続が成功するまでを 動作確認しておきましょう。ここでダメなら、RDP の問題です。
※RDP 自体の問題なのか、Webauthn の問題なのか 切り分けできるようにしておきます。
パスワードレスの認証方法の有効化
冒頭でも紹介した 以下の FIDO2 または Windows Hello for Business (WHfB) を使って、パスワードレスでサインインできるように構成しておきます(FIDO2 または WHfB のいずれか、または、両方 を有効化します)
上記を 有効化して、FIDO2 または WHfB を使って ローカル PC へ パスワードレスで OS にサインインが出来ている環境があれば OK です。
ここまで環境が揃っていれば、次章で説明する PKU2U の有効化を実施すれば 目的を達成できます。
構成手順
(ドメインコントローラーで作業を行います)
- グループポリシー管理エディターを開き、ドメイン名 を右クリックして このドメインに GPO を作成し、このコンテナーにリンクする を選択します。
※ここでは、全ホストが配布対象となるために、ドメイン を選択していますが、別途 OU を用意して 個別の単位に適用することもできます。
- GPO の名称を任意で指定して OK ボタンをクリックします。
- 作成した GPO を右クリックして 編集 を選択します。
- 以下の構成を順に開きます。
コンピューターの構成 - ポリシー - Windows の設定 - セキュリティの設定 - ローカルポリシー - セキュリティオプション
ネットワークセキュリティ:オンライン ID を使用するためのこのコンピューターへの PKU2U 認証要求を許可する を開いて、有効 となるように構成します。
- 以下のように、有効 になれば OK です。
ドメインコントローラーと、RDP 接続先となる メンバーサーバーで gpupdate /force を実施しておきましょう。
RDP 接続方法
ポイント
- リモートデスクトップ接続 で WebAuthn を ON にする
- 接続する際は、ホスト名 のみを指定する(接続先のIPアドレスが、名前解決で応答する)
※ IP アドレスは、利用できない - ユーザーは、ハイブリッドユーザー(オンプレミスから同期されたユーザー)で、認証方法として FIDO2 が構成済みである
- インターネットに接続されている
※ 初回ログオンは、インターネット必須(2回目以降は、キャッシュログオン可)
※ 2回目以降でも Kerbersチケットを取得するためには、インターネット必須
→ こういった事情もあるので、常にインターネット必須と思っておいた方が無難です。
手順
1.リモートデスクトップ接続 (mstsc.exe) を起動します。
2.詳細設定 タブを開き Web アカウントを使用して、リモートコンピューターにサインインする にチェックを入れます。
3.全般 タブに戻り、コンピューター 欄に ホスト名 を記入します。
ユーザー名は、メールアドレス形式(ハイブリッドユーザー)で指定されていれば OK です。
接続情報が意図したものであれば、接続 ボタンを押します。
注意点②
表示されているユーザー名が メールアドレス形式ではない場合は、資格情報を常に確認する にチェックを入れて、メールアドレス形式で入力します。
4.うまく Webauthn が発動すると、以下の画面に遷移します。
5.以下のウィンドウが開いたら、その他のサインイン方法 を選んだあと、顔、指紋、PIN または セキュリティキー を選択します。
注意事項
上記でパスワード欄を使うと、パスワードで認証ができてしまいます。
利用者にパスワードを使わせたくない場合は、次章で紹介している オプション:Webauthn で利用できる認証を制限する を構成してください。
6-a. WHfB が利用できる場合
6-a-1. 顔 または PIN を選択して、OK を押して認証します。
6-b. FIDO2 セキュリティキー が利用できる場合
6-b-1. セキュリティキー を選択して 次へ を押して進みます。
6-b-2. セキュリティキー を挿入します(初めから挿入していても OK です)
6-b-3. 以下の画面で セキュリティキー の PIN を入力して OK を押します。
以上で、Webauthn による RDP 接続は成功です。
初めて接続してみると、感動しますよね。
オプション:Webauthn で利用できる認証を制限する
条件付きアクセス制限を加える事で Webauthn でサインインする際の条件を制限することができます。
※Microsoft Entra Premium P1 ライセンスが必要です。
- Azure Portal にサインインし、Microsoft Entra ID のサービスを開きます。
- 左ペインから セキュリティ を選択したあと、条件付きアクセス を開きます。
- 左ペインから ポリシー を選択して +新しいポリシーの追加 を選択します。
- 任意のポリシー名を命名します(画面では PassLess RDP にしました)
ユーザー(緑枠)を選択して、ポリシーを付与させたいユーザーを選択します。
(すべて or 任意のユーザー)
-
ターゲットリソース(緑枠)を選択して、適用対象として リソース(以前のクラウドアプリ) を選択して、Microsoft Remote Desktop を指定します。
-
許可(緑枠)を選択して、認証強度が必要 にチェックを入れ Phishing-resistant を選択します。
-
セッション(緑枠)を選択して、サインインの頻度 にチェックを入れ 毎回 を選択します。ポリシーの有効化 を オン であることを確認して、作成(保存)を押します。
以上で、設定した条件(ユーザー、アプリ)に対して、高度なセキュリティでのサインインを強制させることができるようになりました。
パスワードレス ライフを満喫しましょう。