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

  1. Настройте сервис 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

  1. Настройте сервис 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).