【図解】FIDO2セキュリティキーとは?フィッシングに強い理由とWindowsサインイン・オンプレADへのSSOを初心者向けに解説

USB に挿したり、スマートフォンに当てたりして使う小さなキーで、パスワードを入れずにサインインする。これが FIDO2 セキュリティキーです(FIDO2 は「ファイド ツー」と読みます)。Microsoft は、管理者や規制の厳しい業務のユーザーに、まずこのセキュリティキーをすすめています。

「鍵ペア」「署名」と聞くと難しそうですが、やっていることはハンコを押して見せるのとほとんど同じです。この記事では、まずハンコのたとえで全体をつかみ、そのあと登録とサインインを数コマのステップ図で見ていきます。くわしいシーケンスや設定は、後半にまとめます。

この記事の前提 FIDO2 は業界共通の規格なので、Microsoft Entra ID だけでなく、Okta や Google など、ほかの IdP(ID を管理するサービス)や Web サイトでも使えます。この記事では、Microsoft Entra ID でセキュリティキーを使う場合を前提に説明します。前半のしくみ(ハンコ・印影・住所のたとえ、登録とサインインの流れ、フィッシングに強い理由)はどの IdP でもほぼ同じです。後半の Windows へのサインイン、オンプレ AD への SSO(Entra Kerberos)、設定のしかたは Entra ID の話です。
3行でいうと
  1. セキュリティキーの中に、サイトごとの「ハンコ」(秘密鍵)がある。ハンコはキーの外に出ない
  2. Entra ID には「印影」(公開鍵)だけを預けておく。パスワードのような共通の秘密はない
  3. ハンコを押すとき、いま開いているサイトの「住所」(origin)も一緒に入る。だから偽のサイトでは使えない

たとえでつかむ:合言葉とハンコ

パスワードは「合言葉」です。自分も Entra ID も同じ合言葉を知っていて、言えたら本人とみなします。同じものを両方が知っているので、聞かれたり、偽の窓口に言ってしまったり、サーバから漏れたりすると、だれでも使えてしまいます。

FIDO2 は「ハンコと印影」です。ハンコは自分だけが持ち、Entra ID には印影だけを預けておきます。サインインのたびに Entra ID が新しい書類を出し、そこにハンコを押して見せます。Entra ID は、預かった印影と見比べて本人だと判断します。

パスワード = 合言葉FIDO2 = ハンコと印影user01合言葉は「○○○」Entra ID同じ合言葉を、両方が知っている聞かれたら、だれでも使える偽の窓口に言うと、そのまま使われるサーバから漏れることもあるuser01ハンコ(秘密鍵)書類(毎回ちがう)Entra ID印影Entra ID は印影(公開鍵)だけを持つハンコは手元から出ない印影を見られても、ハンコは作れない押した書類は使い回せないFIDO2 のサインインは「毎回ちがう書類に、自分だけのハンコを押して見せる」こと
図1 パスワードと FIDO2 のたとえ

このたとえと、本当の名前の対応は次のとおりです。後半の図や説明では本当の名前も使うので、ここで一度見ておいてください。

たとえ本当の名前中身
ハンコ秘密鍵セキュリティキーの中にある。外に取り出せない
印影公開鍵Entra ID に登録しておく。見られても困らない
毎回ちがう書類challengeEntra ID がサインインのたびに出す乱数。前に押した書類は使い回せない
書類に入る住所originいま開いているサイト。ブラウザが書き入れる
ハンコを押す署名秘密鍵で書類に署名する。印影(公開鍵)で確かめられる
ハンコを使う暗証番号キーの PINキー自身が確かめる。Entra ID には送らない
サイトごとに別のハンコRP ID ごとの鍵ペアRP ID は、サインインを受け付けるサイトを表す名前
たとえの限界 本物のハンコは、印影をまねて偽物を作れてしまうことがあります。公開鍵と秘密鍵の場合は、公開鍵(印影)から秘密鍵(ハンコ)を作ることはできません。そのため、Entra ID から公開鍵が漏れても、サインインには使えません。しくみは「暗号の基礎」の記事で説明しています。

登場するのは3つだけ

FIDO2 のサインインに出てくるのは、セキュリティキー、PC(ブラウザ・Windows)、Entra ID の3つです。

FIDO2 = WebAuthn(W3C)+ CTAP(FIDO Alliance)セキュリティキー認証器(authenticator)秘密鍵を作って持つPIN や指紋を確かめるchallenge に署名するPC01ブラウザ・Windowsキーと Entra ID の仲立ち本当の origin を記録するRP ID が合うかを確かめるEntra IDRP(relying party)challenge を出す公開鍵を持つ署名を確かめるCTAPUSB・NFC・BLEWebAuthnHTTPSブラウザやアプリは WebAuthn で頼み、Windows が CTAP でキーとやりとりする
図2 FIDO2 の登場人物
登場人物たとえでいうとすること
セキュリティキーハンコを持つ人PIN を確かめてから、ハンコを押す(署名する)
PC(ブラウザ)書類を運ぶ人Entra ID とキーのあいだで書類を運ぶ。そのとき「いま開いているサイトの住所」を書き添える
Entra ID窓口書類(challenge)を出し、預かった印影(公開鍵)と見比べる

ブラウザとサイトのあいだの決まりを WebAuthn(W3C)、PC とキーのあいだの決まりを CTAP(FIDO Alliance)といい、この2つを合わせて FIDO2 と呼びます。大事なのは、真ん中の PC が「本当に開いているサイト」を知っていることです。これが、偽のサイトで使えない理由につながります。

1本のキーに、サイトごとのハンコ

1本のセキュリティキーで、いくつものサイトにサインインできます。ただし、同じハンコを使い回すわけではありません。サイトごとに、別のハンコ(鍵ペア)をキーの中で作ります。

セキュリティキーの中鍵 A RP ID:Entra ID鍵 B RP ID:サービス X鍵 C RP ID:サービス YEntra ID(本物のサイト)鍵 A で署名できる偽のサイトRP ID が違うので、鍵 A は使えない鍵はサイト(RP ID)ごとに別に作る。登録したサイトでしか使えない
図3 サイトごとの鍵

Entra ID 用のハンコ(鍵 A)は、Entra ID 専用です。偽のサイトは名前(RP ID)が違うので、鍵 A を押させることができません。また、サイトごとにハンコが違うので、どこか1つのサイトから印影が漏れても、ほかのサイトには関係ありません。

登録:ハンコを作って、印影を預ける

最初に1回だけ、セキュリティキーを Entra ID に登録します。利用者がセキュリティ情報のページ(マイ アカウント ›› セキュリティ情報 ›› サインイン方法の追加 ›› パスキー)で行います。

1MFA でサインインするセキュリティ情報のページを開く2キーがハンコを作るこのサイト専用の鍵ペア。秘密鍵はキーの外に出ない3印影(公開鍵)だけを預けるEntra ID が user01 に結び付けて保存する登録は最初の1回だけ。キーの PIN はキーに設定し、Entra ID には送らない
図4 登録の3ステップ

ポイントは、キーの外に出るのは印影(公開鍵)だけという点です。ハンコ(秘密鍵)はキーの中で作られ、そのままキーの中に残ります。登録の前に MFA でサインインしておくのは、「本人がキーを登録している」ことを確かめるためです。

くわしい流れ

この記事のシーケンス図では、「○○ が確かめる」「○○ が払い出す」の箱で、だれが何を確かめ、だれが何を渡すのかを示します。箱に書いた名前が、その処理をする人です。

① MFA を済ませて、登録を始める(セキュリティ情報のページ)② セキュリティキーが、このサイト専用の鍵のペアを作る③ Entra ID に公開鍵を登録するuser01キーセキュリティキーPC01ブラウザEntra IDパスキーを追加したいMFA を済ませてサインインしているEntra ID が払い出すchallenge + RP ID + ユーザーの情報challenge・RP ID・ユーザーPC01 が確かめるRP ID が、開いているサイトのドメインに合うか鍵を作ってRP ID + client data のハッシュタッチ + キーの PINキー が確かめるキーの PIN が正しいかキーが RP ID 専用の鍵のペアを作る。秘密鍵はキーの外に出ないキー が払い出す公開鍵 + 資格情報 ID + AAGUID構成証明(attestation)公開鍵・資格情報 ID・構成証明公開鍵・構成証明 + client dataclient data には本当の origin が入るEntra ID が確かめるchallenge と origin が正しいか構成証明・AAGUID がポリシーに合うか(設定したとき)Entra ID が user01 に公開鍵を登録する
図5 セキュリティキーの登録の流れ
  • ブラウザが確かめる:Entra ID から届いた RP ID(サイトの名前)が、いま開いているサイトのドメインに合うか。合わなければキーに頼みません
  • キーが確かめる:キーの PIN が正しいか。PIN は Entra ID には送りません
  • キーが払い出す:公開鍵と、鍵を指す資格情報 ID、キーの機種を表す AAGUID、構成証明(attestation)。秘密鍵は出しません
  • Entra ID が確かめる:自分が出した challenge か、本当の origin か。設定していれば、構成証明と AAGUID が許した機種かも見ます

サインイン:毎回ちがう書類にハンコを押す

登録が終わると、サインインの画面で「顔、指紋、PIN、またはセキュリティ キー」を選び、キーを挿して PIN を入れるだけでサインインできます。裏では、次の4ステップが進んでいます。

1Entra ID が問題を出す毎回ちがう乱数(challenge)2ブラウザが住所を書き添えるいま開いているサイト(origin)3キーに触れてPIN を入れるキーが秘密鍵でハンコを押す(署名)4Entra ID が印影と見比べる公開鍵で確かめ、問題と住所も確認パスワードも PIN もネットワークに流れない。流れるのは、ハンコを押した書類(署名)だけ
図6 サインインの4ステップ
  1. Entra ID が、毎回ちがう乱数(challenge)を「書類」として出します。前に押した書類は使えないので、盗み見た署名を使い回すことはできません
  2. ブラウザが、その書類に「いま開いているサイトの住所(origin)」を書き添えます。利用者が書き換えることはできません
  3. 利用者がキーに触れて PIN を入れると、キーが PIN を確かめてから、ハンコを押します(秘密鍵で署名します)
  4. Entra ID が、預かった印影(公開鍵)で署名を確かめ、書類が自分の出したものか、住所が本物のサイトかも確認します

キー(持っているもの)と PIN(知っているもの)の2つがそろうので、セキュリティキーでのサインインは、それだけで MFA になります。指紋センサー付きのキーなら、PIN の代わりに指紋(本人の体)でも構いません。

くわしい流れ

① サインインのページを開く② セキュリティキーが署名する③ Entra ID が確かめるuser01キーセキュリティキーPC01ブラウザEntra IDサインインしたいEntra ID が払い出すchallenge(nonce)+ RP IDchallenge・RP IDPC01 が確かめるRP ID が、開いているサイトのドメインに合うか署名してRP ID + client data のハッシュタッチ + キーの PIN(または指紋)キー が確かめるキーの PIN(または指紋)が正しいかこの RP ID の鍵を持っているかキー が払い出すauthenticator data + 署名(RP ID のハッシュ・UP/UV・カウンター)authenticator data + 署名署名 + authenticator data + client dataEntra ID が確かめる登録した公開鍵で、署名が合うかchallenge・origin・RP ID のハッシュが正しいか本人確認(UV)が済んでいるかEntra ID が払い出すトークン(MFA 済み)トークン
図7 セキュリティキーでのサインインの流れ

もう少しくわしく:ハンコを押す書類の中身

キーがハンコを押す「書類」は、キーが作る部分と、ブラウザが作る部分の2つでできています。

authenticator data(キーが作る)RP ID のハッシュフラグ(UP:触れた/UV:本人確認した)署名カウンターclient data(ブラウザが作る)type(webauthn.get)challenge(Entra ID が出した値)origin(本当に開いていたサイト)+ハッシュにして渡すセキュリティキーの秘密鍵で、まとめて署名するorigin はブラウザが入れる。偽のサイトを開いていれば、偽のサイトの origin が署名に入るEntra ID は、署名を公開鍵で確かめたうえで、challenge・origin・RP ID を自分の値と比べる
図8 署名の対象
中身作る人Entra ID が確かめること
RP ID のハッシュキー自分の RP ID のハッシュと同じか
UP・UV のフラグキーキーに触れたか(UP)、PIN や指紋で本人確認したか(UV)。Entra ID は本人確認を必ず求める
署名カウンターキーキーが対応していれば、サインインのたびに増える数。RP がキーの複製に気づくための手がかりとして使える
challengeブラウザ(Entra ID の値を入れる)自分が出した値か。前の署名の使い回しを防ぐ
originブラウザ本物のサインインのサイトで開かれていたか

偽のサイトでは使えない理由

ワンタイムコードやプッシュ通知の承認も MFA ですが、偽のサイトに誘導されると、コードを入力させられたり、承認させられたりして、使われてしまうことがあります。

FIDO2 では、だまされて偽の窓口に行ってしまっても、うまくいきません。偽の窓口の書類には偽の窓口の住所が書き添えられますし、そもそもキーは、偽の窓口用のハンコを持っていないからです。

ワンタイムコード(従来の MFA)user01コードを入力偽のサイト本物そっくりそのコードを使われるEntra IDコードそのものは正しいので、Entra ID は見分けられないFIDO2 セキュリティキーuser01開いてしまう偽のサイト本物そっくりブラウザ:RP ID が偽サイトのドメインに合わないキー:偽サイトの RP ID の鍵を持っていないEntra ID:origin が違う署名は受け付けないどこかで止まるので、だまされて偽サイトを開いても、サインインに使われない
図9 フィッシングに強い理由
守りだれがしくみ
RP ID の確認ブラウザRP ID は、開いているサイトのドメインか、その上位のドメインでなければならない。偽のサイトは本物の RP ID を名乗れない
サイトごとの鍵セキュリティキー鍵は RP ID ごとに作るので、偽サイトの RP ID 用の鍵はない
origin の確認Entra IDorigin はブラウザが入れて署名に含まれる。偽サイトを経由した署名は origin が違うので受け付けない
共有する秘密がない―Entra ID が持つのは公開鍵だけ。漏れてもサインインには使えない

人の注意力に頼らず、ブラウザ・キー・Entra ID のしくみで偽のサイトを見分ける点が、パスワードやワンタイムコードとの大きな違いです。

よくある勘違い

キーの中に、パスワードが入っている?

入っていません。キーの中にあるのは、サイトごとに作った秘密鍵(ハンコ)です。Entra ID のパスワードとは関係がなく、パスワードを変えてもキーはそのまま使えます。

キーの PIN は、Entra ID に送られる?

送られません。キーの PIN は、ハンコを使うための暗証番号で、キーごとに利用者が決めます。確かめるのはキー自身です。Entra ID が受け取るのは、PIN を確かめたという印(UV のフラグ)と署名だけです。

キーを拾われたら、そのまま使われる?

PIN(または指紋)がわからなければ使えません。また、PIN を何度も間違えると、キーは PIN を受け付けなくなるので、試し続けて当てることもできません。回数の上限や、ロックされたあとの扱いは、キーの製品と CTAP の仕様によるので、製品の説明書で確かめてください。なくしたときは、すぐにキーの登録を削除します(あとの「キーをなくしたら?」を見てください)。

1本のキーをいろいろなサイトで使うと、危なくならない?

なりません。サイトごとに別のハンコ(鍵ペア)を作るので、どこか1つのサイトから印影が漏れても、ほかのサイトには影響しません。パスワードの使い回しとは、しくみが違います。

パスキーの種類

「パスキー」は、FIDO2 の鍵ペアでサインインする資格情報の呼び名です。セキュリティキーに入ったものもパスキーの一種で、Entra ID では、秘密鍵の置き場所によって2つに分けています。

デバイスに結び付くパスキー例FIDO2 セキュリティキーMicrosoft AuthenticatorWindows Hello(Entra パスキー)秘密鍵は1台の中から出ない構成証明で機種を確かめられる(対応品)管理者・規制の厳しい業務向け同期されるパスキー例Apple のパスワード(iCloud キーチェーン)Google パスワード マネージャー1Password などのアプリ暗号化してクラウドで同期する構成証明には対応しない一般の利用者向けどちらも FIDO2 の鍵ペアで、フィッシングに強い。違うのは秘密鍵の置き場所
図10 パスキーの種類
項目デバイスに結び付くパスキー同期されるパスキー
秘密鍵の場所1台の機器の中だけ(キー・スマートフォン・PC の TPM)暗号化して、パスキーの提供元のクラウドで同期
構成証明対応品なら確かめられる対応しない
Microsoft のおすすめ管理者や規制の厳しい業務のユーザーには、FIDO2 セキュリティキーそれ以外の多くのユーザー

構成証明を必須にすると、デバイスに結び付くパスキーだけが使えるようになり、同期されるパスキーは登録できなくなります。

Windows Hello for Business とのちがい

Windows Hello for Business も、鍵ペアで認証するしくみです。違いは、秘密鍵がどこにあるかです。

項目Windows Hello for BusinessFIDO2 セキュリティキー
秘密鍵の場所その PC の TPM の中セキュリティキーの中
使える PC登録した PC だけキーを挿せば、ほかの PC でも使える
向いている場面毎日同じ PC を使う人共用の PC、管理者、PC を替えたときの最初のサインイン
オンプレ AD への SSO信頼の種類を選ぶ(クラウド Kerberos 信頼など)Entra Kerberos を使う

Windows Hello for Business のしくみは「Windows Hello for Businessとは?」の記事で説明しています。

Windows へのサインインと、オンプレ AD への SSO

セキュリティキーは、ブラウザでのサインインだけでなく、Windows へのサインインにも使えます。Windows へのサインインでは、Entra ID から PRT をもらいます。PRT のしくみは「PRT(Primary Refresh Token)とは?」の記事で説明しています。

さらに Entra Kerberos を設定しておくと、Entra ID は PRT と一緒に部分的な TGTを渡します。PC はそれを DC に持っていき、本物の TGT に替えてもらいます。こうして、セキュリティキーでサインインしても、ファイルサーバなどオンプレの資源に SSO で入れます。

たとえでいうと、Entra ID が「仮の通行証」を渡し、DC がそれを「本物の通行証」に替えてくれる、という流れです。

1キーで Windows にサインインするキーを挿してPIN を入れる2PRT と「仮の通行証」仮の通行証は部分的な TGT3DC で本物の通行証に替える本物の通行証はTGT4ファイルサーバなどに入るここからはいつもの KerberosEntra Kerberos を設定しておくと、②で仮の通行証(部分的な TGT)がもらえる
図11 オンプレ AD への SSO の4ステップ

くわしい流れは次のとおりです。

① Windows のサインイン:キーを挿して PIN を入れる② 部分的な TGT を DC01 で本物の TGT に替えるキーセキュリティキーPC01ハイブリッド参加Entra IDEntra KerberosDC01nonce をくださいEntra ID が払い出すnoncenoncenonce に署名してCTAPキー が確かめるキーの PIN が正しいかキー が払い出す秘密鍵で作った署名署名署名した noncePRT の要求Entra ID が確かめる登録した公開鍵で、署名が合うかnonce が正しいかEntra ID が払い出すPRT + セッションキー部分的な TGT(ユーザーの SID だけ)PRT + 部分的な TGT部分的な TGTDC01 が確かめるEntra Kerberos が作った正しいチケットかAzureADKerberos に許されたユーザーかDC01 が払い出す本物の TGT(AD からグループなどの情報を入れる)TGTここからはふつうの Kerberos
図12 セキュリティキーでの Windows のサインインとオンプレ AD への SSO(ハイブリッド参加)

流れは、Windows Hello for Business のクラウド Kerberos 信頼とほとんど同じです。違うのは、署名するのが PC の TPM ではなくセキュリティキーである点だけです。Entra Kerberos のしくみ(AD の中の AzureADKerberos オブジェクトなど)は、「Microsoft Entra Kerberosとは?」の記事で説明しています。

使うための条件

項目Entra 参加ハイブリッド参加
Windows のバージョンWindows 10 1909 以降Windows 10 2004 以降
Windows へのサインインEntra Kerberos がなくてもできるEntra Kerberos がないとできない
オンプレ AD への SSOEntra Kerberos が必要(ほかの方式はない)Entra Kerberos が必要(ほかの方式はない)
DCWindows Server 2016 以降(2016 は KB4534307、2019 は KB4534321 を適用)。サイトごとに書き込みできる DC が1台以上
Kerberos の暗号化方式DC で暗号化方式を制限しているなら、AES256_HMAC_SHA1 を許可する
同期する属性onPremisesSamAccountName・onPremisesDomainName・onPremisesSecurityIdentifier(Entra Connect の既定で同期される)

同期する属性は「Entra Connectは何を同期している?」の記事で説明しています。

Entra Kerberos のほかに方法はある? セキュリティキーで Windows にサインインして、ファイルサーバなどオンプレの資源に SSO するしくみは、Entra Kerberos だけです。Windows Hello for Business のような「キー信頼」「証明書信頼」に当たる選択肢はないので、この使い方をするなら Entra Kerberos は必須と考えてください。ハイブリッド参加の PC では、Entra Kerberos がないとセキュリティキーで Windows にサインインすること自体ができません。
似た使い方に見えて、しくみが別のものには次があります。
  • スマートカード(証明書)のサインイン:キーの製品によっては、FIDO2 とは別にスマートカード(PIV)の機能を持っています。CA が発行した証明書で DC に直接認証するので、Entra Kerberos は使いませんが、FIDO2 ではなく証明書ベースの認証です
  • Windows Hello for Business:PC の TPM の鍵でサインインするしくみで、キー信頼・証明書信頼・クラウド Kerberos 信頼を選べます。セキュリティキーとは別の資格情報です
  • 社内の Web アプリ:Microsoft Entra アプリケーション プロキシ(または Microsoft Entra Private Access)を使うと、ブラウザで Entra ID にセキュリティキーでサインインしたあと、Kerberos の制約付き委任で社内の Web アプリに SSO できます。ただし Web アプリだけで、ファイルサーバなどには使えません
気をつけること
  • オンプレの AD だけの環境(ドメイン参加だけの PC)では使えません。Entra 参加かハイブリッド参加が必要です
  • RDP・VDI・Citrix でキーを使う場面(WebAuthn のリダイレクトを除く)、「別のユーザーとして実行」、サーバへのサインインでは使えません
  • パスワードの期限が切れていると、セキュリティキーでのサインインもできません。先にパスワードを変更する必要があります
  • ハイブリッド参加の PC を新しく用意したときは、ドメイン参加と再起動のあと、まずパスワードでサインインし、ポリシーが届くのを待ってからセキュリティキーを使います
  • Entra Kerberos は RODC と同じルールで扱われるので、特権グループ(Domain Admins など)のメンバーは、セキュリティキーでオンプレの資源に入れません

設定のしかた(Entra ID の場合)

Entra ID:パスキー(FIDO2)を有効にする

Microsoft Entra 管理センター ›› Entra ID ›› 認証方法 ›› ポリシー ›› パスキー (FIDO2) で、対象のユーザー(グループ)に対して有効にします。設定は「パスキー プロファイル」にまとめ、グループごとに割り当てられます。

設定意味
Enforce attestation(構成証明を必須にする)登録のときに構成証明を求め、FIDO の Metadata Service で機種を確かめる。同期されるパスキーは登録できなくなる。あとから有効にしても、登録済みのものはそのまま使える
Passkey types(パスキーの種類)デバイスに結び付くもの(Device-bound)・同期されるもの(Synced)のどちらを許すか
Target specific AAGUIDs(キーの制限)AAGUID で機種を指定して、許可(Allow)または禁止(Block)する。登録とサインインの両方に効く

AAGUID は、キーの機種ごとに決まった128ビットの番号です。個々のキーではなく機種を表します。構成証明を必須にしていないときは、キーが名乗る AAGUID を確かめようがないので、AAGUID の制限は目安と考えます。

Windows:セキュリティキーでのサインインを有効にする

方法設定
Intune(登録のとき)デバイス ›› デバイスの登録 ›› Windows の登録 ›› Windows Hello for Business で「Use security keys for sign-in」を Enabled(すでに登録済みのデバイスには反映されない)
Intune(グループを指定)カスタムのプロファイルで OMA-URI ./Device/Vendor/MSFT/PassportForWork/SecurityKey/UseSecurityKeyForSignin を整数の 1 に設定
グループポリシー(ハイブリッド参加だけ)コンピューターの構成 ›› 管理用テンプレート ›› システム ›› ログオン の「Turn on security key sign-in」を有効

Windows でセキュリティキーを使う設定は、Windows Hello for Business の設定とは別のものです。Windows Hello for Business を使っていなくても有効にできます。

オンプレ AD:Entra Kerberos を用意する

オンプレ AD への SSO には、AzureADHybridAuthenticationManagement モジュールの Set-AzureADKerberosServer で、ドメインごとに Entra Kerberos のサーバオブジェクトを作ります。Windows Hello for Business のクラウド Kerberos 信頼と同じものなので、すでに作ってあれば、そのまま使えます。手順と、鍵の定期的な更新(-RotateServerKey)は「Microsoft Entra Kerberosとは?」の記事で説明しています。

よくある疑問

パスキーと FIDO2 セキュリティキーは別のもの?

セキュリティキーは、パスキーの置き場所の1つです。パスキーは「FIDO2 の鍵ペアでサインインする資格情報」の呼び名で、セキュリティキーの中に作ったものは「デバイスに結び付くパスキー」になります。Entra 管理センターでも、セキュリティキーは「パスキー (FIDO2)」の認証方法として設定します。

キーをなくしたら?

利用者はセキュリティ情報のページで、なくしたキーを削除できます。管理者は、ユーザーの 認証方法 から、そのパスキーを削除します。秘密鍵はキーの中にしかないので、なくしたキーの中身をほかの機器に移すことはできません。新しいキーを登録し直します。

Windows Hello for Business があれば、セキュリティキーは要らない?

毎日同じ PC を使うなら、Windows Hello for Business だけで足ります。セキュリティキーが役に立つのは、共用の PC を使う場面、別の PC で初めてサインインする場面、管理者のように特に強い保護がほしい場面です。Microsoft は、最初の資格情報には持ち運べるもの(セキュリティキーやパスキー)を用意し、それを使って PC ごとの Windows Hello for Business を登録する進め方を示しています。

確かめ方

セキュリティキーで Windows にサインインしたあとは、dsregcmd /status の「SSO State」で PRT とオンプレ用のチケットを確かめます。サインインしたユーザーのままで実行します。

項目意味
AzureAdPrtPRT があれば YES
OnPremTgtEntra Kerberos からもらった、オンプレの資源に使うチケットがあれば YES
AzureAdJoined・DomainJoinedハイブリッド参加なら両方 YES

オンプレの資源で資格情報を聞かれるときは、DC が Entra Kerberos に対応しているかを nltest で、Entra Kerberos のサーバオブジェクトの状態を Get-AzureADKerberosServer で確かめます。Get-AzureADKerberosServer では、AD 側の KeyVersion と Entra ID 側の CloudKeyVersion が同じになっているかを見ます。

確認に使うコマンド

PC01(コマンドプロンプト・サインインしたユーザー):参加の状態・PRT・オンプレ用のチケットを表示する

dsregcmd /status | findstr /i "AzureAdJoined DomainJoined AzureAdPrt OnPremTgt"

PC01(コマンドプロンプト・サインインしたユーザー):持っている Kerberos のチケットを表示する

klist

PC01(コマンドプロンプト):Entra Kerberos に対応した DC を探す

nltest /dsgetdc:corp.example.com /keylist /kdc

管理用サーバ(PowerShell・管理者):Entra Kerberos のサーバオブジェクトの状態を表示する

Get-AzureADKerberosServer -Domain corp.example.com -UserPrincipalName admin@example.onmicrosoft.com -DomainCredential (Get-Credential)

まとめ

項目ひとことで
たとえ毎回ちがう書類(challenge)に、自分だけのハンコ(秘密鍵)を押して見せる。Entra ID は印影(公開鍵)で確かめる
FIDO2WebAuthn(ブラウザとサイト)と CTAP(PC とキー)を合わせた、パスワードを使わない認証の規格
鍵サイト(RP ID)ごとに、キーの中で鍵ペアを作る。秘密鍵は外に出ず、サイトには公開鍵だけを登録する
サインインキーが PIN を確かめ、challenge と origin を含むデータに署名する。Entra ID が公開鍵で確かめてトークンを払い出す
フィッシングブラウザが RP ID と origin を、キーがサイトごとの鍵を、Entra ID が origin を確かめるので、偽サイトでは使えない
パスキーデバイスに結び付くもの(セキュリティキーなど)と、同期されるもの。違いは秘密鍵の置き場所
Windows とオンプレ ADWindows のサインインで PRT をもらい、Entra Kerberos があれば部分的な TGT を DC で本物の TGT に替える
確かめ方dsregcmd /status の AzureAdPrt・OnPremTgt、nltest /keylist、Get-AzureADKerberosServer

FIDO2 セキュリティキーの強さは、「秘密鍵がキーから出ない」ことと、「サイトごとの鍵と origin で、偽のサイトをしくみで見分ける」ことの2つにあります。利用者が気をつけなくても守られる、という点が、ほかの MFA との大きな違いです。

コメント