W3C Web Authentication (WebAuthn)

2019年3月6日 Stian Thorgersen 著

W3C Web Authentication (WebAuthn) は最近、正式なウェブ標準となりました。これは、ユーザーにとってより安全でシンプルな認証体験を実現するための素晴らしい一歩です。

パスワードやOTPなどの従来の認証は、ユーザーとウェブアプリケーションの間で共有された秘密を持つことに依存していますが、WebAuthnではそうではありません。WebAuthnは公開鍵ベースの認証情報を使用するため、ウェブアプリケーションはユーザーの秘密にアクセスできなくなります。また、鍵はウェブアプリケーションごとに一意であるため、フィッシング攻撃のリスクを排除できます。

WebAuthnは、ウェブアプリケーションが比較的シンプルなチャレンジ/レスポンスを通じて、多数のデバイス経由で認証するための標準プロトコルを提供します。主要なブラウザベンダーはすべて、WebAuthnとFIDO2をサポートしています。FIDO2は、ブラウザがさまざまなハードウェアデバイスと通信できるようにする仕様です。

WebAuthnは、二要素認証メカニズムとしても、パスワードレス認証を可能にするためにも使用できます。すでにWebAuthnと一緒に使用できるデバイスが多数存在します。YubiKeyThinCTitanなどのセキュリティキーが多数あります。また、多くの新しいラップトップには指紋スキャナーが内蔵されており、Androidでも最近、Android 7以降のデバイスで指紋スキャナーをWebAuthnで使用できるようになりました。

もちろん、近い将来、KeycloakにWebAuthnのサポートを導入することを計画しています。webauthn4jの開発チームは、WebAuthn用の高品質なJavaライブラリを作成するために懸命に取り組んでおり、まもなくKeycloakの拡張機能を用意できる見込みです。

まず、WebAuthnによる二要素認証に焦点を当て、その一環として、Keycloakに二要素認証に関する多くの改善をもたらします。詳細については、設計ドキュメントをご確認ください。

後に、パスワードレス体験もKeycloakに導入する予定です。これにより、KeycloakにIDファーストのログインフローも導入されます。ユーザーのIDを最初に要求することで、Keycloakはユーザーの好みに基づいてユーザーを認証する方法について、よりスマートな決定を下すことができます。たとえば、パスワードを要求する代わりに、セキュリティキーのボタンを押すようにユーザーに要求するなどです。

リソース