Задать вопрос
vo0ov
@vo0ov
Кодер на python

Windows просит USB-ключ, а мне нужен PIN. Как включить проверку пароля/PIN в Windows Hello?

Windows всегда требует вставить FIDO2-ключ, а у меня есть лишь PIN (Windows Hello). Как сделать, чтобы при вызове `navigator.credentials.get({ userVerification: "required" })` система запрашивала PIN, а не аппаратный ключ? Возможно ли вообще использование пароля ОС, если нет физического ключа? Пробовал это, но просит ключ, а не PIN:
const credentialId = "AQIDBAUGBwgJ";  

function base64ToArrayBuffer(base64String) {
  const padding = '='.repeat((4 - (base64String.length % 4)) % 4);
  const base64 = (base64String + padding)
    .replace(/\-/g, '+')
    .replace(/_/g, '/');
  const rawData = window.atob(base64);
  const outputArray = new Uint8Array(rawData.length);
  for (let i = 0; i < rawData.length; i++) {
    outputArray[i] = rawData.charCodeAt(i);
  }
  return outputArray.buffer;
}

const challengeBytes = new Uint8Array([21, 57, 200, 13, 99, 42]);

const publicKey = {
  challenge: challengeBytes,
  allowCredentials: [{
    id: base64ToArrayBuffer(credentialId),
    type: "public-key"
  }],
  userVerification: "required",
  authenticatorSelection: {
      authenticatorAttachment: 'platform',
      residentKey: 'required'
    }
};

(async () => {
  const assertion = await navigator.credentials.get({ publicKey });
  console.log(assertion);
})();
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
mrusklon
@mrusklon
Не получается? Яростно гугли!
попробуй поигратся с residentKey: 'required' , вообще винда должна просить по приоритету, если ключ зарегистрирован просит его, если нет то что то другое

upd
гугл говорит
Убираем allowCredentials, чтобы Windows могла выбрать любой доступный метод.
Убираем authenticatorSelection, чтобы система автоматически выбрала доступный способ аутентификации.
Оставляем userVerification: "required", чтобы потребовать PIN.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы