База знаний Антона Сидорова

База знаний по аналитике, ИТ архитектуре, API. Документирование. Тесты инструментов.


Project maintained by daemon110282 Hosted on GitHub Pages — Theme by mattgraham

Token exchange

Зачем

KeyCloak

V2

Поддержка стандарта OAuth:

V1 Legacy

Impersonation

Инструкции:

KeyCloak version 26.0.1:

  1. KeyCloak 26.0.1: Включить в KeyCloak KC_FEATURES=token-exchange,admin-fine-grained-authz:v1
    1. Проверить в /admin/master/console/#/master/info “Enabled features”
      1. ADMIN_FINE_GRAINED_AUTHZ Preview
      2. TOKEN_EXCHANGE Preview
  2. Настроить в realm=”EFTR”
  3. Добавить в “Users -> Add user” нового пользователя “admin_impersonation”
    1. Установить пароль в “Credentials” Temporary=Off
  4. Добавить User=”admin_impersonation” роль “Role mapping -> Assign role -> realm-management impersonation”
  5. Добавить client=”eftr-service-impersonation” в “Clients -> Create client”
    1. “Valid redirect URIs” = “/*”
    2. “Web origins = “/*”
    3. “Capability config -> Client authentication” = On
  6. Добавить client=”eftr-service” в “Clients -> Permissions”
    1. “Permissions enabled” = On
    2. Выбрать в “Permission list” “token-exchange”
    3. Выбрать в “Policies” “Create client policy”
      1. Указать Name = “client-exchange”
      2. Выбрать Clients = “eftr-service-impersonation”
    4. Перейти в client=”eftr-service” в “Clients -> Permissions -> Permission list -> token-exchange”
      1. Указать в “Policies” “client-exchange”

Direct Naked Impersonation

В отличии от Impersonation не требуется токен админа, но в Keycloak необходимо явно разрешить кто может выполнять Impersonation для каких пользователей. Менее безопасный вариант.

Инструкции: