12
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft SecurityAdvent Calendar 2024

Day 7

Microsoft Entra ID の認証を FIDO2 で出来るようにする

Last updated at Posted at 2024-11-25

はじめに

昨今、パスワードでの認証は 非常に脆弱なので 認証のセキュリティを向上させる必要があります。
本記事で紹介した手順を行う事で、FIDO2 セキュリティ キー を使って Microsoft Entra ID への認証(Azure や Microsoft 365 へのサインイン)が出来るようになります。

なぜ FIDO2 セキュリティキー が パスワードよりも 高セキュリティなのか?
パスワードは、英数字や記号をランダムにして、8桁以上使う事が一般的です。
それに対して、FIDO2 を使う場合、PIN には 6桁程度の数字を使います。

上記を比較するだけだと、パスワードの方が複雑で高セキュリティに見えますが、違います。
FIDO2 を利用した方が 高セキュリティです。

その理由は ココ を開いて参照してください

パスワードの場合は、テキストの平文(暗号化はされてます)が、そのまま テナントに送られて、認証が行われます。毎回 同じテキストを再利用するため、世界中の任意のデバイスから、ハッキングを行う事が可能です。

FIDO2 セキュリティ キーは、物理デバイス であり、この中に秘密鍵が保存されています。
他人が あなたのアカウントで Microsoft Entra ID にサインインするためには、この秘密鍵を知る必要があります。

しかも FIDO2 の場合は、Microsoft Entra ID へ認証を行う際には、鍵を そのまま 送付するのではなく、下図のように 発行された nonce に対して、秘密鍵で署名が行われ、"署名済み nonce" が テナントに送られた際に認証が行われます。

そのため、FIDO2 の物理キーを所持して PIN を知っている人 のみが nonce に対して署名する事ができ、たとえ 通信パケットを傍受されたとしても、その情報は、再利用ができません。そのため、ハッキングする事が困難になります。

PIN は、FIDO2 キーが 盗難・紛失 または PC に挿しっぱで離席 をした時に、不正利用されないようにするものであり、認証時に本人確認をするための目的で使われますので、PIN の内容はネットワークに流れません。ローカル(本人 x 物理PC x FIDO2)内で、秘密鍵を利用する都度、PIN の入力は必要です。

たとえ、PIN がキーロガーなどで傍受されたとしても、認証の際に "指タッチ" が必要なので、本人が意図していないタイミングで 認証されることは無くなります。

このようなプロセスが行われるため、パスワードよりも FIDO2 セキュリティ キー がセキュアであると言うことができると思います。

公開情報:パスキー (FIDO2)
https://learn.microsoft.com/ja-jp/entra/identity/authentication/concept-authentication-passwordless?wt.mc_id=mvp_407731#passkeys-fido2
(上記の公開情報より抜粋)
image.png
① FIDO2 キーを接続
② PC 側で FIDO2 キーを 認識
③ 認証要求
④ nonce を送信
⑤ PIN を入力して、FIDO2 キーに 指タッチ(秘密鍵が利用できる)
⑥ 秘密鍵を使用して、nonce に署名
⑦ 署名済み nonce を送信
⑧ 認証(署名済み nonce の検証)
⑨ PRT 返却され 認証成功


Windows Hello for Business と FIDO2 の違い

Windows Hello for Business (WHfB) を使うと、簡単に 生体認証 や PIN を使った認証が可能です。この時の PIN を使った認証は FIDO2 で PIN を使った認証と似ています。

# WHfB FIDO2 コメント
可搬性 この違いが一番重要です。
WHfBでは 秘密鍵が PC 内蔵 の TPM に
保管されるため、可搬性がありません。
FIDO2 を使う事で、秘密鍵を 任意の PC で
利用する事が可能になります。
顔認証 WHfB は、顔認証が可能なことが最大の特長です。
指紋認証 WHfB は、PC に指紋認証用のデバイスが
搭載されていれば利用可能です。
FIDO2 は 指紋認証が可能なタイプも選択できます。
PIN入力 生体認証(顔 , 指紋)が行えない場合には、
本人確認のために、PIN 入力 が必要です。
指タッチ 不要 必要 WHfB では、指タッチなどの操作は不要です。
FIDO2 では、本人が認証したことを
示すために 指タッチ が必要です。
指紋認証タイプの FIDO2 ならば、
指紋と指タッチを兼ねる事が可能です。
共用 PC ※1

※1(共用 PC のコメント)
WHfB の弱点は、生体認証 や PIN を PC 間で同期する事ができないため、PC 毎のローカル管理となってしまいます。

FIDO2 は、指紋 や PIN が セキュリティーキー内に保存されているため 可搬性があり、共用 PC などで利用することが可能です。そのため 一人で 複数の PC を併用する場合や、1台の PC を複数人で共用する場合に FIDO2 が威力を発揮します。

WHfB については、以下の記事を参照してください。


この記事の構成で実現できること

下図の通りです。

内容 可否
Microsoft Entra ID の認証
Windows OS のサインイン

本記事の構成を行う事で、Microsoft Entra ID の認証(Azure や Microsoft 365 へのサインイン)で FIDO2 が利用できるようになりますが、OS のサインインを行えるようにするには、更なる設定が必要となるので、注意してください。

環境に応じて、以下の ① または ② の記事の構成を追加で行う事で OS への サインイン が可能になります。

① Microsoft Entra Join されたデバイスへ FIDO2 でサインインする場合

② オンプレミスの Active Directory ドメインに参加したデバイスへ FIDO2 でサインインする場合


前提事項

動作させるためには、以下の環境が必要です。


1. 本作業による影響範囲

Microsoft Entra アカウントは、マイアカウント のページを使って、ユーザーが サインイン方法を管理できます。

アカウント管理(マイアカウント)の URL
https://aka.ms/mysecurityinfo

テナントが既定の状態では、以下のように 選択肢に FIDO2 セキュリティキーが表示されていません。
アカウントに FIDO2 セキュリティキー を割り当てられるようにするために、本作業が必要です。
逆に、この状態に戻すためには、逆の手順を行う事で 元通りに戻ります。
image.png


2. テナントで パスキー (FIDO2) 認証方法を有効にする

  1. Microsoft Entra 管理センター にサインインします。
    ※認証ポリシー管理者のロールが必要ですが、グローバル管理者であれば OK です。
    https://entra.microsoft.com/
     
  2. 左ペインの 保護 を開き 認証方法 を選択し 認証方法|ポリシー のページを開きます。
    パスキー (FIDO2) の欄をクリックして開きます。
    image.png
     
  3. 有効化およびターゲット タブで 有効化する を ON にします。
    なお、下記の設定では テナント内の 全ユーザー に対して FIDO2 が有効化されます。
    限られたユーザーに対してのみ FIDO2 を許可するためには、グループの選択をしてください。
    image.png
     
  4. 続いて、構成 タブは、この時点では変更はしませんが、既定値を憶えておきましょう。
    保存 をクリックすると、設定が有効化されます。
    image.png
     
  5. 以下の通り、有効 になったことが確認できます。
    image.png
     
  6. 上記の設定が完了すると、各ユーザーの マイアカウント の画面で セキュリティ キー が選択できるようになります。
    image.png

公開情報:パスキー (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. FIDO2 を セルフサービスで登録する

前章の設定で、セルフサービス設定を許可 が有効になっていれば、本章の手順にて 各ユーザーが 自分自身で FIDO2 セキュリティキー の初期設定が行えます。

  1. マイアカウント の URL にアクセスします。
    アカウント管理(マイアカウント)の URL
    https://aka.ms/mysecurityinfo
     
  2. FIDO2 セキュリティキー を設定したいユーザーアカウントで サインインします。
    左ペインの セキュリティ情報 を選択し サインイン方法の追加 を押します。
    一覧表示された中から セキュリティ キー を選択ます。
    image.png
     
  3. 以下のメッセージが表示されるため 次へ を押します。
    image.png
     
  4. ここで、本人確認のための認証が必要です。Authenticator アプリや SMS で 2FA 認証を行います。
    image.png
    image.png
     
  5. 2FA 認証に成功すると、以下の画面が表示されます。
    今回は、YubiKey で検証するため USB デバイス を選択します。
    image.png
     
  6. 以下の画面が表示されるため、そのまま 次へ を押します。
    image.png
     
  7. 左側の画面が表示されたあと、手前側に 右側の画面が表示されます。
    このタイミングで FIDO2 セキュリティ キー を挿入しましょう。
    そして、セキュリティ キー を選択して、次へ を押します。
    image.png
     
  8. 以下の画面が表示されますが、そのまま OK を押します。
    image.png
     
  9. 以下の画面が表示されますが、そのまま OK を押します。
    image.png
     
  10. 初めて FIDO2 セキュリティ キー を使用する場合(新品など)の場合は、PIN を設定するように促されます。
    既に PIN が設定されている場合は、設定済みの PIN 入力が促されます。
    image.png
     
  11. 以下のように 新しい PIN を設定して OK を押します。
    image.png
     
  12. 以下の表示がされたあと、セキュリティキー にタッチします。
    image.png
    image.png
     
  13. 以下のように表示されれば OK です。
    image.png
    なお、私が検証した際には、InPrivate モード で作業していると、このタイミングでエラーになりました。
    プライベートモードでは、登録できない旨のメッセージが表示されます。通常のセッションでやり直してください。
     
  14. セキュリティー キー の名前を付けます。
    もし、複数個の セキュリティ キー を併用する場合は、仕分けるための名前を付けると良いと思います。
    image.png
     
  15. これで、登録作業は完了です。
    image.png
     
  16. マイアカウント で セキュリティ情報の一覧表示を確認すると、追加されたことが判ります。
    image.png

公開情報:パスキーの登録 (FIDO2)
https://learn.microsoft.com/ja-jp/entra/identity/authentication/how-to-register-passkey-with-security-key?wt.mc_id=mvp_407731

公開情報:Microsoft Entra の概要のための統合されたセキュリティ情報登録
https://learn.microsoft.com/ja-jp/entra/identity/authentication/concept-registration-mfa-sspr-combined?wt.mc_id=mvp_407731

なお、セルフサービスではなく 組織の管理者が 一括でパスキーを初期設定する方法は、プレビュー段階のようで、まだ情報が整っていない様子です(2024/11/23 時点の情報)
公開情報:既知の問題 セキュリティ キーのプロビジョニング
https://learn.microsoft.com/ja-jp/entra/identity/authentication/how-to-enable-passkey-fido2?wt.mc_id=mvp_407731#known-issues
(上記の URL より抜粋)
image.png


4. FIDO2 を使ったサインイン

本章の画像は、Azure を使っていますが、 Azure でも Microsoft 365 でも 同じ動作であることを確認しました。Microsoft Entra ID を使った認証であれば、皆 同じ操作により、サインインが可能になっています。

  1. Azure Portal または Microsoft 365 の URL にアクセスします。
    https://portal.azure.com
    https://office.com
     
  2. 初回のみ 以下の画面がでます。
    代わりに顔、指紋、PIN、またはセキュリティキーを使用する を選択します。
    2回目のサインインからは、この画面は出ずに SKIP されます。
    基本の認証が パスワードではなく パスキー であると認識されている様子です。
    image.png
     
  3. セキュリティ キー を選択して 次へ を押します。
    image.png
     
  4. キーに設定した PIN を入力して OK を押します。
    image.png
     
  5. このタイミングで キー にタッチします。
    image.png
    image.png
     
  6. サインインに成功しました。
    ここで、はい を押したら ブラウザが記憶して 認証そのものを抑制できますが、せっかく キー を用意したので ここは 今後このメッセージを表示しない にチェックを入れ いいえ を押して運用すると良いと思います。
    この方がセキュリティが高まります。
    image.png
     
  7. 以下の通り、FIDO2 セキュリティ キー でサインインに成功しました。
    image.png

公開情報:パスキー (FIDO2) を使用してサインインする
https://learn.microsoft.com/ja-jp/entra/identity/authentication/how-to-sign-in-passkey?wt.mc_id=mvp_407731

公開情報:新しいパスキー (FIDO2) でサインイン
https://learn.microsoft.com/ja-jp/entra/identity/authentication/how-to-register-passkey-with-security-key?wt.mc_id=mvp_407731#sign-in-with-your-new-passkey-fido2

以上で、Microsoft Entra ID で、FIDO2 セキュリティーキーを使って パスワードレスでのサインインに成功しました。


Next Step

FIDO2 での認証が可能になったら、次は テナント にサインイン可能な認証方法の絞り込みによって、セキュリティを高められます。

以下の公開情報を参考にすることで、条件付きアクセスによって、特定のサービスを利用する際の認証強度を パスキー (FIDO2) に限定するなどの対応が可能です。さらに、AAGUID で制限することによって 組織が選択したパスキー製品のみを使用するような制限も行う事が出来そうです。

なお、現時点で 私は YubiKey を1個しか持っていないので、AAGUID で制限できているかどうかの検証が行えないため、以下の通り 設定画面の紹介までに留めておきます。

公開情報:パスキー (FIDO2) サインインを適用する
https://learn.microsoft.com/ja-jp/entra/identity/authentication/how-to-enable-passkey-fido2?wt.mc_id=mvp_407731#enforce-passkey-fido2-sign-in

image.png

上記の 緑下線部の 詳細設定オプション を押したあとの画面
image.png

AAGUID の確認方法
AAGUID については、以下を参考に ユーザーが登録した AAGUID を参照できます。

公開情報:パスキー (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

ただし、上記の公開情報のキャプチャとは違って、アクセスパネルプロファイル を開くことで AAGUID を参照することができました。
image.png
以下の画面に AAGUID が表示されています。
image.png

12
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?