Симптомы
Поддерживает ли Swarmica SSO через OpenID?
Поддерживает ли Swarmica SSO через KeyCloak?
Решение
Да, SSO через OpenID Connect v1 в KeyCloak поддерживается.
Для этого нужно настроить Client в KeyCloak и дать данные доступа в поддержку Swarmica:
- REALM (например, master)
- URL (например, https://mykeycloack.company.tld )
- CLIENT_ID (например, swarmica_app)
- CLIENT_SECRET (тот, что будет сгенерирован автоматически)
Для настройки выполните следующие шаги:
- Зайдите в административную панель KeyCloak, выберите Realm (и запомните его название - оно будет установлено поддержкой Swarmica в качестве REALM) > Clients > Create client
- Задайте название для клиентского приложения Client ID (например, swarmica_app) по протоколу OpenID Connect:
- На следующем экране включите Аутентификацию клиента:
- На следующем экране задайте разрешенные адреса перенаправления, чтобы там был указан адрес вашего инстанса Swarmica. Если у вас есть затруднения с тем, какой адрес указать – обратитесь к нам в поддержку, мы поможем.
Для случая, когда адрес вашего инстанса yourinstance.domain.tld настройки будут выглядеть вот так:
- Сохраните изменения и в созданном клиентском приложении зайдите на вкладку Credentials, поставьте Client Authenticator в значение Client Id and Secret и скопируйте Client Secret:
- Зайдите на сервер Swarmica по SSH и добавьте в переменную .env следующие параметры:
- Добавить в AUTH_PROVIDERS пункт oidc (в нижнем регистре)
- OIDC_DEFAULT_ROLE - роль пользователя, если не ставить - будет CUSTOMER
- OIDC_REALM_NAME - название REALM в Keycloak
- OIDC_SERVER_URL - сервер keycloak, без слеша на конце
- OIDC_CLIENT_ID - id клиента внутри REALM на Keycloak, задаётся при создании клиента
- OIDC_CLIENT_SECRET - секрет клиента, выдаётся на вкладке Credentials внутри клиента Keycloak
- OIDC_TIMEOUT - сколько ждать ответа от сервера, по-умолчанию 30 сек
- Сделайте рестарт системы:
docker compose up -d