はじめに
オンプレミスドメインに、ドメインユーザーを作成した時から 一度もパスワードを使用せずに、AVD のセッションに パスワードレスでドメインログオンさせることが可能です。
これによって、利用者は ドメインのパスワードを知ることなく、FIDO2 のみを使って ドメインリソースへのアクセスをさせることができるようになり、セキュリティを高めることができます。
構成については、前提事項 が完了していれば 9 割以上 の作業が終わっています。
あとは 一時アクセスパス(Temporary Password) の機能を有効化するだけです。
一番大事なのは、運用手順の組み立て となります。
本記事では、上記の内容をまとめて紹介していきます。
(参考情報:一時アクセスパスについて)
Support Blog:一時アクセス パスによるセキュアな認証方式の展開
https://jpazureid.github.io/blog/azure-active-directory/secure-authentication-method-provisioning-with-temporary-access/
公開情報:一時アクセス パスを構成してパスワードレスの認証方法を登録する
https://learn.microsoft.com/ja-jp/entra/identity/authentication/howto-authentication-temporary-access-pass?wt.mc_id=mvp_407731
1. 前提事項
1-1. AVD の環境
オンプレミスドメインベースの Azure Virtual Desktop (AVD) が構築されていること。
※以下の記事を参考にして、構築可能です。
なお、上記の記事の全項目が構成されている必要はありません。
AVD セッションホストへ RDP で ドメインログオン ができるようになっていれば OK です。
1-2. AVD への SSO サインイン構成
AVD へ SSO でのサインインができるようになっていれば OK です。
※以下の記事を参考にして、構築可能です。
1-3. ドメイン環境の FIDO2 対応
ドメイン参加の 物理端末 へ FIDO2 でログオンできるようになっていること。
※以下の記事を参考にして、構築可能です。
2. 認証方法(一時アクセスパス)の環境設定
1.Azure Portal (https://portal.azure.com) にサインインし、Microsodt Entra ID のテナントの左ペインから セキュリティ を選び 認証方法 を選択します。
2.認証方法 の画面では、左ペインから ポリシー を選んだあと 一時アクセス パス を選択します。
3.一時アクセスパスの設定画面で、有効にする を ON にします。
続いて、ターゲット では、以下のいずれかを選択して 保存 を押します。
① (緑) すべてのユーザー(テナント内の全ユーザーに 一時アクセスパスが有効になります)
② (桃) グループの選択(選択したグループのみに 一時アクセスパスが有効になります)
ここで、一時アクセスパス の設定を行っても、通常の利用者の操作性には変化がありません。
管理者が 一時アクセスパス を発行できるかどうかの設定ですので、すべてのユーザー に設定しても問題はないかと思います。
それでも、あえて AVD のユーザー のみに限定したい場合などに、グループを指定すると良いと思います。
なお、構成 タブ を使うことで、既定値を 変更することができます。
おススメは、一時利用 を必須にする を "はい" にすると良いと思います。
(1回しか使えなくなります)
4.以下のように 一時アクセスパス が はい になっていれば OK です。
3. ユーザー発行時 の 管理者手順
3-1. ドメインユーザーを作成する
1.オンプレミスのドメインコントローラーにサインインして、Active Directory ユーザーとコンピューター (ADUC) を起動します。
3.フルネーム、ユーザーログオン名 を指定して 次へ を押します。
代替 UPN サフィックスを設定している場合は、ここで サフィックスの選択を忘れないようにしましょう。
4.任意のパスワードを設定し、ユーザーはパスワードを変更できない と パスワードを無期限にする にチェックを入れて 次へ を押します。
補足
(2025/3/13 訂正)
あとの工程で設定する 対話型ログオンにはスマートカードが必要 によって、ここで設定したパスワードは無効化されます。そのため、ここで入力するパスワードは 使う予定がありません。上下の段で同じものを入力して先へ進むことを考えていただければ OK です。
(訂正前の記述)
パスワードは、ランダムな長いパスワード を設定すると良いと思います。
そして、管理者 もパスワードを控えることが無いようにします。
こうすることで、このユーザーのパスワードは、誰も知ることが無く、使われることも無くなります。
6.作成されたユーザーを右クリックして プロパティ を開きます。
7.アカウント タブを開き、対話型ログオンにはスマートカードが必要 にチェックを入れます(この設定で、FIDO2 も有効になっています)
(2025/3/13 追記)
対話型ログオンにはスマートカードが必要 をチェックすると、ユーザーに設定されていたパスワードはリセットされます。あとで このチェックを外しても、元のパスワードではログオンできないため、パスワードでサインインさせる必要が生じた場合は、再度 パスワードのリセットを行う必要があります。
8.所属するグループ タブを開き、追加 ボタン を押して、AVD に接続させる セキュリティグループ を追加します。緑のラインのように表示されたら、最後に OK を押します。
追加 ボタンを押したあとに表示されるウィンドウで、グループ名を入力します。
代替手段
ユーザーごとに 対話型ログオンにはスマートカードが必要 の設定を行うのではなく、GPO を使って コンピューターごとに、ポリシーを配って対応する方法もあります。
その場合は、そのコンピューター上のユーザーすべてに対して、スマートカード (および FIDO2)ログオンが必須になります。
この方法は注意点があり、該当のコンピューターに ローカルアカウントでのサインインができなくなります。
GPO を使って コンピューター 単位で スマートカード (および FIDO2) を強制する手順
手順は、ココを開いて参照できます。
(2025/3/13 内容変更)※記載したポリシーを別のものと勘違いしていたため。この方法を使う場合は、ユーザーのプロパティ の 対話型ログオンにはスマートカードが必要 の方は、無効のままで問題ありませんが、GPO を適用していない PC には、パスワードでのログオンが可能であることを認識しておきましょう。
制御したい コンピューターオブジェクトが含まれた OU が用意されている前提です。
※画像では、Client-PC という OU を想定した手順となっていますが、AVD セッションホスト が含まれている OU を指定すると良いと思います。
- ドメインコントローラーで グループポリシーの管理 を開きます。
- 任意の OU に対して このドメインに GPO を作成し、このコンテナーにリンクする を選択します。
- 任意の GPO 名を指定して OK を押します。(今回は、FIDO2 を命名)
- 作成された GPO を右クリックして 編集 を選択します。
- 以下の設定を開きます。
コンピューターの構成 - ポリシー - Windows の設定 - セキュリティの設定 - ローカルポリシー - セキュリティオプション
対話型ログオン:Windows Hello for Business または スマートカードが必要
- 設定を 有効 にして OK を押します。
公開情報:Windows Hello for Businessまたはスマート カードを要求する
https://learn.microsoft.com/ja-jp/windows/security/identity-protection/passwordless-strategy/journey-step-2?wt.mc_id=mvp_407731#require-windows-hello-for-business-or-a-smart-card
GPO を使って コンピューター 単位で スマートカード(および FIDO2)を強制する手順 は、ここまで です。
3-2. 強制同期を実施する
前章で作成したユーザーが、テナントに同期されてあとに後続作業があります。
自然に同期されるのを待つとタイムラグがあるため、コマンドを使って 強制同期を行います。
※コマンドを使わずに、自然に同期されるのを待っても良いですが、最大 30 分くらい掛かります。
- PowerShell(管理者)のウィンドウを開き、コマンドを実行します。
Start-ADSyncSyncCycle
以下の通り、Success と表示されれば OK ですが、これは 同期が開始されたという合図です。
- Azure Portal で Microsoft Entra ID を開き、該当のユーザーが同期されたことを確認します。
オンプレミスから同期されたユーザーは オンプレミスの同期が有効 欄が "はい" になっています。
3-3. ライセンスを割り当てる
Microsoft 365 管理センター (https://admin.microsoft.com) へアクセスして、同期されたユーザーに AVD 用のライセンスを付与します。
AVD 向けに、どのライセンスを付与すれば良いのかは、以下の記事を参考にしてください。
3-4. アプリケーショングループ (DAG) に 割り当てる
ユーザーを割り当てた AVD 用のセキュリティグループ (AVDValidationUsers) を、AVD ワークスペース の アプリケーショングループに割り当てます。
以下の記事を参考に、割り当てを実施してください。
すでに、ADUC で セキュリティグループ へのユーザー割り当てを終えているので、2章:AVD への割り当て手順 の作業だけで OK です。
3-5. 一時アクセスパスを発行する
1.Azure Portal (https://portal.azure.com) を使い Microsoft Entra ID を開き、ユーザーの一覧を表示します。オンプレミスから同期されたユーザーをクリックして開きます。
2.左ペインから 認証方法 を選択し、+認証方法の追加 を選択します。
続いて、右側に開いたウィンドウ内で 方法の選択で 一時アクセスパス を選択して 一時利用 を "はい" に設定してから 追加 を押します。
ポイント
一時アクセスパスは、アクティブ化期間で設定された時間だけ有効です。
一時利用を "はい" にすることで、1回だけ使うことができるようになっています。
一時利用を "いいえ" にすると、指定された期間だけ 一時アクセスパス が利用できます。
運用シーンによって、カスタマイズしてください。
3.以下の緑枠のように 一時アクセスパス が発行されるため、控えて下さい。
OK を押すと、参照できなくなるので、注意してください。
4.発行された ユーザーアカウント と 一時アクセスパス を利用者に伝えてください。
このタイミングで、物理的な FIDO2 セキュリティキーや、操作手順書などの一式を 利用者に渡すと良いと思います。
4. ユーザーの初期設定手順
各ユーザーごとに、1回だけ本作業が必要です。
本章で示した手順を参考に、ユーザーマニュアル を用意することをお勧めします。
1.以下の URL にアクセスします。
https://aka.ms/mysecurityinfo
2.以下のサインイン画面に ユーザーアカウント を入力して Next を押します。
3.一時アクセスパス の入力を促されるため、入力して Sign in を押します。
これ以降の作業は、以下の Yubikey についてのまとめ記事 で取り上げている内容と共通の部分が多いため、こちらの記事も参考にしてみてください。
Yubikey まとめ(利用可否検証あり)
https://qiita.com/carol0226/items/1e28bdc3acc4c7814da2
4.以下の画面に遷移するため +Add sign-in method を押します。
5.以下のウィンドウが開くため Security key を選択します。
8.以下の画面では、セキュリティキー を選択して 次へ を押します。
11.この画面が表示されたら FIDO2 セキュリティキーを挿入します。
12.FIDO2 の認証を行うことで、以下の画面になります。
13.登録した FIDO2 セキュリティキー を識別できるように 名前を入力して Next を押します。
おススメ
ここで、名前を指定する際に、FIDO2 セキュリティキーのシリアル No. も入力するようにしておくと良いと思います。
以上で、ユーザーによる 初期セットアップは完了です。
次の章のテストを行う前に、サインアウトしておきます。
5. ユーザーによる AVD への パスワードレス サインイン
1.AVD に アクセスします。
以下は、Web 版 の URL です。
https://windows.cloud.microsoft/
※Windows App のアプリや リモートデスクトップ のアプリも使用できます。
2.認証ウィンドウが開いたら、ユーザーアカウントを入力して Next を押します。
3.Use your face,fingerprint,PIN, or security key instead を選択します。
4.以下の画面では セキュリティ キー を選択して 次へ を押します。
5.以下が表示されたら FIDO2 セキュリティキー を挿入します。
6.セキュリティキーの認証を行います(PIN 入力や 指紋認証など)
7.認証が通ったら、以下の画面になります。
以下では、サインイン情報を ブラウザ に記録するかどうかを聞かれています。
ブラウザに学習させずに、毎回 FIDO2 セキュリティキー での認証を行うためには、以下の画面と同じように選択します。
8.以下は、AVD への 初回ログオン を行った際の画面です。
次へ を数回押して、案内を終了させます。
9.以下のように AVD セッション への接続情報が表示されます。
接続 ボタンを押します。
10.ローカルデバイス との 情報を共有するかどうかの選択肢です。
既定値のままで、構いませんが 任意で カスタマイズ できます。
接続 を押して進めます。
14.パスワードレスで AVD へのサインイン が成功しました。
以下の画面では、エクスプローラーで ドメインコントローラー のファイル共有に接続したところです。
一切、パスワード認証が発生せずに、フォルダ一覧 を表示することができました。
セキュリティ的な課題(私見です)
課題
パスワードが固定で設定されていて、利用者はパスワードを使わないため、悪意のある管理者がいた場合は、利用者にバレずに パスワードを使って オンプレミスのリソースに サインインすることができてしまうと思います。
理由
パスワードの運用の場合は、第3者が パスワードをリセットしてアクセスした場合、本人がサインインできなくなるので、利用者に まったくバレずにアクセスすることはできませんよね。ところが、セキュリティキーのみの運用にした場合は、その点が盲点になります。
対策案
そのため、悪意のある管理者によって、ユーザーアカウントの 対話型ログオンにはスマートカードが必要 の設定が無効化され、任意のパスワードを設定して不正にログオンがされていないかを監査ログを使って、定期的な監査を行うようにして、不正を抑止するような運用を行う必要があると思っています。
参考
クラウドのリソースへの "パスワード" アクセスは、条件付きアクセスで 対策できます。
まだ、実際に 本記事の AVD と組み合わせて検証できていませんが、以下の公開情報で説明されている フィッシングに強い MFA 強度 (Phishing-resistant) の設定を使って、ユーザーが Microsoft Entra ID へのサインインに適用する際に FIDO2 を強制できると思います。
すべてのユーザーに多要素認証を要求する
https://learn.microsoft.com/ja-jp/entra/identity/conditional-access/policy-all-users-mfa-strength?wt.mc_id=mvp_407731
設定のイメージ(私の別の目的で執筆した記事の画像から引用しています)
さいごに
以上の対応で AVD を運用する際に 従来のパスワード を一切使用せずに ユーザーアカウント の パスワードレス 運用が可能となります。
ぜひ、パスワードレス な運用を検討してみてください。