パスキーによる認証

Updated on November 6, 2024

パスキーを用いてパスワードの先へ

パスワードは脆弱で忘れやすく、フィッシング攻撃を受けやすいという誰もが認識する限界と課題を抱えています。一方パスキーは、オンライン認証に対する革新的な新しいアプローチであり、これらの問題に対処しパスワードレスの未来へつながる道を約束します。

パスキーは、公開鍵暗号方式に基づく新しいテクノロジーです。パスワードに代わり、ユーザーは生体認証(指紋、顔認識)、PIN、またはハードウェアセキュリティキーを使用してWebサイトやアプリに安全にサインインできます。パスキーを使用すると、複雑なパスワードの記憶やパスワードを繰り返し入力する必要がなくなり、ユーザーエクスペリエンスとセキュリティが向上します。

パスキーは、パスワードを公開鍵暗号のキーペアに置き換えることで、フィッシング耐性のあるサインインセキュリティとユーザーエクスペリエンスの向上を実現します。これらのキーペアは、コンピューター、電話、セキュリティキーなどのエンドユーザーデバイスからのユーザー認証に使用できます。パスワードレスのFIDO認証情報は、いずれもパスキーです。

Auth0 by Oktaが提供してるパスキー機能の詳細については、Passkeys for Auth0 Database Connectionsをご覧ください。

このテクノロジーを使用する理由

パスキーは、アプリやWebサイトにサインインするための革新的な新しい方法であり、パスワードなどの従来の認証手法に比べていくつかの魅力的な利点を提供します。

  • セキュリティの強化: パスキーは公開鍵暗号の特性とデバイスベースの認証によりパスワードよりも安全です。パスキーはWebサイトやアプリのドメイン名に関連付けられているため、異なるドメイン名を持った偽のWebサイトでユーザーを騙してパスワードを開示させるようなフィッシング攻撃に耐性があります。パスキーはユーザーのデバイスに保存され、公開鍵がサーバーに保存されるため、データ侵害に関連するリスクが軽減されます。

  • 直感的: パスキーは、パスワードマネージャーなどの資格情報を管理するツール利用が前提となるため、アカウントごとに複数のパスワードを覚えて管理する手間を排除できます。さらに、ユーザーは指紋、顔認識、またはPINを使用してサインインできるため、サインインのプロセスがシームレスで安全になります。

  • 業界の強力な支援: パスキーは、Apple、Google、Okta、Microsoftなどの大手テクノロジー企業の強力なコンソーシアムによって支えられ、さまざまなプラットフォームやデバイスでの広範な採用と互換性を確保されていっています。この広いサポートにより、パスワードからより安全で便利な認証手法へのスムーズな移行が容易になります。

  • プライバシーの強化: パスキーは、従来のパスワードやソーシャルログイン以上にプライバシーを重視して設計されています。パスキーはユーザーのデバイスにローカルで保存され、公開鍵がWebサイトやアプリと共有されます。

  • シンプルさ: このラボで示すように、Auth0 by Oktaではトグルボタンの切り替えで簡単にパスキーを使ったユーザ認証を実装できます。

Auth0 by Oktaはパスキーをはじめとした様々な認証機能をアプリケーションに導入できるアイデンティティソリューションです。

Auth0 by Oktaを利用することで開発者は自社サービスのコア機能に注力でき、リリースまでの期間を大幅に短縮できます。またシングルサインオンにも対応しており、複数サービスを統合するアイデンティティ基盤を構築できます。

ラボのセットアップ

最初に、このワークショップを実行するために必要なものがすべて揃っていることを確認しましょう。

Auth0テナントウィザード

Auth0テナントでパスキーを有効化

Auth0ダッシュボードにログインし、[Authentication]>[Database]>[Username-Password-Authentication] に移動します。

[Authentication Methods] タブをクリックして、認証方法の設定にアクセスします。

[Passkey] のトグルスイッチをクリックします。実際にパスキーを有効にできるかは、テナントの他の構成によって異なります。機能を有効にできた場合は、パスキー機能のテスト セクションへ移動してください。もしテナントが一部の要件を満たしていない場合、次のような画面で、パスキーを使用するための条件が表示されます。

パスキー機能が有効化するための条件を表示するモーダル

これらのパスキーの前提条件を詳しく見ていきましょう。

パスキーを使用するには、以下の機能を有効にする必要があります。

  • Identifier First login flow: 最初はID入力画面をユーザーに表示し、次にIDに応じてパスワードや顔/指紋認識システムでの確認などのアイデンティティを証明する2段階のフローです。これは、IDとパスワードのログインフロー(ユーザーがメールアドレスとパスワードの両方を単一の画面で入力できるフロー)とは異なります。

  • New Universal Login Experience :パスキーに必要なW3C Web Authentication (WebAuthn) APIのサポートなど、Classicと呼ばれている従来のユニバーサルログインに比べて多くの改善された機能を提供するユニバーサルログインです。

次に、以下の機能を無効にする必要があります。

  • Custom Login Page: パスキーのログインフローを利用する場合はカスタムログインページを使用できません。

  • Requires username: 現時点において、Auth0 by Oktaでパスキーを使用する場合、ユーザー名を入力するための追加のテキストフィールドを使用できません。

  • Use my own database: パスキーを利用する場合、Import Users to Auth0 を有効にしていない場合は、外部データベース (カスタム データベース) を利用できません。

新しく作成したテナントを使用している場合や、これまでに認証プロファイルをカスタマイズしなかった場合は、テナントの認証プロファイルを [Identifier First login flow] を使用するように設定する必要があると考えられます。

この場合、 [Passkey Authentication Prerequisites] モーダルで最初のオプションである[Identifier First login flow]を右クリックし、新しいブラウザウィンドウまたはタブでリンクを開いて前提条件に対応するように設定を変更します。

[Authentication Profile]ページで [Identifier First] を選択し、右上の [Save] ボタンをクリックして変更を保存します。

Authentication Profile設定ページ

[Identifier First] を選択するとログインとサインアップのフローが変更されます。この設定では、Googleのログインフローと同じく、メールアドレスを最初に表示した後、2番目のステップとして、パスワードなどの認証情報を入力する画面が表示されます。

[Username-Password-Authentication] ページに戻り、[Passkey] オプションを切り替えて有効にします。テナントでパスキーが有効になっていることを示す確認メッセージが表示されます。

Auth0 ダッシュボード - パスキーの有効化を確認

オプションで [Configure] をクリックして、パスキーのエクスペリエンスをさらにカスタマイズできますが、現時点で必要なのはデフォルトの構成だけです。

次に、パスキーのログインワークフローをテストします。

パスキー機能のテスト

[Database Connections]画面またはAuth0ダッシュボードから、[Try Connection] ボタンをクリックしてユニバーサルログインのプレビューを開始すると、パスキーでログインする新しいオプションが表示されます。

パスキーが有効になったAuht0 Universal Loginページ

ログインボックスの [Sign up] リンクをクリックして、新しいアカウントを作成します。

フィールドにメールアドレスを入力し、[Continue]ボタンをクリックします。次に、パスキーを作成するオプションが表示されます。

パスキー作成を促すモーダルダイアログ

[Create a passkey] ボタンをクリックします。パスキー作成のさまざまなオプションを示すポップアップが表示されます。

パスキーの作成と保存場所を選択するポップアップ

OSやデバイスによりますが、パスキーの保存場所を選択する必要があります。セキュリティキーやハードウェア端末にデバイス固有パスキーとして保存する方法や、Chrome(Googleアカウントを使用)、Appleのキーチェーン、またはパスキーをサポートするパスワードマネージャー(1Passwordなど)を使用し同期パスキーとして複数の端末で利用できるように保存する方法を選択できます。

ここまで問題なく設定できていれば、パスキーが登録され以下のページが表示されます。

ログイン後の確認ページ

これで、Auth0テナントでパスキーの有効化に成功しました。ダッシュボードに戻り再度、[Try Connection] ボタンからログイン画面を表示し、先ほど登録したパスキーでログインできることを確認してください。

まとめ

このラボでは、認証にパスキーを使用するようにAuth0を構成する方法を学び、認証の未来へと一歩進みました。

このラボでは、認証にパスキーを使用するようにAuth0を構成する方法を学び、認証の未来へと一歩進みました。 パスキーとAuth0の詳細については、ドキュメントのPasskeys for Auth0 Database Connectionsをご覧ください。

また、実際のアプリケーションに組み込むラボを下記にご用意しています。こちらもお試しください