Интеграция с Keycloak
Keycloak — система централизованного управления пользователями, ролями и правами доступа. Она поддерживает единый вход (SSO) и упрощает администрирование учетных записей.
AI Server поддерживает аутентификацию и регистрацию пользователей через Keycloak.
Интеграция позволяет выполнять аутентификацию на стороне Keycloak и синхронизировать роли пользователей с ролями OpenID, предоставляемыми Keycloak.
Ниже описан порядок настройки интеграции между AI Server и Keycloak. Настройка выполняется пользователем с правами администратора.
Настройка Keycloak
-
Создайте реалм (например,
ai-server):
-
Создайте клиент сервиса Api.Auth (например,
auth-client):
-
Укажите для клиента сервиса Api.Auth флаги Standard flow и Client authentication:

-
Укажите для клиента сервиса Api.Auth корректные адреса, заменив
ai-server-endpoint:44392на корректный эндпоинт сервиса:
-
Создайте клиент сервиса Api (например,
api-client):
-
Укажите для клиента сервиса Api флаги Authentication и Service accounts roles:

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

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

Настройка 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
-
Укажите роль для привязки к внутренней роли AI Server (например,
test-viewer):
-
Создайте пользователя реалма (например,
test-viewer).
-
Укажите пароль тестового пользователя
test-viewer:
-
Назначьте пользователю
test-viewerрольtest-viewer:
Настройка привязки ролей через портал
-
Авторизуйтесь на Портале AI Server с учетной записью администратора (с разрешениями на создание ролей).
-
В веб-интерфейсе AI Server создайте роль с требуемыми полномочиями, привязав её к роли
test-viewer:
Авторизация в системе с использованием SSO
- Откройте страницу авторизации в Портале. При необходимости выйдите из системы.
- Нажмите кнопку Войти с учетной записью Keycloak.
- Введите учетные данные пользователя (например,
test-viewer).