Настройка аутентификации OpenID connect используя Keykloack при подключении к 1С
В статье опишу порядок настройки, проверки и направления изучения по теме «Технология единого входа (англ. Single Sign-On), SSO».
- Описание
- Подробнее
Описание
Вводные
- Сервер 1С 8.3.18, проверил на локальном win, на nix в планах
- Нужно сделать аутентификацию клиентов через единый, независимый от рабочей базы 1С сервис
Варианты решения
1. OpenID, https://v8.1c.ru/platforma/openid-autentifikatsiya/, в качестве сервиса аутентификации выделяется отдельная база 1С. настройка сводится к дополнению публикации базы по HTTP, описана в //sale.itcity.ru/1c/articles/1170720/ и настройкой HTTPS для базы с ролью "провайдер OpenID". Устарел, переиспользовать для других сервисов проблематично, на замену ему пришел OpenID connect.
2. OpenID connect https://openid.net/connect/, "is a simple identity layer on top of the OAuth 2.0 protocol" (является простым уровнем идентификации поверх протокола OAuth 2.0). Настраивается на уровне HTTP публикации клиента.
Описание настроек со стороны публикации 1С https://its.1c.ru/db/v8313doc#bookmark:adm:TI000000845, тоже самое на английском (немного урезано) https://support.1ci.com/hc/en-us/sections/360005970179-3-18-9-openidconnect-
Общее описание взаимодействия (в разделе фреш, но думаю подход к локальной платформе схож) https://its.1c.ru/db/fresh#content:19956766:1:issogl1_h1e1l9ae
Общее описание на англ https://1c-dn.com/anticrisis/tips-and-guidelines/how-do-i-configure-openid-connect-authentication/description_OpenID_Connect_authentication/
В разделе ИТС есть примеры настройки для использования с Google, Azure и ЕСИА, https://its.1c.ru/db/metod8dev/content/5972/hdoc .
Статья по использованию сервиса Okta в качестве сервера идентификации //sale.itcity.ru/1c/articles/1435248/.
Все решения используют публичные сервисы, мне интересно запустить в локальном контуре. В качестве сервера идентификации использовал Keykloack https://www.keycloak.org/, потому что по нему есть базовая информация на русском языке, например обзор использования от X5, в том числе по использованию в связке с gatekeeper (тема следующей статьи). По ORY Hydra https://www.ory.sh/hydra/ только на англ. Так же следует отметить что все эти сервисы заточены под "cloud native", использование в средах VM и bare metal вызывает трудности.
Схема

Управление VM и подобие service discovery описал в статье //sale.itcity.ru/1c/articles/1531329/
Настройка Keycloack
Keycloack написан на java, для тестов развернул через docker образ с внутренней базой H2, для разворачивания рабочей версии нужно разобраться с настройками. Как на уровне Keycloack указать имя возвращаемого хоста не разобрался поэтому проксирование не настраивал, использую типовой порт 8080. Для запуска образа использую podman https://podman.io/ "Podman – это демон-контейнерный движок для разработки, управления и запуска OCI-контейнеров в вашей системе Linux."

