Интеграция с 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
).