Hashicorp Vault

OIDC аутентификация

В качестве OIDC провайдера можно использовать Keycloak. Там создаем Realm роли и назначаем из пользователю. Также необходимо сделать так, чтобы назначенные роли попали в id_token, который выдается со стороны Keycloak после аутентификации (информация есть здесь https://stackoverflow.com/questions/68741412/grafana-generic-oauth-role-assignment).

Создаем oidc метод доступа (обязательно указываем роль по умолчанию)

# to do

Создаем роль для oidc

vault write auth/oidc/role/default -<<EOF
{
  "allowed_redirect_uris": ["https://vault.example.com/ui/vault/auth/oidc/oidc/callback"],
  "user_claim":"email",
  "groups_claim":"roles",
  "bound_audiences": "vault",
  "oidc_scopes": "openid roles",
  "ttl": "8h"
}
EOF

Команда выше подразумевает, что id_token из Keycloak содержит поле roles с массивом Realm ролей.

Уже можно пробовать зайти через OIDC и получить доступ в объеме default политики.

Допустим уже существует политика admin, которая предоставляет административный доступ к Vault. Чтобы к ней "привязаться" ролью vault-admin из Keycloak нам потребуется создать т.н. identity/group и identity/group-alias.

Кроме того, нам потребуется получить т.н. mount_accessor для oidc

vault auth list -detailed

Path      Plugin    Accessor
-------     ------       --------
oidc/     oidc        auth_oidc_123    <------------ mount_accessor
...