メインコンテンツへスキップ
を設定すると、ユーザーはパスワードの代わりにデバイス生体認証を使用した WebAuthn で認証できるようになります。 デバイス生体認証を使用する WebAuthn は、現在利用できる認証要素の中で、セキュリティと使いやすさを最も高いレベルで両立できる方式です。セキュリティを損なうことなく、ログイン時の負担を大幅に軽減できます。
この機能を使用するには、Auth0 のデータベース接続が必要です。Auth0 Dashboard > Authentication > Database に移動して、データベース接続を選択してください。詳細については、データベース接続 を参照してください。

前提条件

デバイス生体認証を使用する WebAuthn で を有効にするには、次の設定が必要です。
  1. Universal Login が有効になっており、Dashboard > Universal Login でログインページの HTML がカスタマイズされていないことを確認します。
  2. Dashboard > Authentication ProfileIdentifier First + Biometrics を選択します。これにより、まだ有効になっていない場合は、多要素認証セクションで デバイス生体認証を使用する WebAuthn が自動的に有効になります
  3. カスタム データベース接続 を使用している場合は、Import ModeOn に設定されていることを確認してください。設定されていない場合は、同じ効果を得るために getUser スクリプト を実行することもできます。

仕組み

username またはメールアドレスとパスワードで認証するユーザーのうち、デバイス生体認証を使用する WebAuthn を利用できるデバイスを使用している場合は、そのデバイスを登録するオプションが表示されます。
特定のドメインに対して WebAuthn を使用した Face ID ログインを設定する例
この機能を有効にすると、「Login Faster on This Device」ダイアログ ボックスに、ユーザー向けのいくつかの選択肢が表示されます。ユーザーはデバイスを登録するか、登録をスキップして表示されるプロンプトの回数を減らすかを選択できます。
オプション説明
Continueユーザーに生体認証要素の登録を促します
Remind me later登録をスキップし、2 週間後に再度登録を促します
Not on this device1 年間、またはユーザーのブラウザーに Auth0 Cookie が保存されている間は、登録を促しません
ログイン - webauthn biometrics - このデバイスでよりすばやくログイン
ユーザーがデバイスの登録を選択すると、そのデバイスから次回認証するときに、デバイスの生体認証またはパスワードを使用するオプションが表示されます。
ドメインへのログインに指紋認証または顔認証を使用する例
この機能は「段階的登録」と呼ばれ、開発者とユーザーの双方が WebAuthn ベースの認証へできるだけ簡単に移行できるように設計されています。

多要素認証

デバイス生体認証を使用する WebAuthn では、を行う際に、別の認証方式を要求せずに済みます。デバイス生体認証を使用する WebAuthn は、2 つの要素を 1 つにまとめます。つまり、所持しているもの (デバイス) と、本人そのものであるもの (生体認証) または知っているもの (パスコード) です。 これには次のような影響があります。
  • ダッシュボードで MFA を有効にしている場合でも、ユーザーが第 1 要素として生体認証付き WebAuthn で認証していれば、Auth0 は MFA を求めるプロンプトを表示しません。
  • MFA が有効な状態でユーザーが新しいアカウントを作成すると、次のようになります。
    • username/password を使用してユーザーを作成します。
    • MFA に登録し、生体認証以外の認証方式を設定して、どのデバイスでも MFA を完了できるようにします。
    • 必要に応じてデバイス生体認証にも登録します。
次回のログイン時には、password + 別の認証方式、またはデバイス生体認証でログインできます。
  • ユーザーが WebAuthn 生体認証のみを使用して認証した場合、amr 値は mfa に設定されます。
  • 拡張性プラットフォームから MFA を有効にする場合は、ユーザーがどのように認証したかを考慮して、MFA を求めるかどうかを判断できます。以下のルールは、ユーザーが webauthn-platform 認証方式で認証していない場合にのみ MFA を実行します。
javascript
function (user, context, callback) {
  let authMethods = context.authentication.methods;

  const amr = authMethods.find((method) => method.name === 'webauthn-platform');

  if (!amr) {
    context.multifactor = {
      provider: 'any',
      allowRememberBrowser: false
    };
  }
  return callback(null, user, context);
}
次のPost Login Actionでも同じ効果が得られます:
javascript
exports.onExecutePostLogin = async (event, api) => {
  let authMethods = event.authentication.methods;

  let amr = authMethods.find((method) => method.name === 'webauthn-platform');

   if (!amr) {
     api.multifactor.enable('any');
  }
};

デバイス認識

Auth0 はルールを使用して、デバイスがすでに登録済みかどうかを判断し、必要に応じてユーザーに登録を促します。詳しくは、Configure WebAuthn with Device Biometrics for MFAデバイス認識 を参照してください。 ユーザー列挙攻撃を防ぐため、Auth0 が第 1 要素として生体認証を求めるのは、ユーザーが既知のデバイスからログインしている場合だけです。既知のデバイスでない場合は、パスワードでログインする必要があります。 例:
  • ユーザーが Windows 上の Chrome からログインし、Windows Hello に登録しているとします。登録情報の一部として、Auth0 はそのユーザーが Windows デバイスから登録したことを認識し、ユーザーエージェントを識別するための「既知のデバイス」を保存します。
  • 次回そのユーザーが Chrome からログインすると、パスワードの代わりに Windows Hello を使用するよう求められます。
  • その後、ユーザーが Windows 上の Firefox からログインした場合は、「既知のデバイス」Cookie が存在しないため、パスワードでログインする必要があります。すでに Windows Hello に登録済みであるため、再度登録を求められることはありません。
  • 次回そのユーザーが Firefox からログインすると、Windows Hello を使用するよう求められます。
これにより、ユーザーにアカウントがあるかどうか、またはそのサイトへの認証に WebAuthn のデバイス生体認証を使用したかどうかを、攻撃者に知られることはありません。

Webauthn.me

Auth0 は webauthn.me を運営しており、WebAuthn に関する詳細情報と、WebAuthn をサポートしているブラウザーの最新一覧を確認できます。

詳しく見る