Использование VaultTemplate с именем пользователя и паролем

Я следую руководству по Spring Vault https://docs.spring.io/spring-vault/docs/current/reference/html/index.html, и я успешно подключил программу Java к Vault через доступ к токену. На картинке ниже вкладка №1.

VaultTemplate vaultTemplate = new VaultTemplate(endpoint, new TokenAuthentication("MySecretToken"));

Как создать экземпляр VaultTemplate с использованием имени пользователя и пароля, например, при входе в систему через веб-интерфейс Vault в этом варианте (вкладка 2) ?:  введите описание изображения здесь

Я смотрю на этот JavaDoc, но не совсем понятно, какой из них выбрать: https://docs.spring.io/spring-vault/docs/current/api/index.html?overview-summary.html

Другими словами: Как мне подключиться к Vault, используя Spring-vault, используя имя пользователя + пароль вместо токена? Или, по крайней мере, мне нужен указатель на то, как сгенерировать токен с именем пользователя и паролем


person RonPringadi    schedule 08.03.2019    source источник
comment
Spring-vault, похоже, не реализует аутентификацию пользователя / прохода. Лучше всего реализовать ClientAuthentication самостоятельно и вызвать Vault API или найти того, кто это сделал. Также я не знаю, какую проблему вы решаете, но если это просто приложение, аутентификация AppRole в любом случае должна быть подходящим вариантом.   -  person h3rmanj    schedule 08.03.2019


Ответы (1)


Как указано в @ h3rmanj, Spring Vault не поддерживает аутентификацию по имени пользователя и паролю, поскольку этот метод предназначен для аутентификации человека, а не аутентификации между машиной.

Аутентификация зависит от вашей модели угроз и от того, как вы можете / хотите бороться с использованием учетных данных в случае взлома. С помощью имени пользователя / пароля вам в основном необходимо заблокировать пользователя взломанной учетной записи. Это прискорбно, поскольку эти учетные записи, как правило, связаны с людьми, и вы заблокируете оператора.

Если вы используете AppRole, вы получаете два фактора и можете разделять учетные записи по типу приложения. Использование токенов обеспечивает максимальную гибкость, если вы не используете токен повторно в нескольких приложениях. Повторное использование удобно, но также, если вы столкнетесь с нарушением, вы должны отключить все приложения, которые используют один и тот же токен. Таким образом, назначение отдельных токенов обеспечивает максимальную гибкость и максимальные эксплуатационные расходы.

Все, что находится между ними, - это компромисс между реакцией на потенциальные нарушения и объемом оперативной работы.

HTH.

person mp911de    schedule 19.03.2019