Настройка MFA с использованием TOTP
|
Данный функционал недоступен в StarVault, поставляемом в составе Nova. |
Проверьте вход в систему StarVault с помощью метода LDAP авторизации:
starvault login -method=ldap username=w.kluge password='Foo_b_ar123!'
Успешно! Вы прошли аутентификацию. Информация о токене, отображаемая ниже, уже сохранена в помощнике токена. Вам НЕ нужно снова выполнять команду "starvault login". Будущие запросы StarVault будут автоматически использовать этот токен.
| Key | Value |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Для настройки метода 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. С помощью веб-интерфейса
-
В веб-консоли StarVault перейдите на страницу Доступ. Откройте вкладку Многофакторная аутентификация. Нажмите + Новый MFA метод.
-
Выберите TOTP и нажмите Далее. В открывшейся форме заполните следующие поля. Вы можете использовать значения из примера.
-
Издатель (пример: mycompany) - название организации, выпускающей ключи.
-
Размер ключа (пример: 256) - размер в байтах ключа, сгенерированного StarVault.
-
Размер QR (пример: 256) - размер в пикселях сгенерированного квадратного QR-кода.
-
Алгоритм (пример: SHA1) - алгоритм хэширования, используемый для генерации TOTP-кода.
-
Цифры (пример: 6) - количество цифр в сгенерированном TOTP-коде.
-
Смещение (пример: 1) - количество допустимых периодов задержки при проверке TOTP-токена.
-
Максимальное количество попыток проверки (пример: 5) - максимальное количество попыток проверить TOTP-код.
-
Правило (пример: Пропустить этот шаг) - правило включает типы аутентификации, группы и сущности, которые будут требовать этот метод MFA. Это необязательно и может быть добавлено позже.
-
-
После заполнения полей нажмите Продолжить. В результе будет создан метод многофакторной аутентификации TOTP.
-
Вернитесь на страницу Многофакторная аутентификация к списку созданных методов. Скопируйте ID созданного метода.
-
Создайте политику
testдля генерации totp. Для этого перейдите на страницу Политики и нажмите + Создать ACL политику. В поле Название введитеtest. Добавьте политику:path "identity/mfa/method/totp/generate" { capabilities = ["update"] }Нажмите Создать.
-
Создайте пользователя. Для этого в разделе Доступ перейдите к методу аутентификации 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. С помощью веб-интерфейса
-
Авторизуйтесь под учетной записью пользователя, созданного на предыдущем шаге.
-
Нажмите на кнопку профиля. Выберите Многофакторная аутентификация.
-
Введите ID метода многофакторной аутентификации и нажмите Проверить.
-
Отсканируйте QR-код с помощью приложения-аутентификатора, чтобы добавить StarVault TOTP. Для этого можно использовать Google Authenticator или Яндекс ключ.
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. С помощью веб-интерфейса
Перейдите на страницу Доступ → Многофакторная аутентификация. Откройте раздел Политики принуждения и нажмите + Новая политика принуждения.
Заполните обязательные поля:
-
Название политики - уникальное название.
-
Из выпадающего списка выберите метод MFA, к которым будет применено правило.
-
Выберите цели - список типов аутентификации, точек монтирования аутентификации, групп, сущностей, для которых потребуется выбранная конфигурация MFA. Нажмите Добавить.
После заполнения настроек нажмите Создать.
3.3. Первичная настройка TOTP при принудительном использовании MFA
3.3.1. Пользователям
|
Данный функционал недоступен в StarVault, поставляемом в составе Nova. |
Начиная с версии StarVault 1.5 вы можете самостоятельно настроить TOTP, если администратор включил принудительную MFA. Для этого выполните следующие шаги:
-
Войдите в систему с помощью логина и пароля. Вводить TOTP-код не требуется.
В данном случае вход осуществляется без настроенного TOTP. Вы получаете ограниченную политику, которая имеет доступ только к генерации TOTP.
-
После входа нажмите в левом верхнем углу иконку профия и перейдите в раздел Многофакторная аутентификация и сгенерируйте QR-код для настройки TOTP.
-
Отсканируйте QR-код в приложении-аутентификаторе (например, Google Authenticator или Яндекс Ключ).
-
Нажмите кнопку Done.
|
После нажатия Done вы будете автоматически разлогинены. При следующем входе система уже запросит TOTP-код. |
3.3.2. Администраторам
На странице Доступ → Сущности перейдите к блоку TOTP verified ids, в котором отображаются идентификаторы привязанных TOTP-методов.
-
Редактировать этот список через стандартное редактирование сущности нельзя.
-
Для каждого идентификатора в списке доступна кнопка Удалить.
Чтобы принудительно сбросить TOTP-секрет пользователя (например, при утере устройства):
-
Нажмите кнопку Удалить рядом с нужным идентификатором.
-
Если операция выполнена успешно, страница обновится, и идентификатор исчезнет из списка.
-
При следующем входе пользователь снова сможет войти без 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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вы прошли аутентификацию в StarVault с помощью Active Directory. Нажмите exit, чтобы выйти из контейнера.
Логин по коду TOTP также поддерживается при аутентификации в пользовательском интерфейсе StarVault.
Введите адрес: http://127.0.0.1:8200.
В выпадающем меню Method выберите LDAP.
Введите w.kluge в текстовом поле Имя пользователя и Foo_b_ar123! в текстовом поле Пароль, затем нажмите Войти.