Skip to Content

Интеграция с Keycloak

Keycloak — система централизованного управления пользователями, ролями и правами доступа. Она поддерживает единый вход (SSO) и упрощает администрирование учетных записей.

AI Server поддерживает аутентификацию и регистрацию пользователей через Keycloak.

Интеграция позволяет выполнять аутентификацию на стороне Keycloak и синхронизировать роли пользователей с ролями OpenID, предоставляемыми Keycloak.

Ниже описан порядок настройки интеграции между AI Server и Keycloak. Настройка выполняется пользователем с правами администратора.

Настройка Keycloak

  1. Создайте реалм (например, ai-server):

    alt

  2. Создайте клиент сервиса Api.Auth (например, auth-client):

    alt

  3. Укажите для клиента сервиса Api.Auth флаги Standard flow и Client authentication:

    alt

  4. Укажите для клиента сервиса Api.Auth корректные адреса, заменив ai-server-endpoint:44392 на корректный эндпоинт сервиса:

    alt

  5. Создайте клиент сервиса Api (например, api-client):

    alt

  6. Укажите для клиента сервиса Api флаги Authentication и Service accounts roles:

    alt

  7. Укажите для клиента сервиса Api роль сервисного аккаунта query-groups:

    alt

  8. Получите секреты клиентов:

    alt

Настройка Api

Настройте сервис Api, добавив секцию OpenId в файл конфигурации:

"OpenId": { "KeyCloak": { "ai-server": { "ClientId": "api-client", "ClientSecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "RolesUrl": "https://keycloak-endpoint:1234/admin/realms/{realm}/roles?search=", "ConfigurationUrl": "https://keycloak-endpoint:1234/realms/{realm}/.well-known/openid-configuration" } } },

Укажите полученный на предыдущем шаге секрет, а также эндпоинт сервиса Keycloak.

Настройка Api.Auth

Настройте сервис Api.Auth, добавив секцию OpenId и скорректировав Auth > Type в файле конфигурации:

"Auth": { "Type": 17 // 1: Application, 16: OpenId }, "OpenId": { "KeyCloak": { "ai-server": { "ClientId": "auth-client", "ClientSecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "AuthUrl": "https://keycloak-endpoint:1234/realms/{realm}/protocol/openid-connect/auth", "RedirectUrl": "https://ai-server-endpoint:44392/auth/Account/KeyCloak2/Login", "TokenUrl": "https://keycloak-endpoint:1234/realms/{realm}/protocol/openid-connect/token", "LogoutUrl": "https://keycloak-endpoint:1234/realms/{realm}/protocol/openid-connect/logout", "ConfigurationUrl": "https://keycloak-endpoint:1234/realms/{realm}/.well-known/openid-configuration" } } },

Заведение тестовых учётных данных в Keycloak

  1. Укажите роль для привязки к внутренней роли AI Server (например, test-viewer):

    alt

  2. Создайте пользователя реалма (например, test-viewer).

    alt

  3. Укажите пароль тестового пользователя test-viewer:

    alt

  4. Назначьте пользователю test-viewer роль test-viewer:

    alt

Настройка привязки ролей через портал

  1. Авторизуйтесь на Портале AI Server с учетной записью администратора (с разрешениями на создание ролей).

  2. В веб-интерфейсе AI Server создайте роль с требуемыми полномочиями, привязав её к роли test-viewer:

    alt

Авторизация в системе с использованием SSO

  1. Откройте страницу авторизации в Портале. При необходимости выйдите из системы.
  2. Нажмите кнопку Войти с учетной записью Keycloak.
  3. Введите учетные данные пользователя (например, test-viewer).