Azure AD で FIDO キーでサインインする2 (WIndows 10 設定～デスクトップ サインイン)

前回の続きで、Azure AD Join した Windows 10 に FIDO セキュリティキーでサインインしてみます。

Azure AD テナント側での有効化設定のユーザーへの FIDO キー登録の方法については[前回](https://qiita.com/murasamelabo/items/0799be7bb9d20ae7b53b)の記事を参照してください。

#前提条件
この構成では、Windows のサインイン画面(Credential Provider)での対応が必要なため、前提条件があります。
・1809 以降の Windows 10 が必要
・Azure AD Join を実施している。(Hybrid Azure AD Join は現時点で未対応)


#STEP1 : Azure AD Join する
Azure AD への FIDO キーへのサインインを利用するために Windows 10 を Azure AD に参加させます。
Azure AD 参加など Azure AD を利用したデバイス管理方法については以下の Microsoft サポートチーム blog がわかりやすくまとまっています
[Azure AD 登録 と Azure AD 参加 の違い](https://blogs.technet.microsoft.com/jpazureid/2018/09/13/azure-ad-join-vs-azure-ad-device-registration/)

*※すでに Azure AD Join 済みデバイスをお持ちの場合はこのステップは飛ばしても問題ありません。*

飛ばす場合はいずれかの方法を選択してください。
[STEP2: Security Key でのサインインを Intune で有効化する](#方法1--intune-での設定)
[STEP2: Security Key でのサインインを 構成デザイナーで有効化する](#方法2--windows-構成デザイナーでの設定)

### 1. 設定アプリから "職場または学校にアクセスする"を起動する

Windows 10 の設定から以下を辿り、**[+接続]** をクリック。
**[設定]**
**->[アカウント]**
**->[職場または学校にアクセスする]**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/9c6d5a86-dd66-9290-9d71-b1926d765068.png)

### 2. "このデバイスを Azure Active Directory への参加させる"を選択
いかにも電子メールアドレスに入力したくなりますが、下部の "Azure Active Directory への参加させる" を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/67e93e1c-ed72-bdb6-accd-16b23cf276b1.png)


そのあとはウィザードに従ってサインインを行い、デバイスを参加させます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/355402e2-bf99-ee6d-9a4b-6f4b372ed9ac.png)

完了すると、以下のように Azure AD に接続済みであることが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/7d4ef09d-38e9-5322-3aba-1bb37c4d48fc.png)

以上で Azure AD 参加は完了です。


#STEP2 : Security Key でのサインインを有効にする
Security Key の有効化は CSP と呼ばれる仕組みを通して行います。主な選択肢としては以下の 2 点となります。

- [Intune](#方法1--intune-での設定)
- [Windows 構成デザイナー(プロビジョニングパッケージ)](#方法2--windows-構成デザイナーでの設定)


## 方法1 : Intune での設定
複数の端末に設定する場合は Intune を利用して設定を配布するのがおすすめです。
※Intune の使用にはライセンスが必要です。オンプレミス における GPO や SCCM に似た非常に便利な製品です。試用版もありますので、IT管理者の方はぜひこの機会に触ってみてください。

[Microsoft Intune](https://docs.microsoft.com/ja-jp/intune/what-is-intune)
[Microsoft Intune を無料で試用する](https://docs.microsoft.com/ja-jp/intune/free-trial-sign-up)

なお、作業に当たり、特定のデバイス群のみに適用するように Azure AD でグループを作成しておき、適用対象のデバイスを参加させておくと便利です。

### 1. Azure ポータルにサインイン
Azure ポータルにサインインします
https://portal.azure.com/

### 2. Intune ブレードにアクセスします。
ポータルにサインインしたら以下をたどります。

**[Intune]**
**->[Device Configuration]** 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/c4a72264-f575-887b-96a3-2b903b1daf6b.png)

### 3.構成プロファイルを作成します。
**Profiles** を選択し、**[+ Create profile]** をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/c48968da-9e70-2247-1071-91376078f5e3.png)

Nameには何の構成かわかりやすい名前を付けてください。(例では FIDO_Key_Signin)
**Platform** には **Windows 10 and later** を選択します。
**Profile type** には **Custom** を選択します。

選択後、**Settings** をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/a3a2ddb3-a468-5d8a-0680-6bbdbbe1a926.png)

設定では以下のように構成してください。

**Name : Turn on FIDO Security Keys for Windows Sign-In**
**OMA-URI : ./Device/Vendor/MSFT/PassportForWork/SecurityKey/UseSecurityKeyForSignin**
**Data Type : Integer**
**Value : 1**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/1844f9cc-e2fe-0278-abae-f61ed8f85712.png)

1 Configured となっている事を確認して、**Create** します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/bcd3e98f-4a27-8be1-78a8-593e1a77fe56.png)

### 4. 設定をデバイスに適用する
作成した 構成プロファイルを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/3162c546-f1b2-5f63-3349-075a8379de23.png)

**Assignments** を選択します。すべてのデバイスに適用でよければ、**All Devices** などでもよいですが、影響も大きいので、**Selected Groups** を選択します。Group は適用させたいデバイスを参加させたグループを Azure AD で事前に用意しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/ae851ce1-8435-e09f-cea5-c82fe9addf04.png)

以上で設定は完了です。あとは Intune のポリシーが適用されるのを待ちます。
早く反映させたい場合は、Intune の **Devices** ブレードから適用対象のデバイスを選択し、**Sync** を行うとよいでしょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/86ea0a57-db11-8905-28fb-5220ebc0330e.png)

適用が成功したかは **Assginement Status**　から確認することが可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/4e6498b8-1528-39bd-98b9-2edbec2a61ee.png)


## 方法2 : Windows 構成デザイナーでの設定

1台だけ試す、とかであれば、Windows 構成デザイナーをつかって ppkg を作成するのがお手軽です。
1903 向けの Windows 構成デザイナーは以下からインストールできます。
1809 など、最新以外のビルドを利用する場合は、バージョンのあった Windows ADK からダウンロードを実施してください。

[Microsoft Store](https://www.microsoft.com/ja-jp/p/windows-configuration-designer/9nblggh4tx22?rtc=1&activetab=pivot:overviewtab)
[Windows ADK](https://docs.microsoft.com/ja-jp/windows-hardware/get-started/adk-install)

### 1. Windows Configuration Designer** を起動します

※Windows ADK からインストールした場合は **Windows Kits** 配下に **Windows イメージングおよび構成デザイナー**という名前で存在します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/71704fcc-9b92-5ce8-0bb1-2be6e90e1261.png)

### 2. プロジェクトを作成します。

**[File]** から **[New Project]**を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/4cf2e936-5ab6-3346-12bc-205ce8aa1f3a.png)

プロジェクトにわかりやすい名前を付けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/13b0a208-0c9f-cc33-82c6-fced8c583afb.png)

特になにも操作せず **Next**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/53f28278-d5f7-082e-f85f-40846ccdedfd.png)

**[All Windows Desktop editions]** を選択して、**Next**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/3e88c9e1-082e-5f3d-a5c9-100acbd95938.png)

特になにも操作せず **Finish**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/2f4b076d-6e6f-d002-6fe9-de0deef7b7be.png)

### 3. Security Key でのサインインを有効化する設定を行う
以下をたどり、設定を Enable にします。

**[Runtime settings]**
**->WindowsHelloForBussiness**
**-->SecurityKeys**
**--->UseSecurityKeyforSignin**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/6f7654ce-677c-e3bd-410e-5295e4a10a8b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/3aa1e6b0-a652-eadf-509e-07c1d7db6a52.png)

### 4. プロビジョニングパッケージをビルドする


上部メニューにある **[Exprot]** から **[Provisioning Package]** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/93746e90-97af-7845-beff-9ed14832ad50.png)

Build するパッケージの設定を行います。
公式の手順では、既定の設定のまま(Owner=OEM)、進んでいますが、個別に作成したプロビジョニングパッケージは設定の競合時の影響を考慮して、 Owner は IT Admin を選択するのが一般的です。詳細は以下を確認してください。私は IT Admin でもうまくいったように見えましたが、うまくいかない場合は、このあたりを公式ドキュメント通りに変更してもいいかもしれません。
[プロビジョニングパッケージの優先順位](https://docs.microsoft.com/ja-jp/windows/configuration/provisioning-packages/provisioning-how-it-works#プロビジョニング-パッケージの優先順位)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/3d910191-d945-929b-109f-f908cd8c2ba0.png)

既定の設定のまま **Next**を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/6de3643b-f335-cbcb-57c9-9408390e865a.png)

パッケージを出力するパスを選択して **Next** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/9d17b30b-859f-69d1-0b80-7df1684ad231.png)

設定を確認して **Build** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/534564f4-bcb6-d894-97ab-32de812076c8.png)

無事完了すると、以下のように表示されます。ファイルパスからプロビジョニングパッケージにアクセスできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/b7482d08-09c1-d24e-b8ac-0003404a91bc.png)

出力フォルダ内にある .ppkg ファイルを USB リムーバブルデバイスなどにコピーして、設定を配布したいデバイスに持っていきます。
※USB デバイスの直下に配置してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/b41632e9-289a-9f8e-5544-bbf49d38017d.png)

### 5. プロビジョニングパッケージを適用する
プロビジョニングパッケージの適用は**設定** から行います。
以下をたどります。

**[設定]**
**->[アカウント]**
**-->[職場と学校にアクセスする]**
**-->[プロビジョニングパッケージを追加または削除する]**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/73314bc4-c391-c17a-c663-69390b1748e6.png)


**[+パッケージの追加]** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/d00d1666-36ea-e4bc-d71b-4fa691f0ec8a.png)

**場所**を**リムーバブルメディア**が選択されていたら、保存した ppkg ファイルが見えるはずなので、**[追加]** します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/2fc6fdd2-0e2a-e789-77ec-6b2583640220.png)

確認画面が表示されるので**[はい、追加する]**を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/f6edb87c-0492-e169-45f5-8013374aef2c.png)

成功すると、一覧にパッケージが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/686229e9-abca-c3a4-2b9c-66b93ed5df49.png)
以上で、プロビジョニングパッケージの適用は完了です。

#STEP3 : サインインを試す
いずれかの方法で設定適用がうまくいっていれば、Windows 10 のサインイン画面において、サインインオプションにセキュリティキーのマークが追加されてるはずです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277597/b8457094-04c2-a5fc-440e-da37a49e160b.png)

以上で完了です。
まだまだ、プレビュー中ですし、改善の余地(Hybrid Azure AD Join 対応など)ありますが、まずはパスワードレス化に向けた取り組みが本格化してきた気がします。