В документе описана настройка SSO-аутентификации по протоколу OpenID Connect (OIDC) в Мессенджере и Почте VK WorkSpace при помощи сервиса Stroma в составе Мессенджера. Данная функциональность доступна для версии Почты и Мессенджера 25.2.1 и выше.
Документ предназначен для использования системными администраторами.
Архитектура и описание системы — в документе представлена информация о сервисах Мессенджер и ВКС, обеспечивающих функциональность SSO-аутентификации, а также расположение log-файлов данных сервисов. Не является частью публичной документации, обратитесь к представителю VK Tech, чтобы ознакомиться с документом.
Для настройки SSO-аутентификации необходимо:
- Наличие провайдера аутентификации, поддерживающего протокол OIDC.
- Доступ к серверу Мессенджер и ВКС.
- Доступ к серверу Почты VK WorkSpace при наличии.
- Доступ к веб-интерфейсу установщика VK Workspace.
- Доступ к Панели администратора VK WorkSpace при наличии.
- Поддержка клиентскими платформами аутентификации через внешнего провайдера аутентификации, в результате которой сервер отдаст ответ, содержащий email и atoken (ключ, необходимый для инициализации сессии и получения идентификатора сессии — aimsid), используемые далее при старте сессии мессенджера.
- Отключение блокировки всплывающих окон в браузере (поддержка OIDC реализована через всплывающие окна).
-
В веб-интерфейсе установщика VK Workspace перейдите в Проекты → vkteams.
-
В окне Формы проекта vkteams выберите Auth (Авторизация). Откроется форма с параметрами для заполнения:

-
Заполните параметры формы в соответствии с таблицей.
Параметр
Рекомендуемое действие
Примечание
Вход через SSO (сервис stroma)
Включить
Включает SSO через сервис Stroma
Ключ подписи miniapp-токенов
Заполнить произвольной строкой
Ключ для подписи
Ключ подписи одноразовых токенов
Заполнить произвольной строкой
Ключ для подписи
Ключ подписи silent-токенов
Заполнить произвольной строкой
Ключ для подписи
Stroma SSO домен
Указать домен
Должен соответствовать вашему домену
Ключ подписи JWT
Заполнить произвольной строкой
Ключ для подписи
Stroma user_management (stentor, biz)
Выбрать biz или stentor
biz — если есть Панель администратора, иначе stentor
-
Нажмите кнопку Сохранить настройки.
-
Перейдите на главную страницу веб-интерфейса установщика, нажав на логотип VK WorkSpace.
-
Запустите автоматическую установку, нажав на кнопку Play
.
-
На сервере Мессенджер и ВКС выполните команду:
sso token swaСохраните полученное значение.
-
В веб-интерфейсе установщика VK WorkSpace перейдите в Настройки → Переменные окружения.
-
На панели слева нажмите gofau.

-
Нажмите кнопку Редактировать
, затем кнопку Добавить. -
Добавьте переменную
GOFAU_IDM_CLIENT_SECRETсо значением из пункта 1.
-
Нажмите кнопку Сохранить.
-
Перейдите на главную страницу веб-интерфейса установщика, нажав на логотип VK WorkSpace.
-
Запустите автоматическую установку, нажав на кнопку Play
.
Вы можете выполнить настройку SSO-аутентификации одним из двух равноценных способов — в зависимости от того, есть ли в установщике VK WorkSpace Панель администратора:
- через Панель администратора — если Панель администратора есть;
- с помощью утилиты командной строки — если Панели администратора нет.
-
Подключитесь к серверу Мессенджер и ВКС и сгенерируйте
client_idиclient_secret:k -n vkteams exec -it tokeeper-a-1 -- bashcreds=$(curl -s http://stroma.vkteams.svc.cluster.local:8036/api/v1/private/generate_credentials); \client_id=$(echo $creds | jq -r ".client_id"); \client_secret=$(echo $creds | jq -r ".client_secret"); \client_secret_hash=$(echo $creds | jq -r ".client_secret_hash"); \echo "client_id: $client_id"; \echo "client_secret: $client_secret"; \echo "tokeeper.request.add_application('biz', 'biz admin', '$client_id', '$client_secret_hash', '')" | tarantoolctl connect 127.0.0.1:3301Запомните выводы команд.
-
В веб-интерфейсе установщика VK Workspace перейдите в раздел Настройки → Интеграции.
-
На панели слева нажмите Интеграция почты с мессенджером VK WorkSpace.

-
Нажмите кнопку Редактировать
. -
Включите переключатель VK Teams поддерживает внешнюю авторизацию.
-
В появившихся полях укажите
client_idиclient_secretиз пункта 1.
-
Нажмите кнопку Сохранить.
-
Перейдите на главную страницу веб-интерфейса установщика, нажав на логотип VK WorkSpace.
-
Запустите автоматическую установку, нажав на кнопку Play
.
-
В расширенной панели /admin перейдите в раздел Фичи и подключите:
-
sso-enabled — для включения поддержки SSO.
-
tmp-new-reset-sessions — для управления сессиями пользователей через Панель администратора VK WorkSpace.
-
trust-swa — для создания пользователей.
-
-
В Панели администратора перейдите в Конфигурация → Настройки → SSO аутентификация. Откроется форма с параметрами для заполнения:
-
Заполните параметры формы в соответствии с таблицей.
Параметр
Рекомендуемое действие
Примечание
Название сервиса
Указать название IDP-провайдера
Например, Keycloak
Описание сервиса
Заполнить кратким описанием
Необязательное поле
URL для обратного редиректа
Заполняется автоматически
Не требует ручного ввода
URL для корпоративной авторизации
Заполнить значением Auth URI из настроек IDP
Обязательное поле
URL для user info
Заполнить значением Userinfo URI из настроек IDP
Обязательное поле
URL получения токена
Заполнить значением Token URI из настроек IDP
Обязательное поле
URL для валидации токена (introspection)
Заполнить значением Introspection URI из настроек IDP
Обязательное поле
Client ID
Заполнить значением Client ID из настроек IDP
Обязательное поле
Client Secret
Заполнить значением Client Secret из настроек IDP
Обязательное поле
-
Нажмите кнопку Сохранить.
-
Чтобы управлять сессиями пользователей, перейдите в раздел Мессенджер → Аккаунты.
Первичную настройку SSO-аутентификации выполните одним из двух способов:
-
Запустите программу настройки SSO-аутентификации под пользователем с правами администратора на сервере Мессенджер и ВКС:
# sso setup -
Укажите параметры SSO-аутентификации, следуя подсказкам в консоли:
- Type — тип IDP-провайдера (например ADFS или Keycloak).
- Service Title — название IDP-провайдера.
- Service Description — краткое описание IDP-провайдера.
- Auth URI — authorization endpoint, полученный из настроек IDP.
- Userinfo URI — user info endpoint, полученный из настроек IDP.
- Token URI — token endpoint, полученный из настроек IDP.
- Introspection URI — introspection endpoint, полученный из настроек IDP.
- Client ID — clientID, полученный из настроек IDP.
- Client Secret — clientSecret, полученный из настроек IDP.
- Domains (comma-separated) — через запятую укажите домены, для которых подключается SSO-аутентификация.
Пример настроек:
Type: KKService Title: KeycloakService Description: Our KeycloakAuth URI: http://185.241.192.178:8080/realms/sso/protocol/openid-connect/authUserinfo URI: http://185.241.192.178:8080/realms/sso/protocol/openid-connect/userinfoToken URI: http://185.241.192.178:8080/realms/sso/protocol/openid-connect/tokenIntrospection URI: http://185.241.192.178:8080/realms/sso/protocol/openid-connect/token/introspectClient ID: <client id>Client Secret: <client secret>Domains (comma-separated): keycloak.sso-test.ruПример вывода:
successfully create IdentityProvider with id: 685b0b03-9e3c-40c9-a08f-181d039cc88esuccessfully connect domain keycloak.sso-test.ru with provider 685b0b03-9e3c-40c9-a08f-181d039cc88esuccessfully enable sso on domain: keycloak.sso-test.rusuccessfully setup SSO with 685b0b03-9e3c-40c9-a08f-181d039cc88e provider
-
Создайте в любой удобной для вас директории файл config.yaml с параметрами SSO-аутентификации, перечисленными в способе 1.
-
Выполните в консоли команду:
sso setup <путь до config.yaml>
-
Получите список настроенных провайдеров:
sso provider list -
Сохраните настройки провайдера в файл:
sso provider get <provider_id из шага 1> > provider.yml -
Отредактируйте файл provider.yml, содержащий настройки провайдера.
-
Примените измененные настройки:
sso provider edit provider.yml
-
Получить список сконфигурированных провайдеров:
sso provider list -
Подключить домен к провайдеру:
sso connect <new_domain> <provider_id, полученный из шага 1> -
Включить sso на домене:
sso enable_sso <new_domain>
Технический писатель: Москвина Анна