【发布时间】:2020-11-23 07:44:17
【问题描述】:
我正在尝试将 Keycloak 与 Vault 集成。我有 2 个保险柜策略(管理员、开发人员)。我想使用路径'keycloak',并且已经完成$ vault auth enable -path=keycloak oidc。
我要解决的问题是将 Vault Policy 与 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 中的 admin 和 dev 角色绑定到 Keycloak 中的“Vault”客户端。但是,根据用户绑定的组,我希望用户有不同的策略。 (两者都使用vault login -method=oidc keycloak通过控制台登录)
有什么想法吗?我想到的解决方案是制作 2 个不同的客户端。但是,我只想要 1 个客户“保险库”。这可以实现吗?
【问题讨论】:
-
这个运气好吗?
-
@DanGarthwaite 不幸的是,还没有。
-
groups_claim=groups