Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Настройка MFA с использованием TOTP

Данный функционал недоступен в StarVault, поставляемом в составе Nova.

Проверьте вход в систему StarVault с помощью метода LDAP авторизации:

starvault login -method=ldap username=w.kluge password='Foo_b_ar123!'
Пример вывода:
Успешно! Вы прошли аутентификацию. Информация о токене, отображаемая ниже, уже сохранена в помощнике токена. Вам НЕ нужно снова выполнять команду "starvault login". Будущие запросы StarVault будут автоматически использовать этот токен.
Key Value

token

hvs.CAESIEipBa8DtnBePdnrElWEc0WOh2ONelkG-i0wDLAeuHYiGh4KHGh2cy5LMFB6NFJzR0RxcTdncnh6ejdDdXNhTk4

token_accessor

s7FUF7n3f8BbWzzWRAW0zvXV

token_duration

768h

token_renewable

true

token_policies

["default"]

identity_policies

[]

policies

["default"]

token_meta_username

w.kluge

Для настройки метода MFA при входе в систему необходимо получить идентификационный токен пользователя w.kluge. После чего, необходимо экспортировать его значение в переменную среды ENTITY_ID для дальнейшего использования:

export ENTITY_ID=$(starvault login -method=ldap username=w.kluge \
    password='Foo_b_ar123!' -format=json \
    | jq -r '.auth.entity_id')

Для проверки идентификаицонного токена необходимо прописать следующий код:

echo $ENTITY_ID
fcf3f7bc-5042-11dd-53f5-917aaede9300

1. Способы включения метода многофакторной аутентификации при входе в систему

Чтобы применить метод аутентификации TOTP к методу LDAP, необходимо разрешить метод многофакторной аутентификации

Приложения-аутентификаторы не всегда поддерживают одни и те же алгоритмы шифрования. Вам следует узнать, какие алгоритмы поддерживает ваше предпочтительное приложение-аутентификатор. Приложение Google Authenticator, используемое в этом руководстве, поддерживает SHA256.

1.1. С помощью CLI

Добавьте метод MFA TOTP для входа в систему и присвойте его идентификатор метода переменной среды TOTP_METHOD_ID.

TOTP_METHOD_ID=$(STARVAULT_TOKEN=root starvault write identity/mfa/method/totp \
    -format=json \
    generate=true \
    issuer=StarVault \
    period=30 \
    key_size=256 \
    algorithm=SHA256 \
    digits=6 | jq -r '.data.method_id')

Проверьте значение, с помощью команды:

starvault read -format=json identity/mfa/method/totp/<method_id>

Чтобы вывести список всех настроенных методов MFA типа TOTP, доступных в текущем пространстве имен выполните команду:

starvault list -format=json identity/mfa/method/totp

1.2. С помощью веб-интерфейса

  1. В веб-консоли StarVault перейдите на страницу Доступ. Откройте вкладку Многофакторная аутентификация. Нажмите + Новый MFA метод.

    mfa 1
  2. Выберите TOTP и нажмите Далее. В открывшейся форме заполните следующие поля. Вы можете использовать значения из примера.

    mfa 2
    • Издатель (пример: mycompany) - название организации, выпускающей ключи.

    • Размер ключа (пример: 256) - размер в байтах ключа, сгенерированного StarVault.

    • Размер QR (пример: 256) - размер в пикселях сгенерированного квадратного QR-кода.

    • Алгоритм (пример: SHA1) - алгоритм хэширования, используемый для генерации TOTP-кода.

    • Цифры (пример: 6) - количество цифр в сгенерированном TOTP-коде.

    • Смещение (пример: 1) - количество допустимых периодов задержки при проверке TOTP-токена.

    • Максимальное количество попыток проверки (пример: 5) - максимальное количество попыток проверить TOTP-код.

    • Правило (пример: Пропустить этот шаг) - правило включает типы аутентификации, группы и сущности, которые будут требовать этот метод MFA. Это необязательно и может быть добавлено позже.

  3. После заполнения полей нажмите Продолжить. В результе будет создан метод многофакторной аутентификации TOTP.

  4. Вернитесь на страницу Многофакторная аутентификация к списку созданных методов. Скопируйте ID созданного метода.

    mfa 3
  5. Создайте политику test для генерации totp. Для этого перейдите на страницу Политики и нажмите + Создать ACL политику. В поле Название введите test. Добавьте политику:

    path "identity/mfa/method/totp/generate" {
      capabilities = ["update"]
    }

    Нажмите Создать.

  6. Создайте пользователя. Для этого в разделе Доступ перейдите к методу аутентификации userpass и в разделе Пользователи нажмите + Создать. В раскрывающемся блоке Токены добавьте созданную политику из пункта выше.

2. Генерация QR-кода в приложении-аутентификаторе

2.1. С помощью CLI

Введите следующий код для генерации QR-кода в формате PNG:

STARVAULT_TOKEN=root starvault write -field=barcode \
    /identity/mfa/method/totp/admin-generate \
    method_id=$TOTP_METHOD_ID entity_id=$ENTITY_ID \
    | base64 -d > /tmp/qr-code.png

Вы можете открыть изображение QR-кода из хост-системы разными способами в зависимости от вашей операционной системы. Вы можете использовать пример для Linux, macOS или Windows.

Linux

Если вы используете графическую среду в Linux, откройте изображение QR-кода следующим образом:

xdg-open /tmp/qr-code.png
macOS

Откройте изображение QR-кода:

open /tmp/qr-code.png
Windows

Откройте изображение QR-кода:

start /tmp/qr-code.png

Вы можете отсканировать это изображение с помощью приложения-аутентификатора, чтобы добавить StarVault TOTP. Для этого необходимо использовать приложение Google Authenticator.

2.2. С помощью веб-интерфейса

  1. Авторизуйтесь под учетной записью пользователя, созданного на предыдущем шаге.

  2. Нажмите на кнопку профиля. Выберите Многофакторная аутентификация.

    mfa 4
  3. Введите ID метода многофакторной аутентификации и нажмите Проверить.

    mfa 5
  4. Отсканируйте QR-код с помощью приложения-аутентификатора, чтобы добавить StarVault TOTP. Для этого можно использовать Google Authenticator или Яндекс ключ.

    mfa 6

3. Создание принудительного использования MFA при входе в систему

3.1. С помощью CLI

Зафиксируйте метод аутентификации LDAP для использования при создании принудительного применения MFA при входе в систему.

LDAP_ACCESSOR=$(STARVAULT_TOKEN=root starvault auth list -format=json \
    --detailed | jq -r '."ldap/".accessor')

Проверьте значение с помощью:

$ echo $LDAP_ACCESSOR
auth_ldap_cf1840a4

Создайте принудительный порядок:

STARVAULT_TOKEN=root starvault write /identity/mfa/login-enforcement/adtotp \
    mfa_method_ids="$TOTP_METHOD_ID" \
    auth_method_accessors=$LDAP_ACCESSOR
Пример вывода:
Успешно! Данные записаны в: identity/mfa/login-enforcement/adtotp

3.2. С помощью веб-интерфейса

Перейдите на страницу ДоступМногофакторная аутентификация. Откройте раздел Политики принуждения и нажмите + Новая политика принуждения.

enf 1

Заполните обязательные поля:

  • Название политики - уникальное название.

  • Из выпадающего списка выберите метод MFA, к которым будет применено правило.

  • Выберите цели - список типов аутентификации, точек монтирования аутентификации, групп, сущностей, для которых потребуется выбранная конфигурация MFA. Нажмите Добавить.

После заполнения настроек нажмите Создать.

3.3. Первичная настройка TOTP при принудительном использовании MFA

3.3.1. Пользователям

Данный функционал недоступен в StarVault, поставляемом в составе Nova.

Начиная с версии StarVault 1.5 вы можете самостоятельно настроить TOTP, если администратор включил принудительную MFA. Для этого выполните следующие шаги:

  1. Войдите в систему с помощью логина и пароля. Вводить TOTP-код не требуется.

    mfa enf 1

    В данном случае вход осуществляется без настроенного TOTP. Вы получаете ограниченную политику, которая имеет доступ только к генерации TOTP.

    mfa enf 2
  2. После входа нажмите в левом верхнем углу иконку профия и перейдите в раздел Многофакторная аутентификация и сгенерируйте QR-код для настройки TOTP.

    mfa enf 3
  3. Отсканируйте QR-код в приложении-аутентификаторе (например, Google Authenticator или Яндекс Ключ).

    mfa enf 4
  4. Нажмите кнопку Done.

После нажатия Done вы будете автоматически разлогинены. При следующем входе система уже запросит TOTP-код.

3.3.2. Администраторам

На странице ДоступСущности перейдите к блоку TOTP verified ids, в котором отображаются идентификаторы привязанных TOTP-методов.

mfa enf 5
  • Редактировать этот список через стандартное редактирование сущности нельзя.

  • Для каждого идентификатора в списке доступна кнопка Удалить.

Чтобы принудительно сбросить TOTP-секрет пользователя (например, при утере устройства):

  1. Нажмите кнопку Удалить рядом с нужным идентификатором.

    mfa enf 6
  2. Если операция выполнена успешно, страница обновится, и идентификатор исчезнет из списка.

  3. При следующем входе пользователь снова сможет войти без TOTP и настроить метод заново.

Если при удалении возникнет ошибка, она будет отображена в интерфейсе.

4. Вход в систему с помощью метода авторизации LDAP

Для этого необходимо использовать CLI, чтобы войти в систему с помощью метода LDAP авторизации во второй раз.

$ starvault login -method=ldap username=w.kluge password='Foo_b_ar123!'
Enter the passphrase for methodID "01194a79-e2d9-c038-029d-79b0091cafd0" of type "totp":

Введите код TOTP из приложения аутентификатора, когда появится запрос.

Пример успешного вывода:
Key Value

token

hvs.CAESIE6K0E7BjHv2m1Gj2IAriFhBfUsB6xjtechsRIhL6-wbGh4KHGh2cy5VNDFTZE9XMm96UUN0UDZ1WWtKQm94SkI

token_accessor

SXxDMVRc35h9OBIdbTAf52RO

token_duration

768h

token_renewable

true

token_policies

["default"]

identity_policies

[]

policies

["default"]

token_meta_username

w.kluge

Вы прошли аутентификацию в StarVault с помощью Active Directory. Нажмите exit, чтобы выйти из контейнера.

Логин по коду TOTP также поддерживается при аутентификации в пользовательском интерфейсе StarVault.

Введите адрес: http://127.0.0.1:8200.

В выпадающем меню Method выберите LDAP.

Введите w.kluge в текстовом поле Имя пользователя и Foo_b_ar123! в текстовом поле Пароль, затем нажмите Войти.

Авторизация