Симптомы
Поддерживает ли Swarmica SSO через OpenID?
Поддерживает ли Swarmica SSO через KeyCloak?
Решение
Да, SSO через OpenID Connect v1 в KeyCloak поддерживается.
Для этого нужно настроить Client в KeyCloak и дать данные доступа в поддержку Swarmica:
- REALM (например, master)
 - URL (например, https://mykeycloak.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