FIDO2Server認定へのみちのり
1 はじめに
WebアプリケーションにおけるID認証は、今後、パスワードレス化が急速に進むと予測されます。その中で大きな役割を果たすのが、WebAuthn※1と呼ばれる認証方法です。また、Passkeys※3という新たな認証器の仕組みが加わり、スマートフォンなどのデバイスがあれば、誰でも、お手軽にパスワードレス認証が、利用可能となります。
WebAuthnを、商用目的などで、安全に運用するためには、FIDOAllianceが規定する、FIDO2Serverあるいは、FIDO Universal Serverと呼ばれる仕様に基づき、実装されている事が推奨されています。実装の評価は、FIDO Allianceが試験を行い、認定します。
我々、DAuthでは、WebAuthnをいち早く取り入れました。FIDOの公式認定を取得することで、規定水準の認証機能を保証し、安全性をアピールする事ができます。本編は、FIDO2Serverの認定を取得する時のポイントや、試験の流れについて解説します。
WebAuthn※1
2019年3月4日 Web技術の標準化団体である「W3C」が、FIDO※2 Allianceから支援を受け、Webサービスにおけるオンライン認証のパスワードレス認証に関する仕様を勧告しました。認証方法にはFIDO2認証が採用されています。
FIDO※2
FIDOは(Fast IDentity Online)の略で、従来のパスワード認証に変わる安全性とユーザーの利便性を両立すべく、FIDOAllianceという団体によって規格化された標準の認証規格です。
Passkeys※3
2022年3月、FIDO Allianceが、”multi-device FIDO credentials”(またはpasskey)と呼ばれる情報を公開しました。FIDO Allianceで、Google、Microsoft、Appleが共同発表した情報で、FIDOの資格情報(ログイン資格)をさまざまなデバイスで復元、再利用できる仕組みをまとめた技術情報です。
2 FIDO2Server認定
FIDO2Serverは、FIDO Allianceが仕様を策定しています。FIDOの規定に順ずることにより、以下の機能が保証されます。
FIDO2Serverを構築する場合は、登録・認証動作と、メタ情報処理が正しく動作する事がポイントになります。これらの挙動が、FIDOAllianceが定める仕様や機能を満たしていれば、認定試験を受けることができます。FIDO Allianceでは、年に4回、「相互運用イベント」と呼ばれ、 相互運用性試験が開催されます。
相互運用性試験に合格の際は、FIDO規格の公式認定証を取得することができます。合格後、FIDO2Severのロゴの使用が許可され、製品紹介やウェブサイトに掲載することができます。
3 FIDO2Serverの実装ポイント
FIDO2Serverの認定を受けるには、相互運用性試験を受ける必要があります。相互運用性試験を受けるためには、以下、2点が正しく実装されている必要があります。
1.FIDO Allianceの規定に合わせて、APIを提供します。
相互運用性試験を受ける前に、自己評価ツールで動作をチェックする必要があります。自己評価ツールは、認証器の登録、認証で必要なWebAPIを呼び出します。実装が必要なAPI仕様は、次のURLを参照ください。
URL : https://github.com/fido-alliance/conformance-test-tools-resources/blob/fido2-doc-update/docs/FIDO2/Server/Conformance-Test-API.md#fido2-conformance-testing-server-api
自己評価ツールは、FIDO2Serverが必要な試験を全て行い、レポートを作成します。相互運用性試験を受けるためには、自己評価ツールで合格する必要があります。全体の試験工程で最も重要なフェーズです。また、自己評価ツールで合格した場合は、相互運用性試験では、ほとんど問題が出ないと言われています。
こぼればなし:
2020年12月の相互運用性試験を受けるために、3月ぐらいから準備していたのですが、9月ぐらいまで、自己評価ツールによるセルフチェックは、順調でした。11月の中旬に、最新バージョンの自己評価ツールで、最終確認を行ったところ、不合格になってしまいました。原因は、利用していた、コアライブラリのメタ情報処理に不具合があり、一部のメタ情報が取り込めなかったのが原因でした。当時、かなり焦ってデバッグした記憶があります。
2.FIDO Allianceの規定に合わせて、テスト用のUIを準備します。
相互運用性試験では、参加ベンダーの認証器と連携して試験を行います。FIDO2Serverでは、各ベンダーの参加者や試験官が、共通的に試験を進められるように、fido2-interop-webappページを実装する必要があります。
相互運用性試験では、FIDO Allianceの試験官に、このページのエンドポイントを伝える必要があります。
fido2-interop-webappページは、以下のURLよりダウンロードして実装します。
URL : https://github.com/fido-alliance/fido2-interop-webapp
実装イメージ:
※ソースコードを大きく変えると、合格できない可能性があるので、修正許可のある、社名、FIDO2ServerのURL以外は、修正しないように注意してください。
4 FIDO2Server認定の流れ
FIDO2Serverの認定を受けるには、下記のような流れになります。
1.FIDO AllianceのHPにアクセスし、認定試験の登録ページにアクセスして、参加手続きを行います。
URL : https://fidoalliance.org/certification/interoperability-testing/interop-registration/
この時、同ページ内にある「 Interop NDA」のリンクよりダウンロードしたNDAに必要事項を記載し、登録する必要があります。
2.登録が完了すると、試験担当からのメールが届きます。自己評価ツールを利用登録を行い、ダウンロードします。参加するイベントの開催日の2週間前には、自己評価ツールによる試験を完了しておく必要があります。
URL : https://fidoalliance.org/test-tool-access-request/
このツールは、全ての試験が正常に完了すると、合格結果をFIDO Allianceに提出することができます。
※自己評価ツールに合格すると、相互運用イベントに参加できます。
3.相互運用イベント開催までに、FIDO Alliance試験担当より、試験用のページのエンドポイントを教えたり、今回試験を受ける担当デバイスのメタ情報を受け取り、システムにセットアップして相互運用試験の準備をします。
4.相互運用イベントでは、FIDO Alliance試験担当の方が、相互運用試験の認証器とサーバーを組み合わせて、試験を行います。サーバー担当ベンダーは、FIDO Allianceより送られてきた、試験対象となる認証器のメタ情報を自システムに登録します。相互運用試験中は、ログを確認して、動作に問題がないか確認します。
※別グループの試験がうまくいかない場合、突発的に、認証器の試験をお願いされる事があります。都度、対象認証器のメタ情報を設定して、試験官に試験をお願いする流れとなります。
5.試験結果の発表は、相互運用試験の翌週に、FIDO Allianceの試験担当より、メールにて試験結果が通達されます。認定登録を行う場合は、会社名と登録名を返信して、登録依頼を行います。認定料は下記となります。
FIDO Alliance入金確認後、認定証明書が発行されます。
アライアンスメンバー | 非アライアンスメンバー | |
認定費用 | $500 USD | $750 USD |
5 相互運用イベントの雰囲気
今まで、日本で開催された相互運用試験では、協賛する会社より、試験会場を提供していただき、試験を受けるベンダーや、FIDOAllianceの試験担当が集合して、開催されていたようです。試験期間中は、現場に待機して、試験を見守ります。
現在、コロナ禍の影響もあり、主流は、オンデマンドによる開催が主流のようです。我々が取得したときもオンデマンド形式でした。FIDO Allianceの試験担当とのやり取りは、全てeメールにて行われました。
我々が受けた2020年12月のイベントでは、日本時間に考慮頂いていたと聞いておりましたが、試験官がUSAの方々が多かったということもあり、試験のピークは、17:00 ~ 翌3:00だった記憶があります。
また、ログレベルを変更し、記録情報を調整をしておくと、試験の進行状況がある程度、把握できます。そのような事前準備をしておくと、スムーズに試験を受けることができます。
6 おわり
ここまで、ご覧いただきありがとうございました。
FIDO2Serverの相互運用イベントを通じて、FIDO Allianceの皆さんや、世界中のベンダーが、パスワードレス認証に、情熱を注いでいることを、肌で感じる事ができました。
FIDO2Server認定の取得をお考えの皆様、相互運用イベントは、決して難しいものではないので、是非チャレンジしてみては如何でしょうか。そして、WebAuthn(FIDO2認証)で、パスワードレスな世界を、一緒に広げましょう。
このコラムにコメントする
コメントは承認制とさせていただいているため、反映まで少しお時間をいただきます。あらかじめご了承ください。