Подключение внешнего Keycloak

Подключение внешнего Keycloak

Если внешний Keycloak использует недоверенный сертификат, его необходимо предварительно добавить в список доверенных сертификатов контейнеров платформы. Для этого поместите сертификат с именем external.crt в папку /var/lib/visiology/certs и переименуйте файл /var/lib/visiology/scripts/v3/extended-services/40-new_ssl_cert.ym_:

mv /var/lib/visiology/scripts/v3/extended-services/40-new_ssl_cert.ym_ /var/lib/visiology/scripts/v3/extended-services/40-new_ssl_cert.yml

Если вы используете ai-agent, то для него следует также добавить сертификат по следующей рекомендации:

Добавьте файл /var/lib/visiology/scripts/v3/extended-services/41-ai_ssl_cert.yml со следующим содержимым:

version: "3.8" x-deploy-ssl-v3: &deploy-ssl-v3 volumes: - /var/lib/visiology/certs/external.crt:/etc/ssl/certs/visiology_external.crt services: ai-agent: << : [*deploy-ssl-v3]

Для подключения внешнего Keycloak необходимо выполнить следующие шаги:

  1. Импортируйте полученный JSON во внешний Keycloak с помощью скрипта /var/lib/visiology/scripts/default/import_realm.sh. Необходимо в нём заполнить соответствующие переменные и вместе с копией файла /var/lib/visiology/scripts/v3/configs/keycloak-visiology-realm.json выполнить или на хосте, или в контейнере с Keycloak, в зависимости от Вашей инфраструктуры

  2. В файле /var/lib/visiology/scripts/v3/external-keycloak.env заполните данные для подключения к внешнему Keycloak.

    Пример файла с шаблонными значениями:

    KEYCLOAK_EXTERNAL_REALM_PATH=<KEYCLOAK_URL>/realms/<VISIOLOGY_REALM> KEYCLOAK_INTERNAL_REALM_PATH=<KEYCLOAK_URL>/realms/<VISIOLOGY_REALM> KEYCLOAK_INTERNAL_TOKEN_ENDPOINT=<KEYCLOAK_URL>/realms/<VISIOLOGY_REALM>/protocol/openid-connect/token KEYCLOAK_INTERNAL_KEYCLOAK_ENDPOINT=<KEYCLOAK_URL> KEYCLOAK_EXTERNAL_KEYCLOAK_ENDPOINT=<KEYCLOAK_URL> # Cookie Authorization__CookieSameSite=None Authorization__CookieSecurePolicy=SameAsRequest # Metadata Authentication__Keycloak__RequireHttpsMetadata=false Authorization__RequireHttpsMetadata=false # Secrets Authorization__BaseClient__ClientSecret=<KEYCLOAK_M2M_SECRET> Authorization__ClientSecret=<KEYCLOAK_M2M_SECRET> Authentication__Keycloak__ClientSecret=<KEYCLOAK_M2M_SECRET> Authorization__DashboardPublicAccessClient__ClientSecret=<KEYCLOAK_PUBLIC_DASHBOARD_ACCESS_SECRET>

    где

    KEYCLOAK_URL – путь к Keycloak.

    VISIOLOGY_REALM – название Realm для платформы Visiology.

    KEYCLOAK_M2M_SECRET - значение секрета от клиента visiology_m2m из внешнего Keycloak.
    KEYCLOAK_PUBLIC_DASHBOARD_ACCESS_SECRET – значение секрета от клиентаvisiology_public_dashboard_access из внешнего Keycloak.

Вы можете не указывать секреты в открытом виде, а перегенерировать соответствующие на платформе. Секрет для grafana необходимо заменить в любом случае:

docker secret rm KEYCLOAK_M2M_SECRET \ echo -n "NEW-SECRET-FOR-M2M" | docker secret create -l visiology3_keycloak=kc_m2m_secret KEYCLOAK_M2M_SECRET - \ docker secret rm KEYCLOAK_PUBLIC_DASHBOARD_ACCESS_SECRET \ echo -n "NEW-SECRET-FOR-PUBLIC-ACCESS" | docker secret create -l visiology3_keycloak=kc_public_dashboard_access_secret KEYCLOAK_PUBLIC_DASHBOARD_ACCESS_SECRET - \ docker secret rm KEYCLOAK_GRAFANA_CLIENT_SECRET \ echo -n "NEW-SECRET-FOR-GRAFANA" | docker secret create -l visiology3_keycloak=kc_grafana_client_secret KEYCLOAK_GRAFANA_CLIENT_SECRET -
  1. Остановите платформу, включите использование внешнего Keycloak и запустите платформу:

/var/lib/visiology/scripts/run.sh --stop && \ /var/lib/visiology/scripts/v3/prepare-config.sh --ext-auth true && \ /var/lib/visiology/scripts/run.sh --start

 

Нужна дополнительная помощь?

Свяжитесь с технической поддержкой.