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

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

Проверьте вход в систему 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. После заполнения полей нажмите Продолжить. В результе будет создан метод многофакторной аутентификации TOTPO.

  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 при входе в систему

Зафиксируйте метод аутентификации 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

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! в текстовом поле Пароль, затем нажмите Войти.

Авторизация