オンプレドメインの 初回ログオンから 完全パスワードレスの運用 (物理 PC 対応版)

# はじめに
オンプレミスドメインに、ドメインユーザーを作成した時から 一度もパスワードを使用せずに、PC に パスワードレスでドメインログオンさせることが可能です。

これによって、利用者は ドメインのパスワードを知ることなく、FIDO2 のみを使って ドメインリソースへのアクセスをさせることができるようになり、セキュリティを高めることができます。

構成については、前提事項 が完了していれば 9 割以上 の作業が終わっています。
あとは 一時アクセスパス（Temporary Access 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

なお、物理 PC ではなく Azure Virtual Desktop (AVD) に パスワードレスでサインインする方法は、以下の記事に纏めてありますので、こちらも参照ください。

https://qiita.com/carol0226/items/6ce91dc030f8fc65a842

:::note info
**宣伝**
私が執筆した FIDO2 に関する記事は、他にも 以下の ストックリスト で公開していますので、こちらも 参考にしてみてください。 

**＠carol0226 による FIDO2 の公開ストックリスト**
https://qiita.com/carol0226/stocks/3670cb8678daed11b191
:::

---

# 1. 前提事項

ドメイン参加の 物理端末 へ FIDO2 でログオンできるように構成されていること。
※以下の記事を参考にして、構築可能です。

https://qiita.com/carol0226/items/87dbd1f57f80f6da3968

:::note info
**ポイント**
利用する 物理 PC は、ドメインに参加済み である必要があります。

本記事では、上記で構成済みの 物理 PC に対して、新規ドメインユーザーが パスワードレス で 初回ログオン を行うシナリオとなっています。 
:::

---

# 2. 認証方法（一時アクセスパス）の環境設定
1．Azure Portal (https://portal.azure.com) にサインインし、Microsodt Entra ID のテナントの左ペインから **セキュリティ** を選び **認証方法** を選択します。
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/5c5cd346-9f4a-4723-9032-d8a7c59fb331.png"><img width="88" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b33538a5-2861-400c-bcdd-f24bf26f6f5f.png"><img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b87535b9-d6c1-46ac-be13-809b4a22286f.png">

2．**認証方法** の画面では、左ペインから **ポリシー** を選んだあと **一時アクセス パス** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/eeb9ec46-53f2-4190-97d8-ddc43cb5e1a2.png)

3．一時アクセスパスの設定画面で、**有効にする** を ON にします。
続いて、**ターゲット** では、以下のいずれかを選択して **保存** を押します。
① (緑) すべてのユーザー（テナント内の全ユーザーに 一時アクセスパスが有効になります）
② (桃) グループの選択（選択したグループのみに 一時アクセスパスが有効になります）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/baa17f3d-d9ff-41a8-92e1-1dac34373a5d.png)

:::note info
ここで、一時アクセスパス の設定を行っても、通常の利用者の操作性には変化がありません。
管理者が 一時アクセスパス を発行できるかどうかの設定ですので、**すべてのユーザー** に設定しても問題はないかと思います。

それでも、あえて 一部のユーザー のみに限定したい場合などに、グループを指定すると良いと思います。なお、グループは オンプレドメイン側で作成し テナントへ同期されたグループを使うことをお勧めします
:::

なお、**構成** タブ を使うことで、既定値を 変更することができます。
おススメは、**一時利用 を必須にする** を **"はい"** にすると良いと思います。
（１回しか使えなくなります）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/3cb8857e-cc55-40a8-b31d-9dd7c7655303.png)

4．以下のように 一時アクセスパス が **はい** になっていれば OK です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/5b77b06f-00b7-4be3-935e-12818eacc043.png)

---

# 3. ユーザー発行時 の 管理者手順
## 3-1. ドメインユーザーを作成する
1．オンプレミスのドメインコントローラーにサインインして、Active Directory ユーザーとコンピューター (ADUC) を起動します。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e19d5cc0-a729-40e6-a06e-6211ec8789df.png">

2．ユーザーを新規に作成します。
<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/6c2db0be-17ef-42cf-b5a3-db85b0a376a7.png">

3．フルネーム、ユーザーログオン名 を指定して **次へ** を押します。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/fdcadb2d-0a1e-4551-8e1c-d61ea5870b55.png">

:::note info
代替 UPN サフィックスを設定している場合は、ここで サフィックスの選択を忘れないようにしましょう。
:::

4．任意のパスワードを設定し、**ユーザーはパスワードを変更できない** と **パスワードを無期限にする** にチェックを入れて **次へ** を押します。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/111e3e00-edb4-44ef-bc78-6e7177c3eee8.png">

:::note warn
**補足**
あとの工程で設定する **対話型ログオンにはスマートカードが必要** によって、ここで設定したパスワードは無効化されます。そのため、ここで入力するパスワードは 使う予定がありません。上下の段で同じものを入力して先へ進むことを考えていただければ OK です。
:::

5．**完了** を押して、ユーザーを作成します。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/d39cfc80-79a6-47d3-a2d4-4155933840ec.png">

6．作成されたユーザーを右クリックして **プロパティ** を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/c5692031-3d07-40e0-8594-169efa658815.png)

7．**アカウント** タブを開き、**対話型ログオンにはスマートカードが必要** にチェックを入れます（項目名は、スマートカード になっていますが、FIDO2 も有効です）
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/636c1d7c-e5f9-4bfa-ac93-fc2f5911827f.png">

:::note info
**対話型ログオンにはスマートカードが必要** の設定によって、このユーザーによる パスワードでのログオンが禁止されます。

この設定が有効化されたユーザーは、パスワード で サインインしようとしたとしても、以下のエラーによって サインインすることができなくなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/9ac5a609-51ff-483e-9394-e72cb9e489e3.png)
※エラーメッセージは、「サインインするには Windows Hello またはスマート カードを使う必要があります。」と書かれていますが、FIDO2 でも サインインは可能なので、ちょっとわかりづらいメッセージです。
:::

:::note warn
**対話型ログオンにはスマートカードが必要** をチェックすると、ユーザーに設定されていたパスワードはリセットされます。あとで このチェックを外しても、元のパスワードではログオンできないため、パスワードでサインインさせる必要が生じた場合は、再度 パスワードのリセットを行う必要があります。
:::

**（前章で、一時アクセスパス の初期設定で グループを指定した場合のみ）**
以下の手順で、作成したユーザーをグループに加えてください。

**所属するグループ** タブを開き、**追加** ボタン を押して、一時アクセスパスに割り当てた セキュリティグループ (FIDO2_Users) へ追加します。最後に 緑のラインのように表示されたら、**OK** を押します。 
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/f427693f-3b9c-4015-8a56-dc3e19c5625f.png">

**追加** ボタンを押したあとに表示されるウィンドウで、グループ名を入力します。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/0dcaa4e1-54ef-4502-98f1-2c7cae2dc809.png">

:::note warn
**代替手段**
ユーザーごとに **対話型ログオンにはスマートカードが必要** の設定を行うのではなく、GPO を使って コンピューターごとに、ポリシーを配って対応する方法もあります。

その場合は、そのコンピューター上のユーザーすべてに対して、スマートカード (および FIDO2）ログオンが必須になります。

この方法は注意点があり、該当のコンピューターに ローカルアカウントでのサインインができなくなります。
:::

**GPO を使って コンピューター 単位で スマートカード (および FIDO2) を強制する手順**
<details><summary>手順は、ココを開いて参照できます。</summary>

この方法を使う場合は、ユーザーのプロパティ の **対話型ログオンにはスマートカードが必要** の方は、無効のままで問題ありませんが、GPO を適用していない PC には、パスワードでのログオンが可能であることを認識しておきましょう。

制御したい コンピューターオブジェクトが含まれた OU が用意されている前提です。
※画像では、**Client-PC** という OU を想定した手順となっていますが、物理 PC のコンピューターオブジェクト が含まれている OU を指定してください。

0. ドメインコントローラーで **グループポリシーの管理** を開きます。
　<br>
0. 任意の OU に対して **このドメインに GPO を作成し、このコンテナーにリンクする** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e23abbc1-2d2a-b157-4a49-195c0d0a4479.png)
　<br>
0. 任意の GPO 名を指定して OK を押します。（今回は、**FIDO2** を命名）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/62a3e6f8-8448-7d76-7d1e-bd59222e5eb8.png)
　<br>
0. 作成された GPO を右クリックして **編集** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e8faa4d1-1891-fb56-547b-10bae2c2b0d4.png)
　<br>
0. 以下の設定を開きます。
**コンピューターの構成** － **ポリシー** － **Windows の設定** － **セキュリティの設定** － **ローカルポリシー** － **セキュリティオプション**
　**対話型ログオン：Windows Hello for Business または スマートカードが必要**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e1980d7f-4765-4c2a-9634-ebe81a72bb9a.png)
　<br>
0. 設定を **有効** にして **OK** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/8b6c2928-a632-4a58-98d4-cff8ceda4ca4.png)
:::note info
**説明** タブ の内容
以下の内容になっています。
<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/af40be60-0099-4a88-8a7d-a761428004f9.png">
:::

7．以下のように表示されれば OK です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/a5947156-eaae-47d2-a74f-464372b8009d.png)

**公開情報：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

:::note info
**GPO を使って コンピューター 単位で スマートカード（および FIDO2）を強制する手順** は、ここまで です。
:::
</details>

---

## 3-2. 強制同期を実施する
前章で作成したユーザーが、テナントに同期されてあとに後続作業があります。
自然に同期されるのを待つとタイムラグがあるため、コマンドを使って 強制同期を行います。
※コマンドを使わずに、自然に同期されるのを待っても良いですが、最大 30 分くらい掛かります。

0. PowerShell（管理者）のウィンドウを開き、コマンドを実行します。
**Start-ADSyncSyncCycle**
　
以下の通り、Success と表示されれば OK ですが、これは 同期が開始されたという合図です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/1dfddba0-9e5c-42a9-a408-455884b7a723.png)
　<br>
0. Azure Portal で Microsoft Entra ID を開き、該当のユーザーが同期されたことを確認します。
オンプレミスから同期されたユーザーは **オンプレミスの同期が有効** 欄が **"はい"** になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/1443f9ee-4a8d-477c-8057-87efa18a4bf1.png)

---

## 3-3. 一時アクセスパスを発行する
1．Azure Portal (https://portal.azure.com) を使い Microsoft Entra ID を開き、ユーザーの一覧を表示します。オンプレミスから同期されたユーザーをクリックして開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/78be6c96-d75e-4b80-a362-0ffc0e28107f.png)

2．左ペインから **認証方法** を選択し、**＋認証方法の追加** を選択します。
続いて、右側に開いたウィンドウ内で 方法の選択で **一時アクセスパス** を選択して **一時利用** を **"はい"** に設定してから **追加** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/8afbb730-d210-4f5d-8617-2fedd8053159.png)

:::note info
**ポイント**
一時アクセスパスは、アクティブ化期間で設定された時間だけ有効です。
一時利用を **"はい"** にすることで、１回だけ使うことができるようになっています。
一時利用を **"いいえ"** にすると、指定された期間だけ 一時アクセスパス が利用できます。

運用シーンによって、カスタマイズしてください。
:::

3．以下の緑枠のように 一時アクセスパス が発行されるため、控えて下さい。
**OK** を押すと、参照できなくなるので、注意してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/38a851dc-3113-4cc7-bb56-cdecdfcc9d5d.png)

4．発行された **ユーザーアカウント** と **一時アクセスパス** を利用者に伝えてください。
このタイミングで、物理的な FIDO2 セキュリティキーや、操作手順書などの一式を 利用者に渡すと良いと思います。

---

# 4. ユーザーの初期設定手順
各ユーザーごとに、１回だけ本作業が必要です。
本章で示した手順を参考に、ユーザーマニュアル を用意することをお勧めします。

1．以下の URL にアクセスします。
https://aka.ms/mysecurityinfo

2．以下のサインイン画面に ユーザーアカウント を入力して **Next** を押します。
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/9e6d5feb-5698-42e3-8ecc-ef029a142304.png">

3．一時アクセスパス の入力を促されるため、入力して **Sign in** を押します。
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/0ea74eb3-4d61-4ca0-8954-3e2e5392e518.png">

:::note info
これ以降の作業は、以下の Yubikey についてのまとめ記事 で取り上げている内容と共通の部分が多いため、こちらの記事も参考にしてみてください。

**Yubikey まとめ（利用可否検証あり）**
https://qiita.com/carol0226/items/1e28bdc3acc4c7814da2
:::

4．以下の画面に遷移するため **＋Add sign-in method** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/032d2263-064b-4e75-8758-8be03ae496e3.png)

5．以下のウィンドウが開くため **Security key** を選択します。
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/2680ef9b-f2a7-4a1b-8adf-6ba10b15b548.png">

6．以下の画面では、**USB device** を選択します。
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/6fe5283a-f817-4cb6-825c-2a3adfe7f604.png">

7．以下の画面では **Next** を押します。
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/bad23c1d-9f23-43f1-9ba9-a8b5ee4d58fa.png">

8．以下の画面では、**セキュリティキー** を選択して **次へ** を押します。
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e1dbd741-7620-4340-af61-434678c3d28a.png">

9．以下の画面では **OK** を押します。
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e50becac-55b2-44e7-bdc7-e709f28dd36c.png">

10．以下の画面では **OK** を押します。
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/bcc9eb4f-4541-40a4-90c0-466b9a6c181e.png">

11．この画面が表示されたら FIDO2 セキュリティキーを挿入します。
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/73d7396b-7397-4778-81dd-64d85b584831.png">

12．FIDO2 の認証を行うことで、以下の画面になります。
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/ac81cdf4-7cac-4356-b763-83ebe744889d.png">

13．登録した FIDO2 セキュリティキー を識別できるように 名前を入力して **Next** を押します。
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/61abaa90-0682-4989-88e6-f455e79e16fc.png">

:::note info
**おススメ**
ここで、名前を指定する際に、FIDO2 セキュリティキーのシリアル No. も入力するようにしておくと良いと思います。
:::

14．名前を登録すると、以下のウィンドウが表示されます。
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/fa163b8b-a4b4-41bd-bb04-f8097285c460.png">

15．登録が完了すると、以下の画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/8a8ec544-b031-44e2-b1c7-aae0b1ad92ba.png)

以上で、ユーザーによる 初期セットアップは完了です。

:::note info
次の章のテストを行う前に、サインアウトしておきます。
:::

---

# 5. ユーザーによる PC への パスワードレス サインイン
前章の作業で 新規作成したユーザーに FIDO2 が割り当てられた状態になりました。
では、ドメインに参加されている 物理 PC を用意して、パスワードレス でサインインできるか試してみましょう。

:::note info
**Youtube 動画**
Yubikey Bio を使った際の 一連の動作を Youtube にアップしておきましたので、参照ください。
https://youtu.be/qUW_dROu8gU
※指紋認証しているので、PIN を入力する場面はありません。
:::

0. FIDO2 ログオンが構成された PC で、緑下線の **サインイン オプション** を押し、赤枠（セキュリティキー）のアイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/ddeaf7df-5250-9f54-7fce-0697a86a629d.png)

:::note alert
**いくらやっても、FIDO2 セキュリティ キー のアイコンが出ない場合**
前提条件 が満たせていないと、アイコンは出ません。

前提条件 となる、以下の記事の内容が 正しく構成されているかどうかを確認してください。

**FIDO2 で Windows にサインインする（ADドメイン編）**
https://qiita.com/carol0226/items/87dbd1f57f80f6da3968
:::

:::note info
以下の記事でも紹介されていますが、VPN 接続してから、ドメインコントローラーに接続するようなケースでは、利用中に セキュリティキーのアイコンが消えることもあります。**dsregcmd /join** で再度 Join することで復活できます。
https://jpazureid.github.io/blog/azure-active-directory/fq-device-based-ca-for-remote-work/#質問-4-ハイブリッド-Azure-AD-参加のデバイス登録処理はどのような流れで行われますか？-VPN-経由でも動作しますか？
:::

3．以下の画面が FIDO2 で OS にサインインできる画面です。
ここで、FIDO2 セキュリティ キー を挿入して PIN を入力します。
※アカウント名を入力する必要はありません・・・（キー内に ID も保存されているっぽいです）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/efd27c2a-c424-48bf-bf42-eea645a2aa1a.png)
※Yubikey Bio などの 指紋認証タイプ のセキュリティキーの場合は、PIN の入力は SKIP されて タッチ１発でサインインすることができます。

4．正しい PIN が入力されたら、以下の画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/63078058-b9ff-bcd9-b638-6323c089cce1.png)

5．FIDO2 セキュリティ キー に 指タッチします。
下図は、私が検証した YubiKey です。この時に ランプが点灯しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/1cb74b86-47e4-ac1c-33d5-f45c1ec44d6d.png)

6．これで 以下の画面に遷移されて ドメインログオン が完了します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/833676f2-ce82-42ab-a778-869f47e44aa5.png)

7．パスワードレスで 物理 PC へのサインイン が成功しました。
以下の画面では、エクスプローラーで ドメインコントローラー のファイル共有に接続したところです。
一切、パスワード認証が発生せずに、フォルダ一覧 を表示することができました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/1e02c387-a5eb-4089-ad5f-d4b8fcba637c.png)

以上のように、あらかじめ FIDO2 セキュリティ キー に ハイブリッドユーザー の アカウント が登録されていれば、パスワードレス で サインイン することが可能になります。

**公開情報：FIDO2 セキュリティ キーを使用してサインインする**
https://learn.microsoft.com/ja-jp/entra/identity/authentication/howto-authentication-passwordless-security-key-windows?wt.mc_id=mvp_407731#sign-in-with-fido2-security-key

# さいごに
以上の対応で 物理 PC を運用する際に 従来のパスワード を一切使用せずに ユーザーアカウント の パスワードレス 運用が可能となります。

ぜひ、パスワードレス な運用を検討してみてください。