Skip to content
Работа с профилем
WebAuthn

WebAuthn (Authenticator Available)

PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() — это статический метод WebAuthn API в JavaScript, который возвращает Promise (Boolean).

Что он делает:

  • Проверяет, доступен ли на устройстве платформенный аутентификатор, который может выполнять user verification (например, отпечаток пальца, Face ID, Windows Hello).
  • Если такой аутентификатор есть и его можно использовать, метод вернёт true.
  • Если нет — false.

Зачем же он нужен:

  • Позволяет веб-приложению заранее понять, можно ли предложить пользователю вход через встроенные биометрические средства.
  • Используется для адаптации интерфейса: например, показывать кнопку «Войти с Face ID» только если устройство поддерживает это.
PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
  .then(available => {
    if (available) {
      console.log("Можно использовать встроенный аутентификатор (например, Windows Hello).");
    } else {
      console.log("На этом устройстве нет встроенного аутентификатора.");
    }
  });

На Windows и MacOS встроенные аутентификаторы для WebAuthn реализованы через системные механизмы биометрии и защиты ключей:

Windows

  • Используется Windows Hello — это встроенный платформенный аутентификатор.
  • Поддерживает вход по отпечатку пальца, распознаванию лица, PIN-коду, а также через встроенные модули безопасности (TPM).
  • Когда сайт вызывает WebAuthn, Windows Hello предоставляет приватный ключ, хранящийся в защищённой области устройства, и выполняет проверку пользователя.

MacOS

  • Используется Touch ID (на MacBook с датчиком) или Face ID (на некоторых устройствах Apple).
  • Ключи хранятся в Secure Enclave — отдельном аппаратном модуле для криптографии и биометрии.
  • Safari и другие браузеры на MacOS напрямую интегрированы с этим механизмом, поэтому WebAuthn может использовать встроенную биометрию без внешних ключей.

Общая идея

  • В обоих случаях WebAuthn работает через системный API: браузер вызывает или.
  • Операционная система проверяет пользователя (биометрия или PIN).
  • Приватный ключ никогда не покидает устройство, а сайт получает только криптографическую подпись, которую можно проверить публичным ключом.
  • Таким образом, на Windows встроенный аутентификатор — это Windows Hello, а на macOS — Touch ID / Face ID через Secure Enclave.

Статистика такова:

  1. На Windows - True - 50%, False - 50%
  2. На macOS - True - 100%