Настройка аутентификации через ldap¶
Запуск сервера в dev-режиме¶
Скачаем vault и установим : https://developer.hashicorp.com/vault/install
В рамках демонстрации запустим сервер в dev режиме
После запуска сервера, установим переменную окружения VAULT_ADDR, чтобы указать адрес сервера Vault:
Настройка политик доступа¶
Создадим политику для пути "secret/data/Engineering":
path "secret/data/Engineering" {
capabilities = ["create", "read", "update", "delete", "list"]
}
Применим созданную политику с помощью команды:
vault policy write engineering Engineering.hcl
Также, можно создать политику напрямую через командную строку:
Настройка аутентификации через LDAP¶
Для аутентификации пользователей через LDAP, включим данный метод в Vault:
Далее, сконфигурируем подключение к LDAP серверу(сервис аккаунт в freeipa нужно создать uidvault):
vault write auth/ldap/config \
url="ldaps://freeipa.truedev.ru" \
userattr=uid \
userdn="cn=users,cn=accounts,dc=truedev,dc=ru" \
groupdn="cn=groups,cn=accounts,dc=truedev,dc=ru" \
groupattr="cn" \
binddn="uid=uidvault,cn=sysaccounts,cn=etc,dc=truedev,dc=ru" \
bindpass='YUqFuq..........js' \
insecure_tls=false \
starttls=false
В LDAP достаточно привязать политики на путь к секретам с группами(jwt,oidc нужно создавать роль потому что через роль можно настроить много доп параметров которые передаются через токен)
Создадим группы в ldap и свяжем их с политиками:
После этой команды в разделе vault - ldap - groups появятся создадутся только те группы на которые назначены политики, группа vault должна быть в ldap.Но есть и Groups внутренние без привязки к внешним сервисам(ldap, oidc..): например - в vault внутренная группа Contractors - и есть пользователь User (создали через userpass auth method), которому мы не хотим cоздавать учетку в ldap. - dev.team группа в ldap и нужно назначить доступ к общим секретам для Contractors and dev.team.
В Groups создаем dev.team(external, alias - на группу dev.team из ldap, чтобы связать с группой из ldap)
Потом создаем общую группу Shared (internal), members (dev.team, Contractors)
и на группу Shared можно вешать политику https://developer.hashicorp.com/vault/tutorials/enterprise/namespaces#set-up-entities-and-groups
Аутентификация пользователя и проверка прав¶
Для аутентификации пользователя через LDAP используем следующую команду:
После успешной аутентификации, можно проверить права доступа пользователя к определённому пути:References:¶
- https://docs-bigbang.dso.mil/1.55.0/packages/vault/docs/keycloak/#Vault-configuration
- https://www.youtube.com/watch?v=aGp8pb7KRIo