| sign_count
|
integer
|
-
|
origin
|
varchar
|
Дозволений origin.;=== 14.1.; Перевірка, чи потрібен WebAuthn ===
8.; | Найкращий варіант для адміністраторів і фінансів.; |}
|
-
|
Platform authenticator
|
-
|
challenge
|
text
|
Випадковий challenge.; * MDN PublicKeyCredential.; "transport": verification_result.get("transport"),
|
; "user_id": user.id,
5.; });
- бухгалтерський обліковий облік;
- фінансовий блок;
- HR;
- керівники;
- віддалені користувачі;
- поступова відмова від SMS.; {| class="wikitable"
"origin": "https://erp.example.com",
|
-
|
user_id
|
uuid
|
користувач системи.; },
"challenge": challenge,
)
18.4. Recoveryreturn await verifyResponse.json();
Критично істотно: приватний ключ ніколи не повинен потрапляти на сервер K2 ERP.; Поле
"user": {
expected_rp_id="erp.example.com",
credential.last_used_at = utc_now()
{| class="wikitable"
== 10.; технічна архітектура WebAuthn у K2 ERP ==
!; },
!; Поле
4.; Натискає «Додати passkey / security key».; 6.; |-
| Підтвердження платежу
| style="background:#ef9a9a;" | Фінансова втрата.; | Вхід блокується або вимагається реєстрація WebAuthn.; |-
| Dev origin
| https://dev-erp.example.com
| Має бути окремо дозволений тільки для dev/test.; | Унікальний ID credential.; Тип
user_id=user_id,
!; |-
| Вимкнення інтеграції
| style="background:#ffcc80;" | Зупинка бізнес-процесу.; | style="background:#ffcc80;" | Step-up WebAuthn
|}
=== 14.4.; Перевірка входу ===
=== 6.2.; Важливі перевірки під час входу ===
});
!; |-
| AC-18
| є собою користувач системи тільки з SMS.; | платформа вимагає step-up WebAuthn і логування.; | style="background:#ef9a9a;" | Обов’язково
|-
| style="background:#ef9a9a;" | центральний бухгалтер
| Податки, зарплати, фінансовий блок, документи.; Якщо все коректно — створюється сесія K2 ERP.; |-
| Origin
| Повний origin web-додатку.; |-
| event_type
| varchar
| REGISTERED, LOGIN_SUCCESS, LOGIN_FAILED, STEP_UP_SUCCESS, REVOKED, LOST.; |-
| status
| varchar
| PENDING, PASSED, FAILED, EXPIRED.; Backend перевіряє challenge, origin, RP ID і зберігає credential.; |-
| AC-19
| є собою втрачений credential.; const optionsResponse = await fetch("/api/v1/security/webauthn/registration/options", {
[[Категорія:ERP]]
!; WebAuthn перевіряє прив’язку credential до правильного домену, з цієї причини фішинговий сайт не зможе використати ключ для входу в справжню K2 ERP.; Очікуваний результат
db.commit()
POST /api/v1/security/webauthn/registration/verify
"MASS_EXPORT",
=== Етап 4.; Пілот ===
v
!; 10.; №
1.; |-
| Credential ID
| Ідентифікатор зареєстрованого ключа.; з цієї причини recovery має бути контрольованим.; def is_webauthn_required(user: "User", action: str | None = None, context: dict | None = None) -> bool:
* [[K2 ERP]]
* [[Кібербезпека ERP]]
* [[MFA]]
* [[2FA]]
* [[FIDO2]]
* [[WebAuthn]]
* [[CTAP2]]
* [[Passkeys]]
* [[Security Key]]
* [[TOTP]]
* [[API Security]]
* [[Журнал аудиту]]
* [[Incident Response]]
* [[Zero Trust]]
{| class="wikitable"
event_type="WEBAUTHN_LOGIN_SUCCESS",
{| class="wikitable"
"public_key": verification_result ["public_key"],
<syntaxhighlight lang="javascript">
!; * Внутрішні вимоги K2 ERP до доступів, MFA, WebAuthn, журналювання та критичних дій.; Роль / зона
return True
== 20.; Джерела ==
* мінімум два credentials для адміністраторів;
* резервний hardware security key;
* recovery codes;
* заявку на відновлення;
* перевірку особи користувача;
* погодження другим адміністратором;
* журнал recovery;
* відкликання втраченого credential;
* обов’язкову реєстрацію нового credential;
* тимчасовий доступ із коротким TTL.; |-
| backup_state
| boolean
| Чи credential зараз у backup-синхронізації.; |-
| device_name
| varchar
| Назва пристрою або ключа.; | Credential позначається LOST або REVOKED.; )
Platform Authenticator / Security Key
!; | Windows Hello, Touch ID, Face ID, Android passkey.; |}
POST /api/v1/security/webauthn/authentication/options
]:
!; | style="background:#ffcc80;" | Рекомендовано
|-
| style="background:#ffcc80;" | Масовий експорт
| Ризик витоку даних.; |-
| Масовий експорт клієнтів
| style="background:#ef9a9a;" | Витік бази.; Автентифікатор підписує challenge приватним ключем.; Очікуваний результат
=== 18.1.; Реєстрація WebAuthn ===
2.; | style="background:#c8e6c9;" | Step-up WebAuthn + audit log.;<pre>
!; |-
| user_id
| uuid
| користувач системи.; |}
db.commit()
!; |-
| user_verified_required
| boolean
| Чи вимагалась user verification.; Значення
!; |-
| expires_at
| timestamp
| Строк дії.; Backend знаходить credential_id і public key.; Чому потрібен WebAuthn
!; |-
| user_id
| uuid
| користувач системи.; |-
| credential_record_id
| uuid
| Credential, якщо є собою.; Параметр
return False
"authenticatorSelection": {
<pre>
"attestation": "none"
У контексті K2 ERP WebAuthn надає можливість:
!; У K2 ERP зберігаються тільки public key, credential_id, sign_count, metadata і статус credential.; Ризик
db.commit()
"authenticator_type": verification_result.get("authenticator_type"),
1.; Значення
{| class="wikitable"
const verifyResponse = await fetch("/api/v1/security/webauthn/registration/verify", {
<div style="border-left: 8px solid #2e7d32; background: #e8f5e9; padding: 14px 18px; margin: 16px 0;">
MDN зазначає, що public key credential має змогу використовуватись для автентифікації тільки з тим самим relying party, з яким він був зареєстрований, і RP ID має збігатися під час `navigator.credentials.get()`.; |-
| Passkey
| FIDO credential, прив’язаний до акаунта користувача.; |}
"credential_id": verification_result ["credential_id"],
=== 11.1.; Почати реєстрацію credential ===
}
</pre>
* фінансові документи;
* банківські виписки;
* платежі;
* зарплати;
* податкові інформаційні дані;
* договори;
* контрагенти;
* реквізити;
* ціни;
* знижки;
* залишки;
* виробництво;
* управлінська формування звітів;
* інтеграції з банками, ПРРО, маркетплейсами, доставкою та електронним підписом.; |-
| last_used_at
| timestamp
| Останнє використання.; !; |-
| AC-8
| Credential відкликаний.; |-
| FIDO2
| Набір стандартів для сильної автентифікації.; * W3C WebAuthn Level 2.; const credential = await navigator.credentials.create({
* WebAuthn registration;
* WebAuthn authentication;
* credential storage;
* challenge storage;
* RP ID validation;
* origin validation;
* sign_count validation;
* credential revocation;
* lost credential flow;
* WebAuthn events;
* dashboard.; Frontend викликає navigator.credentials.create().; характеристика
</pre>
Browser WebAuthn API
== 8.; Де WebAuthn має бути обов’язковим у K2 ERP ==
<pre>
});
__TOC__
v
"user_id": user_id,
!; event_type="WEBAUTHN_LOGIN_FAILED",
* реєструвати passkeys;
* реєструвати hardware security keys;
* входити без пароля або з сильним другим фактором;
* виконувати step-up підтвердження критичних дій;
* захищати користувачів від phishing;
* зберігати в ERP тільки публічний ключ, а не секрет користувача.; Критерій
== Див.; 21.; додатково ==
9.; "aaguid": verification_result.get("aaguid"),
!; |-
| AC-14
| Admin recovery.;<pre>
=== 11.5.; Список credential користувача ===
headers: { "Content-Type": "application/json" }
publicKey: options.publicKey
== 9.; Step-up WebAuthn для критичних дій ==
=== 11.7.; Позначити credential як втрачений ===
if user.role in ["SUPER_ADMIN", "ADMIN", "CFO", "CHIEF_ACCOUNTANT"]:
K2 ERP Backend
WebAuthn — це технічна основа сучасного безпечного входу в ERP.; |-
| status
| varchar
| ACTIVE, LOST, DISABLED, REVOKED.; характеристика
async function loginWithWebAuthn(email) {
!; Критерій
== 12.; Модель даних WebAuthn ==
<pre>
|-
| admin2
| Адміністратор
| style="background:#ef9a9a;" | TOTP без WebAuthn
| style="background:#ef9a9a;" | Критично
| Видати security key
|-
| buh_olena
| Бухгалтер
| style="background:#ffcc80;" | SMS
| style="background:#ffcc80;" | Високий
| Перевести на WebAuthn або TOTP
|-
| cfo
| Фіндиректор
| style="background:#c8e6c9;" | WebAuthn security key
| style="background:#c8e6c9;" | Добре
| Без дії
|-
| director
| Керівник
| style="background:#c8e6c9;" | Passkey
| style="background:#c8e6c9;" | Добре
| Без дії
|}
== 3.; Чому WebAuthn важливий саме для ERP ==
data={
* знайти всіх адміністраторів;
* знайти користувачів фінансових ролей;
* знайти бухгалтерію;
* знайти HR / зарплату;
* знайти керівників;
* знайти користувачів із віддаленим доступом;
* знайти користувачів тільки з SMS;
* знайти користувачів без MFA.; | Загальна технологічна основа WebAuthn + CTAP2.; * FIDO Alliance: Passkeys.; Що означає
publicKey: options.publicKey
7.; "origin": verification_result.get("origin"),
2.; |-
| Public key
| Публічний ключ, який зберігається на сервері.; Поле
method: "POST",
== 1.; Що таке WebAuthn ==
'''Ризик без WebAuthn:''' SMS, email-код або TOTP можуть бути введені на фальшивому сайті.; |}
</div>
challenge = webauthn_service.generate_challenge()
=== Етап 2.; Політика WebAuthn ===
== 2.; WebAuthn, FIDO2, CTAP2 і passkeys ==
[[Категорія:FIDO2]]
| style="background:#c8e6c9;" | Step-up WebAuthn + alert.; |-
|
Створення API token
|
Прихований доступ до ERP.; | Він підсвічується червоним.; №
"CHANGE_BANK_DETAILS",
if not is_valid:
assertion_response=assertion_response,
18.2.; Вхід через WebAuthn
=== 5.1.; Бізнес-процес ===
ERP — це платформа, де викрадений доступ має змогу призвести не тільки до витоку даних, а й до прямої фінансової шкоди.; method: "POST",
if action in [
)
body: JSON.stringify(assertion)
"publicKey": {
== 16. Dashboard WebAuthn ==
}
Потрібно передбачити:
)
|-
| Super Admin із WebAuthn
| 100%
| style="background:#c8e6c9;" | Норма
|-
| Адміністраторів із WebAuthn
| 100%
| style="background:#c8e6c9;" | Норма
|-
| Фінансових ролей із WebAuthn
| 82%
| style="background:#ffcc80;" | Потрібна дія
|-
| Бухгалтерів із WebAuthn
| 76%
| style="background:#ffcc80;" | Потрібна дія
|-
| Користувачів тільки з SMS
| 18
| style="background:#ef9a9a;" | Замінити
|-
| Втрачених credentials
| 2
| style="background:#ffcc80;" | Контроль
|-
| Credentials без використання понад 90 днів
| 11
| style="background:#fff9c4;" | Перевірити
|-
| Підозрілих WebAuthn-помилок
| 3
| style="background:#ef9a9a;" | Критично
|}
"name": "K2 ERP",
credential = webauthn_credential_repository.get_by_credential_id(
payload={"credential_record_id": str(credential.id)},
webauthn_challenge_repository.create(
!; користувач системи
def verify_webauthn_login(user: "User", assertion_response: dict, db: "Session") -> bool:
],
11.6.; Відкликати credential
"rp_id": "erp.example.com",
17.; План впровадження WebAuthn у K2 ERP
;
WebAuthn можна використовувати не тільки для входу, а й для повторного підтвердження небезпечних операцій.; | платформа вимагає step-up WebAuthn.; Такі credentials прив’язані до акаунта користувача на сайті чи в застосунку.; |-
| challenge_type
| varchar
| REGISTRATION, LOGIN, STEP_UP, RECOVERY.; |-
| Зміна ролі користувача
| style="background:#ef9a9a;" | Розширення доступу.; def create_webauthn_registration_options(user: "User", db: "Session") -> dict:
return True
7.; характеристика
9.; | style="background:#ef9a9a;" | Обов’язково
|-
| style="background:#ef9a9a;" | Фінансовий директор
| Банки, платежі, бюджети, управлінська формування звітів.; Відкриває «конфігурація безпеки».; });
!; Браузер звертається до passkey або security key.; Frontend викликає navigator.credentials.get().;</syntaxhighlight>
return {
"name": user.email,
|-
| AC-1
| користувач системи додає passkey.; |-
| Roaming authenticator
| Переносний автентифікатор.;<div style="border-left: 8px solid #c62828; background: #ffebee; padding: 14px 18px; margin: 16px 0;">
return credential
!;</div>
* визначити ролі, для яких WebAuthn обов’язковий;
* визначити дозволені типи credential;
* визначити, чи дозволені synced passkeys;
* визначити, чи потрібні hardware keys для admin;
* визначити recovery-процедуру;
* визначити step-up WebAuthn для критичних дій.; "CREATE_API_TOKEN",
{"type": "public-key", "alg": -257}
}
headers: { "Content-Type": "application/json" },
audit_logger.log(
'''Червона зона:''' адміністратори, фінансовий блок, бухгалтерський обліковий облік або керівники входять у ERP через пароль, SMS або email-код без WebAuthn.; Поняття
"sign_count": verification_result.get("sign_count", 0),
POST /api/v1/security/webauthn/credentials/{credential_id}/revoke
"user_verified_required": True,
"timeout": 300000,
K2 ERP:''' реалізувати WebAuthn як технічну основу для FIDO2 забезпечується через '''Правильне рішення для бізнесу; додатково реалізовано passkeys і hardware security keys, щоб забезпечити безпечний вхід, step-up підтвердження критичних дій і захист від phishing.; | Зберігається в K2 ERP.; | style="background:#ef9a9a;" | Обов’язково
|-
| style="background:#ffcc80;" | HR / зарплата
| Персональні та зарплатні інформаційні дані.;<pre>
<syntaxhighlight lang="javascript">
!; |-
| AC-4
| Origin неправильний.; Критерій
== 13.; Приклад frontend-логіки ==
is_valid = webauthn_service.verify_assertion(
|-
| id
| uuid
| ID події.; |-
| Origin
| https://erp.example.com
| Конкретний origin web-додатку.; | Він показується в контрольному списку.; Критерій
method: "POST",
"backup_eligible": verification_result.get("backup_eligible"),
const verifyResponse = await fetch("/api/v1/security/webauthn/authentication/verify", {
WebAuthn функціонує через об’єкт `PublicKeyCredential`.; |}
db=db,
5.2.; Важливі перевірки під час реєстрації
)
13.1.; Реєстрація passkey / security key
| id
|
uuid
|
ID challenge.; операційна дія
POST /api/v1/security/webauthn/step-up/verify
|
Опційно застосовують, коли потрібно під час реєстрації.; event_type="WEBAUTHN_CREDENTIAL_REGISTERED",
- super admin;
- адміністратори;
- фінансовий директор;
- центральний бухгалтер;
- 5–10 power users;
- перевірка recovery;
- перевірка step-up дій.; method: "POST",
const assertion = await navigator.credentials.get({
)
expected_origin="https://erp.example.com",
|
style="background:#c8e6c9;" | Step-up WebAuthn + погодження.; |-
|
AC-7
|
Реєстрація відхиляється.; |-
|
RP ID
|
-
|
Неправильний origin
|
https://fake-erp.example.net
|
Повинен бути відхилений.; * challenge збігається з тим, який був створений сервером;
- challenge не прострочений;
- origin дозволений;
- RP ID правильний;
- credential ще не зареєстрований;
- user_id відповідає активному користувачу;
- user verification виконано, якщо це вимагається політикою;
- алгоритм підпису підтримується;
- public key коректно витягнуто та збережено;
- credential_id унікальний.; Термін
{{SEO
!; Поточний метод
)
'''Зелена зона:''' K2 ERP використовує WebAuthn / passkeys / security keys для критичних ролей, step-up WebAuthn для небезпечних операцій, dashboard покриття credentials, журнал подій і контроль recovery.; * FIDO Alliance: User Authentication Specifications Overview.; 6.; Приклад
{| class="wikitable"
== 7.; RP ID та Origin ==
});
},
|-
| AC-10
| користувач системи змінює банківські реквізити.; user_id=user.id,
|
},
async function registerWebAuthnCredential() {
RP ID і Origin — критичні для безпеки WebAuthn.; |-
| payload
| jsonb
| Технічні інформаційні дані без секретів.;</pre>
user_id=user.id,
v
=== Етап 5.; Масове впровадження ===
payload={"credential_record_id": str(credential.id)},
{| class="wikitable"
</pre>
"status": "PENDING",
"id": str(user.id),
v
return False
=== 18.5. Dashboard ===
8.; |-
| CTAP2
| Протокол взаємодії браузера / ОС із зовнішнім автентифікатором.; Frontend передає assertion response на backend.; | Він підсвічується червоним або помаранчевим.; | style="background:#c8e6c9;" | Step-up WebAuthn адміністратора.; |-
| authenticator_type
| varchar
| PLATFORM або ROAMING.; №
!; Passkey — це FIDO-облікові інформаційні дані, які дозволяють входити в застосунки та сайти так само, як користувач системи розблоковує пристрій: біометрією, PIN або pattern.; |-
| origin
| varchar
| Origin реєстрації.; Дія
require_user_verification=True,
{"type": "public-key", "alg": -7},
return user.security_policy.require_webauthn_for_remote_access
headers: { "Content-Type": "application/json" },
"challenge_type": "REGISTRATION",
14.3.; Збереження credential
16.1.; KPI адміністратора безпеки
; Орієнтир стандарту: WebAuthn — це W3C Web Authentication API для доступу до public key credentials.; Стан
db=db,
if context and context.get("remote_access") is True:
</div>
=== 13.2.; Вхід через WebAuthn ===
{{DISPLAYTITLE:WebAuthn для ERP: стандарт безпечного входу в K2 ERP через FIDO2 та passkeys}}
}
audit_logger.log(
"residentKey": "preferred"
Етап 3.; Технічна реалізаціяbody: JSON.stringify(credential)
19.; Висновокdef save_webauthn_credential(user_id: str, verification_result: dict, db: "Session") -> "WebAuthnCredential":
12.2. webauthn_challenges"pubKeyCredParams": [
користувач системи має змогу втратити пристрій, security key або доступ до passkey.; Вводить email або обирає passkey-вхід.; | Не передається в K2 ERP.; |-
| AC-2
|
користувач системи додає hardware security key.; 4.;=== 16.2.; Проблемні користувачі ===
"authenticator_type": credential.authenticator_type,
18. Acceptance Criteria
"userVerification": "required",
Credential Storage + Audit Log
</div>
* W3C WebAuthn Level 3.; | Перевіряється сервером.; |-
| transport
| varchar
| USB, NFC, BLE, INTERNAL.; | K2 ERP.; !; Приклад
5.; Браузер звертається до автентифікатора.; |}
const options = await optionsResponse.json();
'''Критично істотно:''' не можна дозволяти wildcard origin або приймати будь-який домен.; |-
| aaguid
| varchar
| Ідентифікатор моделі автентифікатора.; Це основа сучасної phishing-resistant автентифікації, яка надає можливість K2 ERP захищати адміністраторів, фінансовий блок, бухгалтерію, HR, керівників і критичні операції краще, ніж SMS, email-коди або звичайні OTP.; headers: { "Content-Type": "application/json" },
Backend K2 ERP повинен перевірити:
== 5.; Як функціонує реєстрація WebAuthn ==
|-
| id
| uuid
| ID запису.; MDN описує `PublicKeyCredential` як credential для входу в сервіс через стійку до phishing і витоків пару асиметричних ключів — public/private key pair — замість пароля.; користувач системи підтверджує вхід на пристрої.; | YubiKey, Feitian, Titan Key або інший FIDO2-ключ.; Backend перевіряє підпис, origin, RP ID, challenge і sign_count.; | style="background:#ef9a9a;" | Обов’язково
|-
| style="background:#ef9a9a;" | Адміністратор
| Ролі, права, конфігурація, API token, інтеграції.; K2 ERP створює authentication challenge.; | style="background:#c8e6c9;" | Step-up WebAuthn + двоетапне погодження.; |-
| ip_address
| varchar
| IP.; Рівень
11.; Для production K2 ERP список дозволених origin має бути жорстко визначений.; | erp.example.com або example.com.; |}
});
"displayName": user.full_name,
POST /api/v1/security/webauthn/registration/options
payload={
body: JSON.stringify({ email })
|-
| AC-16
| Адміністратор відкриває dashboard WebAuthn.; Очікуваний результат
== 4.; Основні поняття WebAuthn ==
У K2 ERP можуть бути:
!; характеристика
</div>
== 11.; API K2 ERP для WebAuthn ==
!; const optionsResponse = await fetch("/api/v1/security/webauthn/authentication/options", {
|-
| style="background:#ef9a9a;" | Super Admin
| Повний контроль над ERP.; '''Критично істотно:''' recovery-процедура не повинна обходити WebAuthn без контролю.; |-
| Private key
| Приватний ключ, який залишається в автентифікаторі.;
|
; Критерій
if not credential or credential.status != "ACTIVE":
data={
POST /api/v1/security/webauthn/step-up/options
14.2.; Створення registration options
6.; Як функціонує вхід через WebAuthn
15.; Recovery та втрата credential
|
style="background:#ffcc80;" | Рекомендовано
|
| Керівники
|
-
|
Attestation
|
Зручний вхід у K2 ERP через пристрій, біометрію або PIN.; | Base64url random bytes.; |-
|
created_at
|
timestamp
|
-
|
created_at
|
timestamp
|
}
|
Credential реєструється як roaming authenticator.; Окремо варто відзначити вбудований у браузери і платформи для підтримки FIDO Authentication, а CTAP2 надає можливість використовувати зовнішні автентифікатори через USB, NFC або BLE.; Контроль
|
Вхід відхиляється.; |-
|
Assertion
|
надає можливість K2 ERP реєструвати ключі та перевіряти вхід.; | style="background:#ffcc80;" | Рекомендовано
|
| Віддалений доступ
|
Вищий ризик phishing і компрометації.; Роль у K2 ERP
Головне правило: для ERP, яка керує фінансами, зарплатами, договорами, складом і управлінською звітністю, WebAuthn має стати стандартом для критичних ролей.; |-
|
AC-12
|
-
|
backup_eligible
|
boolean
|
-
|
AC-15
|
Recovery завершено.; Тип
},
audit_logger.log(
|
| Relying Party
|
-
|
user_agent
|
text
|
PIN, Touch ID, Face ID, Windows Hello.; |-
|
RP ID
|
erp.example.com
|
платформа вимагає step-up WebAuthn.; |-
|
risk_score
|
integer
|
-
|
AC-3
|
-
|
rp_id
|
varchar
|
-
|
User verification
|
-
|
AC-17
|
Реєстрація відхиляється.; Тип
11.4.; Завершити автентифікацію
|
| Зміна банківських реквізитів
|
Підміна рахунку.; Роль
|
| WebAuthn
|
Сесія створюється після успішної перевірки assertion.; | Реєстрація не приймається.; |}
|
-
|
rp_id
|
varchar
|
RP ID.;
"rp": {
GET /api/v1/security/webauthn/credentials
Backend K2 ERP повинен перевірити:
|
18.3. Step-up WebAuthn
|
|
verify challenge, origin, rpId, signature
3.; POST /api/v1/security/webauthn/authentication/verify
3.; №
"expires_at": utc_now_plus_minutes(5),
|
|
navigator.credentials.create()
|
navigator.credentials.get()
"CHANGE_USER_ROLE",
11.8. Step-up WebAuthn
|
|
-
|
created_at
|
timestamp
|
Credential реєструється, public key зберігається.; |-
|
AC-11
|
Подія логуються, користувач системи реєструє новий credential.; №
WebAuthn — це стандартний web API, який надає можливість сайту або web-додатку виконувати автентифікацію користувача за допомогою криптографічних ключів замість або на додаток до пароля.; користувач системи підтверджує дію PIN, біометрією або дотиком до ключа.; |-
|
AC-9
|
-
|
Security key
|
Фізичний FIDO2-ключ.; Ризик
K2 ERP Frontend
11.3.; Почати автентифікацію
return await verifyResponse.json();
|
| AC-6
|
-
|
AC-5
|
RP ID неправильний.; Очікуваний результат
|
|
|
|
|
|
|