Microsoft Entraで特定製品の FIDO2 セキュリティキーのみを許可する

# はじめに
Microsoft Entra テナントで FIDO2 セキュリティキーを運用する際に、テナントの既定の構成では、FIDO2 の規格に準拠したキーであれば、どれでも利用することができます。

しかし、企業の情報システム部門としては、セキュリティレベルの点や、自社で検証済みであること、会社で購入したものであること、ユーザーサポートなどの観点から、指定したキーのみを使ってほしいというケースがあると思います。

今回は、そのようなニーズに答えるための設定を紹介します。

:::note warn
**セキュリティ対策としての例**
以下のような記事があります。

**YubiKey 5にサイドチャネル攻撃でセキュリティが破られる脆弱性が見つかる、バージョン5.7より前のYubiKeyは永久に危険との勧告**
https://gigazine.net/news/20240904-yubikeys-vulnerable-cloning-attacks-side-channel/

このような場合でも、本記事で解説している AAGUID による制限を活用することで、ファームウェア 5.7 以降の製品のみに限定する・・・というような制御も可能になります。
:::

:::note info
上記の記事を読んだら、そんな事までしないとキーを複製できないのかと思って、逆に Yubikey は、堅牢なんだなと思いました。妄信は禁物ですが・・・
:::

# 前提事項
本章以降の構成を実施する前には、以下の記事を参考に FIDO2 を有効化しておく必要があります。

https://qiita.com/carol0226/items/8586291079d941f62f7b

# FIDO2 セキュリティーの構成証明 (AAGUID) とは？
組織が確認済みの FIDO2 セキュリティキー のみで 認証を行いたい場合、そのデバイスの AAGUID を登録する必要があります。AAGUID は、メーカーが製品の種類ごとに割り当てたコードになっています。
※AAGUID が同じであれば、同一種類の製品であると見做すことができます。

# 1. AAGUID の確認方法
確認方法は、2通りあり、公開情報で確認する方法（①）と、実際に ユーザー に割り当てた キー の情報を見る方法（②）があります。

## ① 公開情報による確認
各製品ごとの AAGUID は、以下の公開情報で確認することができます。

**公開情報：Microsoft Entra ID を使用した構成証明の対象となる FIDO2 セキュリティ キー**
https://learn.microsoft.com/ja-jp/entra/identity/authentication/concept-fido2-hardware-vendor?wt.mc_id=mvp_407731#fido2-security-keys-eligible-for-attestation-with-microsoft-entra-id

例えば、**Yubikey Bio** の場合は、以下の青枠の箇所になります。
**赤枠** は、私が実際に検証に使ったキーの AAGUID です。あとで画面キャプチャで出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/6a8cd488-d6a0-4b50-948a-003ae58d4c7c.png)

:::note info
**参考**
セキュリティキーのメーカーサイトでも、AAGUID が掲載されています。
以下は、多数のメーカーがある中の一例です。

**Yubico : YubiKey hardware FIDO2 AAGUIDs**
この URL を見ると、ファームウェア 5.7 かどうかを AAGUID で識別可能なことが分かります。
https://support.yubico.com/hc/en-us/articles/360016648959-YubiKey-hardware-FIDO2-AAGUIDs

私の持っているキーは、5.7 でした。良かった！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/098be987-ada2-43c0-af0f-6149f7572237.png)

**AuthenTrend : ATKey FIDO2 セキュリティ キー AAGUID**
https://authentrend.com/ja/atkey-fido2-security-key-aaguids-ja/
:::

## ② ユーザーに割り当てたキーの AAGUID を確認する手順

1．Microsoft Entra ID で FIDO2 を割り当てた任意のユーザーを開きます。
左ペインから **認証方法** を選択します。
すると、そのユーザー登録した **認証方法** の一覧が確認できます。
そこで、該当の **パスキー** の右側にある **"・・・"** を押して **詳細の表示** を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/57f658ff-b566-4a62-9f72-753c3f3155e6.png)

2．表示された下記の画面から **AA Guid** の箇所の ID を 確認 ・ コピーします。
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/2fd06bff-b493-41f3-9866-0d91334a68f4.png">
上記の 赤下線 の AA Guid は、公開情報に記載されている AAGUID と一致していることが分かると思います。

:::note info
上記のいずれかで確認した AAGUID を使うことで、組織が想定した FIDO2 セキュリティキー のみを使って認証に利用できるように構成できます。
:::

**公開情報：パスキー (FIDO2) の Authenticator 構成証明 GUID (AAGUID)**
https://learn.microsoft.com/ja-jp/entra/identity/authentication/how-to-enable-passkey-fido2?wt.mc_id=mvp_407731#passkey-fido2-authenticator-attestation-guid-aaguid

# 2. AAGUID を使って 制御を行う手順
0. Microsoft Entra 管理センター にサインインします。
※認証ポリシー管理者のロールが必要ですが、グローバル管理者であれば OK です。
https://entra.microsoft.com/
　<br>
0. 左ペインの **保護** を開き **認証方法** を選択し **認証方法｜ポリシー** のページを開きます。
**パスキー (FIDO2)** の欄をクリックして開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b21ce6ac-e3d7-bb73-2131-17c518307f56.png)
　<br>
0. **有効化およびターゲット** タブで **有効化する** を ON になっていることを確認します。
続いて、**構成** タブを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/7bcab45f-0f0a-4856-850a-67f788c19b31.png)
続いて、**構成** タブを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/17c397f8-eb56-431e-82e0-afe41036b012.png)
　<br>
0. 以下の設定に変更します。
- 構成証明の適用 を **はい**
- キー制限の適用 を **はい**
- 特定のキーを制限 を **許可**
続いて、**AAGUID の追加** を押して、右側に表示された **追加する AAGUID** の欄に、前章で確認しておいた **AAGUID** を入力して **OK** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/aae80fb1-8313-432b-a7f9-99cacbbe894b.png)

5．下線部のように 追加した **AAGUID** が表示されていれば OK です。
複数の **AAGUID** がある場合は、ここで 繰り返し 追加 していきます。
全ての AAGUID の追加が完了したら、**保存** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/3675d93b-8ac1-4d2f-9b59-45fc4ec6d3e3.png)

これで、設定された AAGUID をもつ FIDO2 セキュリティー のみ をテナントに登録できるようになりました。

**公開情報：パスキー (FIDO2) 認証方法を有効にする**
https://learn.microsoft.com/ja-jp/entra/identity/authentication/how-to-enable-passkey-fido2?wt.mc_id=mvp_407731#enable-passkey-fido2-authentication-method

# 3. 未登録の AAGUID の場合
## 3-1. 登録しようとしたら、どうなるのか？
もし、AAGUID で許可していない種類の FIDO2 セキュリティキーを登録しようとしたらどうなるのか検証してみたところ、以下の画面が表示されました。

登録完了する直前まで手順を進められるのですが、最後に 以下の画面 が出ます。
つまり、設定した AAGUID のキーしか登録することができません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/eee5104c-5304-4686-af9f-9037fd2219a6.png)
**和訳**
この特定のキータイプは組織によってブロックされていることが検出されました。詳細については管理者にお問い合わせの上、別のタイプのキーを登録してください。

## 3-2. 以前から登録済みのキーを 後から 不許可 にした場合は？
以下のように、**(disabled)** と表示されており、登録そのものは残っていますが、利用することができなくなっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/836a9e82-4e15-453c-b879-5b94bb763fba.png)

以上で、AAGUID を使った 製品の識別が可能であることが分かりました。
パスワードレスなライフを満喫してください！

# 参考
このほかに FIDO2 に関する記事を投稿しています。
こちらも あわせて参照ください。

https://qiita.com/carol0226/stocks/3670cb8678daed11b191