Я пытаюсь интегрировать Keycloak с Vault. У меня есть 2 политики Vault (Admin, Dev). Я хочу использовать путь 'keycloak' и выполнил $ vault auth enable -path=keycloak oidc
.
Проблема, которую я хочу решить, - сопоставить политику хранилища с ролью клиента Keycloak.
$ vault write auth/keycloak/config \
oidc_discovery_url="https://$KEYCLOAK_ADDRESS/auth/realms/master" \
oidc_client_id="vault" \
oidc_client_secret=${CLIENT_SECRET} \
default_role="admin" type="oidc"
$ vault write auth/keycloak/role/admin \
bound_audiences="vault" \
allowed_redirect_uris="https://$VAULT_ADDRESS/ui/vault/auth/oidc/oidc/callback" \
allowed_redirect_uris="https://localhost:8250/oidc/callback" \
user_claim="sub" \
policies="admin" \
ttl=4h \
role_type="oidc" \
oidc_scopes="openid"
$ vault write auth/keycloak/role/dev \
bound_audiences="vault" \
allowed_redirect_uris="https://$VAULT_ADDRESS/ui/vault/auth/oidc/oidc/callback" \
allowed_redirect_uris="https://localhost:8250/oidc/callback" \
user_claim="sub" \
policies="dev" \
ttl=4h \
role_type="oidc" \
oidc_scopes="openid"
Я хочу, чтобы роли администратора и разработчика в Vault были привязаны к клиенту «хранилища» в Keycloak. Однако в соответствии с группой, к которой привязан пользователь, я хочу, чтобы у пользователя была другая политика. (Оба входа в систему через консоль с vault login -method=oidc keycloak
)
Есть идеи? Я имею в виду решение сделать 2 разных клиента. Однако мне нужно только одно клиентское «хранилище». Можно ли этого достичь?