== 既知の問題

WebAuthnは各ブラウザベンダが実装を進めている最中の新技術であり、仕様で定められていても、残念ながら実際の活用には制約がかかる場面もあります。
本節では、2019/12 現在のWebAuthnを活用する上での既知の問題を整理します。

=== Safariのサポート

macOSではSafari 13からWebAuthnのサポートが開始されました。
iPhone/iPadではiOS 13.3のSafariから、WebAuthnのサポートが開始されました。どちらも外部セキュリティキーのサポートのみであり、
Touch ID/Face ID のサポートは始まっていません。

=== AndroidのResidentKey対応

AndroidのFIDO APIはResidentKey対応が完了していません。即ち、Chrome for AndroidとFirefox for Androidでは
ユーザーに対して認証時のID入力を省いた認証体験を提供することは出来ません。

NOTE: 登録時にLocalStorageにcredentialIdを保存し、認証時に読み出すことで疑似的にID入力の省略を実現することは可能ですが、
Roaming Authenticatorを利用して別デバイスで認証を行う場合には対応出来ないので注意が必要です。

=== Firefox

FirefoxはWindows 10 1903からOS標準のWebAuthn APIを利用することでCTAP2のAuthenticatorに対応しています。
macOSや、Linuxでは、FIDO U2FのAuthenticatorのみに対応しています。

=== ブラウザ間でのサポート状況の差異

各ブラウザ、WebAuthnへの対応が進みつつありますが、上記の通りサポート状況には差異があり、あるプラットフォームで
サポートされている機能が別のプラットフォームでは利用できないことは珍しくなりません。
ResidentKeyを活用してID入力の省略を実現する場合でも、Chrome、Firefoxユーザーを考慮してパスワードとの二要素認証のサポートを行う、
WebAuthnが利用できないユーザーを考慮してWebAuthn以外での二要素認証のサポートを行う、などフォールバック手段の確保に努めましょう。

=== ECDAAのサポート

WebAuthn4JはECDAA(Elliptic Curve based Direct Anonymous Attestation)アルゴリズムをサポートしていません。
ECDAAアルゴリズムはWebAuthn仕様でオプションとされており、主要ブラウザでもサポートされていない為、当面サポートする予定はありません。

=== PS256、PS384、PS512のサポート

WebAuthn4JはPS256、PS384、PS512アルゴリズムをサポートしていません。
PS256、PS384、PS512アルゴリズムはWebAuthn仕様でオプションとされており、Java Crypto APIでも標準のProviderではサポートされていない為、
当面サポートする予定はありません。
