Airlock поддерживает WebAuthn как второй фактор аутентификации. WebAuthn используется при входе в Airlock (airsh login или веб-интерфейс), а также при подключении к SSH-узлам и Kubernetes (airsh ssh, kubectl).

Поддерживаются аппаратные ключи (YubiKey, SoloKey) и биометрические аутентификаторы (Touch ID, Windows Hello).

Предварительные требования

  • Аппаратный ключ WebAuthn или встроенный биометрический аутентификатор.
  • Браузер с поддержкой WebAuthn.
  • Утилита airctl для настройки кластера.

Шаг 1. Включение WebAuthn

Динамическая конфигурация

Отредактируйте ресурс cluster_auth_preference:

airctl edit cap

Пример конфигурации:

kind: cluster_auth_preference
version: v2
metadata:
  name: cluster-auth-preference
spec:
  type: local
  second_factor: "on"
  webauthn:
    rp_id: airlock.example.com
    attestation_allowed_cas:
    - "/path/to/allowed_ca.pem"
    attestation_denied_cas:
    - "/path/to/denied_ca.pem"

Статическая конфигурация

Фрагмент /etc/airlock.yaml:

auth_service:
  authentication:
    type: local
    second_factor: on
    webauthn:
      rp_id: airlock.example.com
      attestation_allowed_cas:
      - "/path/to/allowed_ca.pem"
      attestation_denied_cas:
      - "/path/to/denied_ca.pem"

Перезапустите Auth Service после изменения.

Поля webauthn

ПолеОписание
rp_idПубличный домен Proxy Service (без https:// и порта)
attestation_allowed_casAllow list CA для проверки устройств при регистрации
attestation_denied_casDeny list CA — устройства с этими CA отклоняются

По умолчанию все устройства разрешены. Для ограничения моделей используйте attestation_denied_cas.

Начиная с Airlock v10, WebAuthn заменяет U2F. Существующие U2F-устройства поддерживаются автоматически.

Шаг 2. Регистрация устройства

Пользователь регистрирует WebAuthn-устройство:

airsh mfa add
# Choose device type [TOTP, WEBAUTHN]: webauthn
# Enter device name: desktop yubikey
# Tap any *registered* security key or enter a code from a *registered* OTP device:
# Tap your *new* security key
# MFA device "desktop yubikey" added.

Если при регистрации нужен только OTP как подтверждение (без WebAuthn):

airsh mfa add --mfa-mode=otp

Шаг 3. Вход через WebAuthn

После регистрации устройства при входе запрашивается подтверждение:

airsh login --proxy=airlock.example.com
# Enter password for Airlock user alice:
# Tap any security key or enter a code from a OTP device:
# > Profile URL:        https://airlock.example.com
#   Logged in as:       alice
#   Cluster:            airlock.example.com
#   Roles:              access, editor
#   Logins:             alice
#   Kubernetes:         enabled
#   Valid until:        2026-07-05 14:00:00 +0300 MSK [valid for 12h0m0s]

WebAuthn при входе в Airlock требуется только для локальных пользователей. Для SSO настройте MFA на стороне IdP.

Миграция с U2F

Если ранее использовался U2F, Airlock автоматически выводит конфигурацию WebAuthn из U2F. Сохраните поле u2f.app_id, чтобы не перерегистрировать устройства:

auth_service:
  authentication:
    type: local
    second_factor: on
    u2f:
      app_id: https://airlock.example.com
    webauthn:
      rp_id: airlock.example.com
      attestation_allowed_cas:
      - "/path/to/u2f_attestation_ca.pem"

Следующие шаги