WebAuthnのテストツールでローカルのWebAuthn4Jを叩いてみた


昨年に「5分で理解するWebAuthn@2019」を書きました。
今回はテストツールの実施について書きます。

テストツールの利用

Fido AllianceのTest Tool Access Requestフォームに記載して登録依頼を出します。
社名まで記載し無事?3度目のリクエストでダウンロードURL/ID/PWの書かれた返事をいただきました。

ツールはWin(exe/msi)/Mac(dmg)でパッケージしてあり、解凍するとElectronのアプリケーションが起動します。
WebAuthnのテスト実行手順は、
FIDO2 Testを選択 -> Server Testにチェック -> URLを指定 -> RUNでテストを開始します。

テストツールの実施内容は、リクエストに対しレスポンスのJsonのDOM要素が含まれているか?から始まり、認証時の各証明書の署名のチェック、認証器の情報をまとめたMetadata(Fido Alliance提供)といったWebAuthnの仕様に準拠しているかをテストしていきます。

WebAuthn4J

WebAuthn4Jはコアの実装と、リファレンスの実装があります。
リファレンス実装にはテストツール用の動作モード(fido-test)があるのでそちらをコールします。
今回はWebAuthnはSSLまたはlocalhostで動作しますので、WSL(Windows Subsystem for Linux)に構築したUbuntuで実行しました。
WSLだと画面が使えないこともありHeadless Chromeでエラーになりますが気にせずビルドします。

通常起動
./gradlew samples:javaconfig:webauthn:spa:bootRun
fido-test起動
./gradlew samples:javaconfig:webauthn:fido-server-conformance-test:bootRun
テスト用のURL
http://localhost:8080/webauthn/

暫く待ち全てのテストが無事完了しました。
レポートは以上です。