KAYAKのパスキー導入によるユーザー認証の効率化とセキュリティ向上
KAYAKは、航空券、ホテル、レンタカーの最良の取引を見つけるための世界的な旅行検索エンジンの一つです。2023年、KAYAKはAndroid及びウェブアプリにおいて、パスキーと呼ばれる新しいタイプのパスワードレス認証を統合しました。この結果、ユーザーのサインアップとサインインにかかる時間を**50%**短縮し、サポートチケットの減少にも成功しました。
背景:パスワードからパスキーへ
KAYAKは、従来のパスワードに依存していましたが、パスワードは多くのリスクを伴います。例えば、パスワードは弱くて再利用されたり、推測されたり、フィッシング攻撃の対象になったりすることがあります。KAYAKの技術部門シニアバイスプレジデントであるマティアス・ケラー氏も、「パスワード認証を提供することは、ビジネスにとって多くの努力とリスクを伴う」と述べています。
これを改善するために、KAYAKはセキュリティ向上のために「マジックリンク」を導入しました。これは便利でしたが、ユーザーがログインプロセスのために別のアプリに切り替える必要があり、ユーザー体験には不便さが残りました。
ソリューション:パスキーの導入
KAYAKのAndroidアプリは、パスキーを使用することでユーザーフレンドリーで高速な認証体験を実現しました。パスキーは、ユーザーのデバイスに安全に保存され、複数のデバイスで同期可能です。ユーザーはパスワードを入力する必要なく、デバイスの画面ロックを使用してKAYAKにサインインできます。
Credential Manager APIの統合
KAYAKは、Credential Manager APIを利用してパスキーをAndroidに統合しました。Credential Managerは、Android 9(APIレベル28)以降のパスキーのサポートを統合し、従来のサインイン方法を一つのユーザーインターフェース及びAPIにまとめたJetpackライブラリです。これにより、ユーザー登録と認証のフローがシンプルになりました。
新規ユーザーの登録フロー
KAYAKは、新しい認証フローを構築する際に、下記の手順で進めました。
- ユーザーは、登録時にパスキーを作成する機会を得ます。
- ユーザーは、パスキー、Googleでのサインイン、またはパスワードを使用してサインインできます。
- ネットワークリクエストなどによる遅延を避けるため、アプリセッションの開始時に一時的なチャレンジやパスキーの設定を取得します。
ユーザーエクスペリエンスの考慮事項
KAYAKがパスキーに切り替える際に考慮した重要なユーザーエクスペリエンスの要素には、ユーザーがパスキーを削除できるのか、または複数のパスキーを作成できるのかが含まれます。ユーザーが同じアカウントに対して複数のパスキーを登録できないよう、KAYAKは既存の資格情報をリストするexcludeCredentialsプロパティを使用しました。
サーバーサイドの実装
KAYAKは、既存の認証バックエンドにWebAuthn4Jを利用してパスキーの機能を追加しました。このプロセスは、クライアントがサーバーからパスキーを作成または使用するために必要なパラメータをリクエストし、その後、取得した資格情報をサーバーに送信する形で進行します。
結果:ユーザーの満足度向上
パスキーを統合した結果、KAYAKはユーザー満足度が飛躍的に向上したと報告しています。ユーザーは、パスキーの方がパスワードよりも遥かに使いやすいと感じており、長く複雑な文字の列を記憶したり入力したりする必要がなくなります。また、KAYAKはサポートチケットが減少したことも確認しています。
KAYAKは2023年末までに、アプリ内のパスワードベースの認証を廃止する予定です。「パスキーにより、アカウント作成が瞬時に行え、別のアプリに移動する必要がなくなりました。これにより、パスキーを使用することでユーザーの完成率も向上しました。」とマティアス・ケラー氏は述べています。
結論
パスキーは、従来のパスワードに比べて大きな利点を提供する新しい革新的な認証ソリューションです。KAYAKの取り組みは、パスキーを統合することで認証プロセスのセキュリティと使いやすさを大幅に向上させた良い例となります。安全で使いやすい認証体験を求めるなら、AndroidのCredential Manager APIを使用したパスキーの導入をぜひ検討してみてください。