Windows Hello for Business の 動的ロック と 多要素ロック解除 を試す

# はじめに
動的ロック と 多要素ロック解除は、Windows Hello for Business（以後 WHfB と表記）を構成することで利用可能になる機能です。

動的ロック と 多要素ロック解除 は、動作が目に見えて判る機能なので、効果を実感できます。

WHfB を導入したら、ぜひ初めに試して欲しい機能です。

---

# 1. 機能概要
## 1-1. 動的ロックとは
事前にペアリングされた スマホ が PC から遠ざかると、１分で 画面ロックになります。

つまり、利用者が 画面ロック をし忘れて離席（スマホを持って）した際に、予防策として 画面ロック を実施する・・・という機能になります。

利用者が席を立ったあと、隙をみて 即座に他人が席に座って PC を操作する（乗っ取る）という事は可能なため、意識的に画面ロックをする事は必要です。動的ロックは あくまで予防策という位置づけになります。
※セキュリティを気にする 情報システム部 としては、導入しておくと保険になりますね。

ロックする際の Bluetooth の信号は、スマホと ペアリング がされていれば OK です。
常時 PC と スマホが Bluetooth 接続 している必要はありません（ココがミソです）

そのため、検証を行う際の注意点として、スマホ と PC の Bluetooth 接続の解除だけでは、画面ロックは発動しません（引き続き、相互に信号は受信できているので・・・）

スマホの Bluetooth 機能を無効化することで、信号が遮断され、デバイスが遠ざかったと判定されて、動的ロックが発動します。

**公開情報：WHfB の 動的ロック**

https://learn.microsoft.com/ja-jp/windows/security/identity-protection/hello-for-business/hello-feature-dynamic-lock

:::note info
以下の２つのリンクで紹介しているのは、WHfB ではなく コンシューマー向けの Windows Hello で提供される 動的ロック についての情報です。
WHfB の場合と同じ動作をするので、動きを見てみたい人は、まずは この機能でテストしてみると良いと思います。
:::
**公開情報：コンシューマー向けの 動的ロック**

https://support.microsoft.com/ja-jp/windows/pc-から離windows-pc-を自動的にロックする-d0a5f536-74ac-0859-820a-4140dac9fcaf

**コンシューマー向けの わかりやすい画面付きの記事**

https://www.itmedia.co.jp/pcuser/articles/1704/12/news093.html

---

## 1-2. 多要素ロック解除とは
WHfB が構成されていると利用可能になる機能です。

「ロック解除」という名称になっていますが、実は「サインイン時」も 同じ認証が必要になります。
やってみれば判る話なのですが、公開情報には書かれていないです。

多要素ロック解除は、ロック解除 または サインイン時に、以下の認証要素のうち、かならず いずれか 2 種類の認証を行わなければならない・・・という機能となります。
「顔認証」・「電話」・「PIN」・「指紋」・「パスワード」

ここで、着目すべきは「電話」です。
「顔認証」や「PIN 入力」をしたあと、利用者が所持する スマホ の Bluetooth 信号が検知されれば、認証 OK になるので、実質的に 追加の手間は掛かりませんし、待ち時間も 0.5 秒くらい伸びるくらいかなという印象です。

それと、前章で紹介した 動的ロック で使う 電話 が そのまま 多要素ロック解除 でも使わます。

解除する際の Bluetooth の信号は、スマホ と ペアリング がされていれば OK です。
PC と デバイス間の 接続状態 になっている必要は ありません。意識的に デバイスを 接続したり切断したり・・・という事とは関係無く、制御されるので、うまく考えられているな・・・と思います。

Bluetooth の接続状態を監視しているわけではなく、ペアリング されたデバイスの Bluetooth 信号の強弱を見て、制御しているみたいですね。

そのため、利用者には あまり負担を掛けずに 認証のセキュリティを向上させられる機能となり、情報システム部 には 強く導入を推奨したい機能です。

:::note info
本記事の 4 章に画面キャプチャ付きで動作イメージを紹介していますので、先に そちらで流れを掴んでいただくのもアリかと思います。
https://qiita.com/carol0226/items/51487eeb06871cb65a7a#4-動作イメージ
:::

:::note info
既定では、「電話」の電波で制御されますが、これは カスタマイズ が可能です。
電話は **信頼された信号** というジャンルに分類されていて、その信頼された信号は、その他の Bluetooth デバイスや、WiFi , 有線 LAN の情報と組み合わせて条件化することもできますし、信号の強弱も調節できます。
最終章に、カスタマイズ について触れていますので、参照ください。
:::

**公開情報：WHfB の 多要素ロック解除**

https://learn.microsoft.com/ja-jp/windows/security/identity-protection/hello-for-business/multifactor-unlock?tabs=intune

---

# 2. 前提事項
- PC は、物理デバイス（ノート PC が推奨）が必要
※Bluetooth や WiFi を利用するため。
　
- WHfB が構成されていること
WHfB は、複数の展開方法（クラウド、ハイブリッド、オンプレ）がありますが、いずれも可。

https://qiita.com/carol0226/items/441659a20bc256bbe639

これから構築する場合は、環境に合わせて 以下のいずれかの記事を参考にしてください。

**クラウド単独展開 で WHfB を構成する** （Entra Join する PC 向け）
PC を Microsoft Entra Join するだけです。

**ハイブリッド展開 で WHfB を構成する** （オンプレミスドメイン向け）

https://qiita.com/carol0226/items/0c06016f18e57bf44cb0

---

# 3. 展開手順
動的ロックと多要素ロック解除は、WHfB が構成されていれば、以下のいずれかの仕組みを使って設定を展開できます。

- 3-1. GPO で展開する場合
- 3-2. Intune で展開する場合

## 3-1. GPO で展開する場合
ドメインコントローラーで、グループポリシーの管理 を開き、OU に対して 以下のポリシーを適用します。

（ポリシーのパス）
**コンピューターの構成** - **管理用テンプレート** - **Windows コンポーネント** - **Windows Hello for Business**
- 動的ロック要素を構成する
- デバイスのロック解除要素を構成する

ポリシーを保存したら、**gpupdate /force** のコマンドを実行して ポリシーを適用させてください。

---

### 3-1-1. 動的ロック

0. **動的ロック要素を構成する**　を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/17abdf94-e5f8-c4f4-31f7-261474c57ee3.png)
　<br>
0. 設定を **有効** に変更します。テキストボックス内は 既定値 のままで構いません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e8dfe0d3-18e6-97ef-4522-e4205663b77b.png)

---

### 3-1-2. 多要素ロック解除

0. **デバイスのロック解除要素を構成する**　を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/720f4e75-c2c0-6faf-d6cb-b66855be4b7f.png)
　<br>
0. 設定を **有効** に変更します。テキストボックス内は 既定値 のままで構いません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/a81c0b61-d089-bc48-223c-35b558f881ce.png)

---

## 3-2. Intune で展開する場合
0. Intune 管理センター を開き、管理者アカウントでサインインします。
http://intune.microsoft.com
　<br>
0. 左ペインの **デバイス** を選び、**構成** の **ポリシー** タブから **新しいポリシー** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/3efabd3e-9e40-627b-0136-b00e411ac887.png)
　<br>
0. **Windows 10 以降** と **設定カタログ** を選び **作成**　を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/8bf57844-5a64-a226-9483-00d23e783eca.png)
　<br>
0. **基本** タブでは、任意の名前 を記入して **次へ** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/9c36ef9a-62fc-067a-e0c6-e8065f66c292.png)
　<br>
0. **構成設定**　タブでは **設定の追加** のリンクを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/92b8d2df-cccd-8559-928a-bdf2c5b44095.png)
　<br>
0. **設定ピッカー** では、検索窓 で **Windows Hello for Business** を探して選択し **設定名** 欄から、青枠（動的ロック）と 緑枠（多要素ロック解除）用の項目に チェック を入れたあと、右上の ✖ を押して閉じます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/81fc2dfe-4089-7bfa-bbd6-957e32902f03.png)
　<br>
0. **構成設定** タブ に戻り、各項目を 設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/73163742-c727-5890-ba95-745d16d84214.png)

:::note info
**①：動的ロック**
この機能を使う場合は、**有効** に設定します。

**②：動的ロック プラグイン**
以下の枠内のテキストをコピーして、設定欄に貼り付けます。
~~~
<rule schemaVersion="1.0"> <signal type="bluetooth" scenario="Dynamic Lock" classOfDevice="512" rssiMin="-10" rssiMaxDelta="-10"/> </rule> 
~~~

**③：グループ A ＝ 最初のロック解除要素である資格情報プロバイダー**
（既定値）PIN , 顔認識 , Fingerprint
~~~
{D6886603-9D2F-4EB2-B667-1971041FA96B},{8AF662BF-65A0-4D0A-A540-A338A999D36F},{BEC09223-B018-416D-A0AC-523971B639F5}
~~~
**④：グループ B ＝ 2 番目のロック解除要素である資格情報プロバイダー**
（既定値） 信頼された信号 , PIN
~~~
{27FBDB57-B613-4AF2-9D7E-4FA7A66C21AD},{D6886603-9D2F-4EB2-B667-1971041FA96B}
~~~
**⑤：デバイス ロック解除プラグイン ＝ デバイスのロック解除のシグナルルール**
（既定値）Bluetooth
~~~
<rule schemaVersion="1.0"> <signal type="bluetooth" scenario="Authentication" classOfDevice="512" rssiMin="-10" rssiMaxDelta="-10"/> </rule> 
~~~
:::

7．**スコープ タグ** タブ では 特に変更はせずに **次へ**　を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b52c31e8-1cef-798f-be86-51c554bfdd12.png)

8．**割り当て** タブでは、ポリシーを適用させたい デバイス を指定して **次へ** を押します。
下図は、**すべてのデバイス** を指定した場合です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/9ca0f112-bb77-1ccd-1ef0-9b92b842382b.png)

9．**確認および作成** タブでは、最終確認を行い **作成** ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/c24740ec-218d-b233-f0f7-5819fd353a1c.png)

:::note info
ポリシーを保存したら、デバイス側で **同期** ボタンを押せば 設定が反映され、すぐに機能を利用できるようになります。
:::

---

# 4. 動作イメージ
WHfB で構成済みの 資格情報プロバイダー のみが利用できます。
※資格情報プロバイダー とは、顔・指紋・PIN・電話 などの認証方法のことです。

その中から、デバイスに登録されている 資格情報プロバイダー の組み合わせで、多要素認証の動作が決まります。

以下に紹介している動作イメージは、３章の展開で構成した値が、既定値 の場合に対して、デバイスに実際に登録されている資格情報プロバイダーの組み合わせ毎に、動作結果を説明しています。

---

## 4-1. 顔 ＋ 電話 ＋ PIN の登録がある場合
### 4-1-1. 認証 1 要素目
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/68da787a-a0db-d50c-9e31-8394f09dca6b.png)
→　画面上を **クリック** したあとに、顔認証が行われます。

### 4-1-2. 認証 2 要素目
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/7a97f951-41d0-5a13-b1a8-1c3e03b37122.png)
→　電話が圏内にあるかどうかチェックが行われます。

#### 4-1-2-1. 電話が Bluetooth 圏内にある場合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/cb778208-2fce-e017-b285-879f768def06.png)
→　ロック解除成功

#### 4-1-2-2. 電話が Bluetooth 圏内になかった場合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/86fee828-776a-1b6d-7875-c922a4d53a05.png)
→ PIN を入力して、ロック解除成功

---

## 4-2. 顔 ＋ PIN の登録がある場合（電話の登録なし）
### 4-2-1. 認証 1 要素目
ワンクリックしたあとに、顔認証が行われる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/68da787a-a0db-d50c-9e31-8394f09dca6b.png)

### 4-2-2. 認証 2 要素目
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/86fee828-776a-1b6d-7875-c922a4d53a05.png)
→ PIN を入力して、ロック解除成功

電話の登録が無い場合は、「電話を確認しています」の画面は出ません。

---

## 4-3. 電話 ＋ PIN の場合（顔の登録なし）
### 4-3-1. 認証 1 要素目
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b726bc90-96ad-892a-69b6-fab3c9ace0f1.png)
→　PIN の入力画面が表示されます。

### 4-3-2. 認証 2 要素目
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/68535005-fddb-4d07-0c0c-b69197a91870.png)
→　電話が圏内にあるかどうかチェックが行われます。

#### 4-3-2-1. 電話が Bluetooth 圏内にある場合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/cb778208-2fce-e017-b285-879f768def06.png)
→　ロック解除成功

#### 4-3-2-2. 電話が Bluetooth 圏内になかった場合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/3148826f-95cc-8663-b310-d0865ab7e5b1.png)
→　このあとでも 電話が圏内に入れば、「追加要素が検証されました！」と表示され ロック解除されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/0e99ec46-7d03-f491-894c-4a58e79c5753.png)
→　**サインイン オプション** をクリック後に、**鍵マーク** を選択し、**パスワード** を入力することで ロック解除 できます。

---

## 4-4. PIN のみの場合（顔と電話の登録なし）

### 4-4-1. 認証 1 要素目
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b726bc90-96ad-892a-69b6-fab3c9ace0f1.png)
→　PIN の入力画面が表示されます。

### 4-4-2. 認証 2 要素目
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/685388f4-76bc-a3a7-cb57-b7dc2f81062b.png)
→　PIN しか登録がないため、「追加要素のセットアップを確認してください」と出ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/3148826f-95cc-8663-b310-d0865ab7e5b1.png)
→　少し待つと「追加要素を検証できませんでした」と出ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/ff34f419-99f1-c9d6-75aa-5a4271bb54f9.png)
→　**サインイン オプション** をクリック後に、**鍵マーク** を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/0e99ec46-7d03-f491-894c-4a58e79c5753.png)
→　パスワードを入力すれば ロック解除できます。

:::note warn
電話を Bluetooth でペアリングしていないと、以下のような通知が届きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/91b5fe0d-fe37-d5b0-3121-063c888331b4.png)
:::

---

# 5. カスタマイズ
既定では、「PIN」「顔認証」「指紋」「電話」の組み合わせで動作していましたが、任意の組み合わせを定義する事もできます。

例えば、「顔認証」と「指紋」の２つに絞ることもできます。
「電話」と「PIN」だと、ある意味なりすましも出来てしまいますが、それを許さない構成にも出来るという訳です。

## 5-1. ロック解除要素 の カスタマイズ
**多要素ロック解除** を行う際に利用できる 資格情報プロバイダー の種類をカスタマイズ可能です。
以下の表のうち、GUID は、その認証を ポリシー で設定する際に記入する値です。

|資格情報プロバイダー|GUID|
|:-:|:-:|
| PIN |{D6886603-9D2F-4EB2-B667-1971041FA96B}|
| Fingerprint（指紋） |{BEC09223-B018-416D-A0AC-523971B639F5}|
| 顔認識 |{8AF662BF-65A0-4D0A-A540-A338A999D36F}|
| 信頼された信号<br>(スマートフォンの近接通信、<br>ネットワークの場所) |{27FBDB57-B613-4AF2-9D7E-4FA7A66C21AD}|

:::note info
**信頼された信号** の意味が分かりづらいですが、前章まで **電話** と呼んでいた認証の種類のことです。信頼された信号の 既定値が **電話** になっています。
:::

上記の表の値を踏まえて、3 章 の展開手順で説明した 以下の 項目の値に反映させることで、多要素ロック解除 で利用する 資格情報プロバイダー の組み合わせを カスタマイズ できます。
- 最初の ロック解除要素 である資格情報プロバイダー
- 2 番目の ロック解除要素 である資格情報プロバイダー

**公開情報：ロック解除要素のカスタマイズ**
https://learn.microsoft.com/ja-jp/windows/security/identity-protection/hello-for-business/multifactor-unlock?tabs=intune#configure-unlock-factors

---

## 5-2. 信頼された信号 の カスタマイズ
動的ロック および 多要素ロック解除 それぞれで利用する **信頼された信号** の種類をカスタマイズ可能です。さらには、その信号 の **強度** もカスタマイズ可能です。

- 動的ロック プラグイン（動的ロック用の設定項目）
- デバイスロック解除 プラグイン（多要素ロック解除の設定項目）

下記の公開情報を熟読して、XML ファイルを 各プラグイン のテキストボックス内に設定すれば、動作をカスタマイズできます。いくつか例も記載されているので、そのまま コピペもできます。

**公開情報：信頼された信号 のカスタマイズ**
https://learn.microsoft.com/ja-jp/windows/security/identity-protection/hello-for-business/multifactor-unlock?tabs=intune#configure-signal-rules-for-the-trusted-signal-credential-provider

イヤホンの Bluetooth とか、社内 WiFi など、色々な組み合わせが構成可能です。

例１：Bluetooth or WiFi を構成すると、在宅ワークの際には自分のスマホ、出社した時には 会社の WiFi に接続されている場合 のいずれかを 2 要素目の条件にすることができます。

例２：Bluetooth and LAN を構成すると、社内の 有線 LAN に接続されており、かつ 会社支給のスマホが近くにある場合を 2 要素目の条件にすることができます。