Skip to content

Настройка аутентификации в vault через Keycloak

  1. Во freeipa создаем группу vault-admin и добавляет туда пользователя
  2. В keycloak cоздаем клиент

    Client type: OpenID connect
    Client ID: vault
    Client Authentication: ON
    Authentication flow: only - Standart flow 
    Root URL: https://vault.<domain>
    Home URL: https://vault.<domain>
    Valid redirect URIs: 
        - http://localhost:8250/oidc/callback 
        - https://vault.<domain>/ui/vault/auth/oidc-keycloak/oidc/callback
    

  3. мы хотим, чтобы члены группы "vault-admin" в KeyCloak получали соответствующую роль в Vault. Для достижения этой цели нам необходимо проинклюдить group membership в токены, выдаваемые клиентом KeyCloak. В KeyCloak нам нужно настроить "Mapper" - небольшой автоматизированный фрагмент кода, который знает, как сделать include groups в user token scope.

так как ранее мы создавали маппинг группы из freeipa в keycloak, то группа отобразится в keycloak

далее открываем Client Scopes, создаем возможно ранее уже создали:

name: groups
add mapper: 
    Mapper type: Group Membership
    Name *: groups
    Token Claim Name: groups
    Full group path: On
    Add to ID token: On
    Add to access token: On
    Add to userinfo: On
    Add to token introspection: On
Это создаст claim (field on the user token) называемое “groups” и сделает map user’s KeyCloak groups в этот список автоматически.

  1. Провалидируем User token scope Clients - vault - Client Scopes - Evaluate в поле Users вводим имя пользователя которого добавили в группу vault-admin , далее выбираем generated id tokens и в json выводе должны отобразиться группы которым принадлежит пользователь во freeipa
    "groups": [
        "/admins",
        "/chat",
        "/vault-admin",
        "/gitlab",
        "/ipausers"
      ],
    
  2. На стороне vault как настроить смотрим тут
  • Vault: Keycloak OIDC
  • https://d-heinrich.medium.com/hashicorp-vault-with-oidc-using-keycloak-95d8feee269