Инструкция по настройке Single Sign-On аутентификации
Назначение документа
В данной инструкции представлено описание процесса настройки Single Sign-On аутентификации по протоколам SAML и OIDC, а также SSO-аутентификации по протоколу Kerberos в Microsoft Active Directory.
Документ предназначен для использования администраторами организации.
Дополнительная документация
Архитектура и описание системы — в документе представлена информация о сервисах Мессенджер и ВКС, обеспечивающих функциональность SSO-аутентификации, а также расположение log-файлов данных сервисов. Не является частью публичной документации, обратитесь к представителю VK Tech, чтобы ознакомиться с документом.
Предварительные условия для настройки SSO аутентификации
Клиентские платформы в рамках запроса аутентификации должны поддерживать аутентификацию через внешнего провайдера аутентификации, в результате которой сервер отдаст ответ, содержащий email и atoken (ключ, необходимый для инициализации сессии и получения идентификатора сессии — aimsid), используемые далее при старте сессии мессенджера.
Необходимо отключить блокировку всплывающих окон в браузере, так как поддержка OIDC реализована через всплывающие окна.
Функциональное описание
Внешний провайдер аутентификации (Identity Provider) — провайдер осуществляющий аутентификацию и поддерживающий протоколы аутентификации SAML и OpenID Connect. Провайдером является SAML IDP или OIDC Authentication server.
В процессе аутентификации пользователя сервер Мессенджер и ВКС перенаправляет пользователя на провайдера аутентификации. Клиент переходит по указанным redirect'ам, пользователь вводит аутентификационные данные. Далее клиент начинает новую сессию мессенджера и пользуется идентификатором сессии (aimsid) во всех запросах. При отзыве access_token'а aimsid инвалидируется.
На клиентских приложениях aimsid хранится во внутреннем хранилище ОС в зашифрованном виде (за исключением web-версии), в соответствии с таблицей:
Платформа | Технология для хранения aimsid |
---|---|
Web | Cookie |
MacOS | Симметрично зашифрован в локальном файле конфигурации |
Windows | Симметрично зашифрован в локальном файле конфигурации |
Linux | Симметрично зашифрован в локальном файле конфигурации |
iOS | Keychain |
Android | Encrypted Shared Preferences |
По окончании процесса аутентификации все управление токенами и взаимодействие с провайдером аутентификации осуществляется на стороне сервера Мессенджер и ВКС.
Хранением, обновлением, проверкой токенов занимается сервис Tokeeper. Сервис хранит данные, используя БД Tarantool. БД Tarantool отслеживает токены, период жизни которых истек, и автоматически удаляет их из базы.
Настройка взаимодействия «клиент — сервер Мессенджер и ВКС» представлена в разделе Шаг 1. Настройка подсистемы авторизации сервера VK Teams.
Настройка взаимодействия «сервер Мессенджер и ВКС — Identity Provider» представлена в Шагах 2-5.
Ограничения Keycloak
Сервис Keycloak не взаимодействует с внешним провайдером аутентификации после авторизации. Соответственно, не сможет инвалидировать свою сессию при инвалидации сессии пользователя на внешнем провайдере аутентификации.
Однако, если инвалидировать сессию пользователя в сервисе Keycloak, клиент Мессенджер и ВКС разлогинит пользователя.
Одновременная работа с несколькими провайдерами аутентификации
SSO аутентификация поддерживает аутентификацию через несколько провайдеров.
Выбор нужного провайдера осуществляется на основе useragent'а, переданного параметром в начале процесса аутентификации. Процесс настройки провайдеров представлен ниже.
Secure Browser
- Для iOS — ASWebAuthenticationSession.
- Для Android — Android Custom Tab.
-
Для Web — Window.open.
-
Для Desktop — открытие в стандартном браузере.
Механизм аутентификации по протоколу OIDC
- Клиент из файла myteam-config.json получает auth-url для аутентификации (см. описание в разделе).
- Сервер Мессенджер и ВКС составляет запрос в Identity Provider на /auth endpoint и перенаправляет на него клиента.
-
Пользователь (в secure browser) вводит аутентификационные данные:
- если пользователем уже вошел в Систему, сработает SSO, и пользователю ничего вводить не потребуется;
- в случае ошибки логина/пароля — об этом пользователю сообщит Identity Provider внутри secure_browser в окне логина («Invalid username or password») и предложит ввести логин/пароль повторно.
-
Identity Provider перенаправляет на указанный сервером redirect_uri, находящийся на сервере.
-
Сервер Мессенджер и ВКС обрабатывает redirect от Identity Provider:
- в параметрах запроса получает:
- state;
- code.
- в параметрах запроса получает:
-
Сервер Мессенджер и ВКС составляет и отправляет запрос в Identity Provider на /token endpoint:
- в ответ получает необходимые токены и периоды их жизни (access_token, refresh_token, id_token и т.д.)
- сохраняет их, если ещё нет токенов для этого пользователя в хранилище сервера.
-
Сервер Мессенджер и ВКС завершает действия, необходимые для аутентификации, и осуществляет редирект на переданный redirect_uri, в параметрах передавая результат:
- code:
- 20000 – успех;
- 50000 - server error.
- reason — передается в случае ошибки;
- atoken;
- email;
- host_time.
- code:
Механизм аутентификации по протоколу SAML
- Клиент из файла myteam-config.json получает auth-url для аутентификации (см. описание в разделе).
- Сервер Мессенджер и ВКС составляет запрос в Identity Provider на /auth endpoint и перенаправляет на него клиента.
-
Пользователь (в secure browser) вводит аутентификационные данные:
- если пользователем уже вошел в Систему, сработает SSO, и пользователю ничего вводить не потребуется;
- в случае ошибки логина/пароля — об этом пользователю сообщит Identity Provider внутри secure_browser в окне логина («Invalid username or password») и предложит ввести логин/пароль повторно.
-
Identity Provider перенаправляет на указанный сервером redirect_uri, находящийся на сервере.
-
Сервер Мессенджер и ВКС обрабатывает redirect от Identity Provider:
- в параметрах запроса получает:
- state;
- code.
- в параметрах запроса получает:
-
Сервер Мессенджер и ВКС завершает действия, необходимые для аутентификации, и осуществляет редирект на переданный redirect_uri, в параметрах передавая результат:
- code:
- 20000 – успех;
- 50000 - server error.
- reason — передается в случае ошибки;
- atoken;
- email;
- host_time.
- code:
Настройка SSO аутентификации по протоколам OIDC и SAML
Необходимые шаги для включения SSO аутентификации представлены ниже:
Шаг 1. Настройка подсистемы авторизации сервера Мессенджер и ВКС
-
Перейти в веб-интерфейс сервиса Keycloak:
-
открыть доступ для домена mridme. <DOMAIN> и перейти в браузере на https://mridme.<DOMAIN>
Примечание
По умолчанию имя mridme не заведено в DNS, и в настройках nginx выставлено deny all. Не рекомендуется использовать этот способ доступа без крайней необходимости.
или
-
пробросить локальный порт на сервер:
и перейти в браузере http://127.0.0.1:8080/auth
-
-
Логин: admin
Пароль: пароль необходимо получить в службе технической поддержки
-
Перейти Manage → Clients → выбрать nomailcli → вкладка Settings → установить значения для полей:
- Valid redirect URIs — https://u.<DOMAIN_EXAMPLE.COM>/api/v87/rapi/auth/oidc/submitCode, где <DOMAIN_EXAMPLE.COM> — ваш домен;
-
Client authentication — On:
-
Вкладка Advanced → Advanced Settings → поле Proof Key for Code Exchange Code Challenge Method → указать S256:
-
Вкладка Credentials → поле Client Authenticator → указать Client Id and Secret:
-
Необязательные параметры:
-
Проставить поведение при первом логине:
Шаг 2. Добавление провайдера аутентификации
Протокол OIDC
Ниже представлено добавление провайдера аутентификации при использовании протокола OIDC. Если Вы используете протокол SAML, перейдите к разделу Протокол SAML.
-
Проверить доступность адреса mridme.<DOMAIN_TEAMS>.
-
Создать и настроить провайдера аутентификации:
Перейти Identity Providers → выбрать необходимый протокол: -
Указать следующие значения полей:
-
Alias — задать Alias провайдера;
-
Display name — задать имя провайдера:
-
Use discovery endpoint — Off;
-
Authorization URL — запросить у администратора Authentication server;
-
Token URL — запросить у администратора Authentication server;
-
Logout URL — запросить у администратора Authentication server;
-
User Info URL — запросить у администратора Authentication server;
-
Issuer — запросить у администратора Authentication server:
-
Validate Signatures — On;
-
Use JWKS URL — On;
-
JWKS URL — запросить у администратора Authentication server;
-
Client authentication — Client secret sent as post;
-
Client ID — запросить у администратора Authentication server;
-
Client Secret — запросить у администратора Authentication server:
Примечание
Данные поля также можно заполнить, импортировав файл конфигурации. Запросить Import External Config можно у администратора Authentication server.
-
Перетащить файл в поле Import config from file
или
-
В поле Import config from file нажать Browse → выбрать файл <Import External Config>:
-
-
Нажать Save.
Протокол SAML
Ниже представлено добавление провайдера аутентификации при использовании протокола SAML. Если Вы используете протокол OIDC, перейдите к разделу Шаг 3. Регистрация провайдеров аутентификации в сервисах Мессенджер и ВКС.
-
Проверить доступность адреса mridme.<DOMAIN_TEAMS>.
-
Создать и настроить провайдера аутентификации:
Перейти Identity Providers → выбрать необходимый протокол: -
Указать следующие значения полей:
-
Alias — задать Alias провайдера;
-
Display name — задать имя провайдера;
-
Use entity descriptor — Off:
-
Single Sign-On service URL — запросить у администратора IDP-сервера;
-
Single logout service URL — запросить у администратора IDP-сервера;
-
NameID policy format — Unspecified;
-
HTTP-POST binding response — On;
-
HTTP-POST binding for AuthnRequest — On;
-
HTTP-POST binding logout — On:
-
Allowed clock skew — 30:
Примечание
Данные поля также можно заполнить, импортировав файл конфигурации. Запросить Import External Config можно у администратора IDP-сервера.
-
Перетащить файл в поле Import config from file
или
-
В поле Import config from file нажать Browse → выбрать файл <Import External Config>:
-
-
Нажать Save.
Шаг 3. Регистрация провайдеров аутентификации в сервисах Мессенджер и ВКС
Провайдеры регистрируются в сервисе Stdb. Оттуда информацию о них получают сервисы Front и Tokeeper.
SSO аутентификация поддерживает аутентификацию через несколько провайдеров.
Возможна поддержка нескольких провайдеров в двух форматах:
Вариант 1. Сервис Keycloak подключается к провайдеру аутентификации в режиме посредника, все взаимодействие с провайдером лежит на сервисе Keycloak.
Настроить выбор провайдера для различных вариантов подключения:
-
Подключиться к сервису Stdb:
-
Далее добавить таблицу с данными провайдеров:
stdb_table_add idp_configurations issuer@string addr@string client_id@string scope@string client_secret@string platforms_and_auth_extra_params@string need_register_user@string # для версий до 25.2 stdb_row_add idp_configurations KK https://di.<DOMAIN_EXAMPLE.COM>/auth/realms/myteam/.well-known/openid-configuration nomailcli openid use_secrets_luke '{ "web": "di_idp_hint=<Alias_1>", "desktop": "di_idp_hint=<Alias_2>", "default": "di_idp_hint=<Alias_3>" }' false # Если поле default пусто и нет алиасов stdb_row_add idp_configurations KK https://di.<DOMAIN_EXAMPLE.COM>/auth/realms/myteam/.well-known/openid-configuration nomailcli openid use_secrets_luke { "default": "" } false # для версии 25.2 и выше stdb_row_add idp_configurations KK https://kc.<DOMAIN_EXAMPLE.COM>/auth/realms/myteam/.well-known/openid-configuration nomailcli openid use_secrets_luke '{ "web": "kc_idp_hint=<Alias_1>", "desktop": "kc_idp_hint=<Alias_2>", "default": "kc_idp_hint=<Alias_3>" }' false
где
<Alias_1>
,<Alias_2>
,<Alias_3>
— значение поля Alias для провайдеров в Keycloak (см. Шаг 2. Добавление провайдера аутентификации).
Для разграничения платформ используется поле platforms_and_auth_extra_params таблицы сервиса Stdb. Уточнения значения этого поля:
-
default — переходим на базовую страницу авторизации сервиса Keycloak.
-
di_idp_hint или kc_idp_hint=<Alias провайдера в настройках Keycloak>.
Доступные платформы:
- Web;
- Android;
- Desktop;
- IOS.
Внимание
Если одну и ту же платформу указать для нескольких провайдеров, сервис Stdb сообщит об этом в лог, SSO аутентификация работать не будет.
Примечание
Полезные команды в rlwrap:
-
get //получить список:
-
del // удалить:
-
set // изменить:
Вариант 2. Отдельная регистрация каждого провайдера: в таблицу каждый провайдер добавляется новой строкой.
Шаг 4. Настройка внешней аутентификации
-
Добавить в /usr/local/nginx-im/html/myteam/myteam-config.json указанное содержимое:
-
Применить:
, где: * — уникальное имя пода. Имя пода необходимо получить с помощью вывода команды:
Шаг 5. Настройка protocol mappers
Необходимо настроить по три mapper’a для каждого провайдера — email, lastName и firstName.
-
Перейти Identity Providers → выбрать провайдера → вкладка Mappers → нажать Add mapper:
-
Указать следующие значения полей:
- Name — задать имя mapper’a;
- Sync mode override — Inherit;
- Mapper type — Attribute Importer;
- Claim — маска для поиска атрибута в токене (запросить у администратора IDP-сервера);
- User Attribute Name — прописать один из вариантов — email; lastName или firstName:
-
Нажать Save.
-
Повторить шаги 1-4 для создания остальных двух mappers.
Настройка SSO аутентификации по протоколу Kerberos в Microsoft Active Directory
Предварительная настройка на сервере Active Directory
На контроллере домена необходимо зарегистрировать учетную запись.
В разделе Account ввести в поле User logon name HTTP/<почтовый домен>
.
В окне Account options внутри того же раздела отметьте чекбосы:
- User cannot change password.
- Password never expires.
- This account supports Kerberos AES 128 bit encryption.
- This account supports Kerberos AES 256 bit encryption.
- Do not require Kerberos preauthentication.
Затем в разделе управления групповыми политиками перейдите к настройке политики Configure encryption types allowed for Kerberos.
Во вкладке Security Policy Setting отметьте следующие политики:
- RC4_HMAC_MD5.
- AES128_HMAC_SHA1.
- AES256_HMAC_SHA1.
Шаг 1. Создание файла .keytab
В зависимости от выбранного типа шифрования — RC4-HMAC-NT или AES128-SHA1, AES256-SHA1 — выполните шаги, представленные ниже:
При использовании шифрования RC4-HMAC-NT
-
Получить параметр
msDS-KeyVersionNumber
:msDS-KeyVersionNumber
— атрибут объекта учетной записи в Active Directory, который указывает версию ключа, используемого для шифрования данных, связанных с этой учетной записью. Аналогичноkvno_number
в Kerberos, но специфично для Active Directory. -
На Windows Server сгенерировать файл .keytab для Kerberos аутентификации в Active Directory:
ktpass -princ HTTP/computer.contoso.com@CONTOSO.COM -mapuser CONTOSO\keycloak -out mcs.keytab -crypto ALL -ptype KRB5_NT_PRINCIPAL /pass "SomePassword" -kvno kvno_number
, где:
-
-princ
—FQDN сервера Keycloak в формате «HTTP/computer.contoso.com@CONTOSO.COM» для организации связи между сервисом Keycloak и Active DirectoryПримечание
Данный параметр учитывает регистр.
-
-mapuser
— пользователь, для которого регистрируется SPN и генерируется файл .keytab; -
-pass
— пароль пользователя; -
-crypto
— тип шифрования. Чтобы сгенерировать файл .keytab, поддерживающий все способы шифрования, укажите для ключа-crypto
значениеALL
; -
-ptype
— тип принципала; -
-out
— имя создаваемого файла .keytab. kvno
— номер версии ключа для идентификации версии ключа шифрования, используемого для защиты данных.kvno_number
должен быть равен следующему значению:msDS-KeyVersionNumber + 1
-
-
Проверить значение параметра
msDS-KeyVersionNumber
, он должен быть равен значениюkvno_number
из предыдущей команды. -
Дополнительно включить шифрование RC4-HMAC-NT в контейнере с Keycloak (оно автоматически отключается, так как считается слабым):
-
создать файл через любой текстовый редактор (название указать любое, в примере использовано название файла allow-weak) со следующим содержимым:
-
создать ConfigMap на основе файла, созданного на предыдущем шаге:
-
чтобы отредактировать deployments выполните команду:
-
добавить строки в секции
volumeMounts:
иvolumes:
-
При использование шифрования AES128-SHA1, AES256-SHA1
-
При использовании шифрования AES128-SHA1, AES256-SHA1 необходимы настройки для пользователей в Active Directory. В свойствах учетных записей пользователей необходимо установить поддержку типов шифрования AES128-SHA1, AES256-SHA1 — либо через групповые политики, либо вручную.
-
Получить параметр
msDS-KeyVersionNumber
:msDS-KeyVersionNumber
— атрибут объекта учетной записи в Active Directory, который указывает версию ключа, используемого для шифрования данных, связанных с этой учетной записью. Аналогичноkvno_number
в Kerberos, но специфично для Active Directory. -
На Windows Server сгенерировать файл .keytab для Kerberos аутентификации в Active Directory :
ktpass -princ HTTP/computer.contoso.com@CONTOSO.COM -mapuser CONTOSO\keycloak -out mcs.keytab -crypto ALL -ptype KRB5_NT_PRINCIPAL /pass "SomePassword" -kvno kvno_number
, где:
-
-princ
—FQDN сервера Keycloak в формате «HTTP/computer.contoso.com@CONTOSO.COM» для организации связи между сервисом Keycloak и Active DirectoryПримечание
Данный параметр учитывает регистр.
-
-mapuser
— пользователь, для которого регистрируется SPN и генерируется файл .keytab; -pass
— пароль пользователя;-crypto
— тип шифрования. Чтобы сгенерировать файл .keytab, поддерживающий все способы шифрования, укажите для ключа-crypto
значениеALL
;-ptype
— тип принципала;-out
— имя создаваемого файла .keytab.
-
-
Создать секрет из файла .keytab и прокинуть его внутрь контейнера с Keycloak:
-
Проверить наличие нового .keytab файла и сравнить
kvno
с актуальным:Если внутри пода неактуальный
kvno
(устаревший .keytab), то перезапустите под и повторите проверку. Внутри пода командаklist
по умолчанию недоступна, чтобы получить файл из пода выполните команду:
Шаг 2. Настройка realm
Перейдите в веб-интерфейс сервиса Keycloak и выполните все действия из раздела Шаг 1. Настройка подсистемы авторизации сервера Мессенджер и ВКС.
Шаг 3. Подключение пользователей из Keycloak через User Federation
-
Перейти в раздел Configure → User federation → нажать на кнопку Add Ldap providers:
-
Установить следующие значения полей:
- Vendor — Active Directory:
-
Connection URL – IP-адрес контроллера домена Active Directory.
При использовании защищенного соединения, указать протокол ldaps и сделать активными переключатели:
- Enable StartTLS – On;
- Connection pooling – On.
Для проверки настроенного соединения нажать на кнопку Test connection. При успешном соединении получаем сообщение «Successfully connected to LDAP».
-
Указать Bind DN и пароль пользователя, от имени которого планируется подключаться к Active Directory.
Для проверки подключения к Active Directory нажать на кнопку Test authentication. При успешном соединении получаем сообщение «Successfully connected to LDAP».
- Vendor — Active Directory:
-
Определите в каком параметре передается
username
. Пример команды: -
Если username передается не в параметре
cn
, то необходимо обновить информацию в разделе User Federation -> LDAP -> Mappers -> username, поле LDAP Attribute: -
В блоке с настройками поиска и обновления LDAP указать следующие значения полей:
- Edit mode — READ_ONLY;
- UsersDN — атрибут distinguishedName из Active Directory;
- Username LDAP attribute — cn или параметр определенный выше. Достаточно часто это параметр
sAMAccountName
. - RDN LDAP attribute — cn;
- UUID LDAP attribute — objectGUID;
- User object classes — person, organizationalPerson, user;
- User LDAP filter — опциональный фильтр, который указывает, из какой группы в Active Directory брать пользователей;
- Search scope — Subtree для сквозного поиска пользователей согласно фильтру в поле User LDAP filter.
-
В блоке с настройками синхронизации указать следующие значения полей:
- Import users — On;
- Sync Registrations — On;
- Periodic full sync — On;
- Full sync period — указать период синхронизации в секундах;
-
Periodic changed users sync — On;
-
Changed users sync period — указать период синхронизации в секундах.
-
В блоке с настройками Kerberos указать следующие значения полей:
-
Нажать на кнопку Save.
-
Если в атрибуте cn приходит значение, отличное от username почтового адреса (без домена), нужно настроить маппинг поля username на тот атрибут, в котором приходит значение username.
Для этого в только что созданном провайдере - можно найти в User federation -> ldap:
- на вкладке Mappers открыть "username"
- в поле "LDAP Attribute" указать название атрибута, в котором приходит username
- нажать на кнопку Save.
Далее в настройке из п. 3, в блоке с настройками поиска и обновления LDAP, в поле Username LDAP attribute также указать название атрибута, в котором приходит username.
Шаг 4. Регистрация Keycloak в сервисе Stdb
Описание представлено в разделе.
Шаг 5. Настройка внешней аутентификации
Описание в разделе.
Шаг 6. Настройка браузеров для работы с Kerberos
Edge, Internet Explorer
-
Нажать Win + R, ввести inetcpl.cpl и нажать ОК.
-
Перейти на вкладку Security -> нажать Trusted sites -> нажать на кнопку Sites:
-
Добавить:
- https://<vkteams_domain>
- https://*.<vkteams_domain>
-
Нажать на кнопку Custom level… и установить переключатель Automatic login with current user name and password:
-
Нажать на кнопку ОК, чтобы сохранить изменения.
Google chrome
Изменить реестр HKEY_LOCAL_MACHINE/SOFTWARE/Policies/Google/Chrome.
Установить:
-
AuthNegotiateDelegateWhitelist: *.<VKTeams_DOMAIN>,< VKTeams_DOMAIN >
-
AuthServerWhitelist: *.<VKTeams_DOMAIN>,< VKTeams_DOMAIN >
-
AuthNegotiateDelegateAllowlist: *.<VKTeams_DOMAIN>,< VKTeams_DOMAIN >
-
AuthServerAllowlist: *.<VKTeams_DOMAIN>,< VKTeams_DOMAIN >
Распространенные проблемы
Надпись «Server error» в веб-интерфейсе Мессенджер и ВКС, окно логина не открылось
Отключите блокировку всплывающих окон в браузере.
Вместо окна логина отображается «Required parameter not found»
Проверьте, что в сервисе Stdb верно прописано поле addr в idp_configurations.
После логина появляется ошибка «Unexpected error when authenticating with identity provider»
В логах сервиса Keycloak: «Failed to make identity provider oauth callback: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target».
Проверьте, что у сервиса Keycloak есть все сертификаты.
Ошибка {"status": {"code": 40000, "reason": "Required parameter not found"}}
Появляется при попытке входа по SSO при включении SSO-аутентификации через сервис Keycloak версии 24.9.5.
Проблема связана с эндпоинтом di.<vkt_domain>/auth/realms/myteam/. Сервис Front идет по url-адресу и попадает на Nginx (API Gateway), на котором нет этого домена.
Окружение
Версия: 24.9, 24.11.
Операционные системы: Centos, Redos, Redos CE.
Тип инсталляции: 1 виртуальная машина, кластерная инсталляция, DMZ.
Решение
Из файла /etc/coredns/conf.d/main_domains.hosts удалите строку
di.{$COREDNS_EXTERNAL_DOMAIN} и перезапустите CoreDNS командой:
В логах Keycloak ошибка: Invalid argument (400) - Cannot find key of appropriate type to decrypt AP-REQ
Проблема может возникнуть из-за того, что Java Keycloak не может прочитать keytab файл:
-
Необходимо исправить deployments Keycloak, добавив следующие данные:
-
Перезапустите под.
-
Переместите keytab в папку
/mnt/keytab-writable
: -
Измените путь до keytab в веб-интерфейсе Keycloak.
Внутри пода Keycloak невозможно достучаться до контроллера домена
Проверьте, что из пода доступен контроллер домена. Например:
Если команда завершается ошибкой, то необходимо добавить в deployments Keycloak, в секцию spec.template.spec
следующие строчки:
Внутри пода Keycloak необходимо настроить krb5.conf
-
Создайте на машине с Keycloak файл
krb5.conf
. Пример содержимого:[libdefaults] default_realm = CONTOSO.COM kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true isInitiator=false fcc-mit-ticketflags = true allow_weak_crypto = true default_tkt_enctypes = aes256-cts-hmac-sha1-96 default_tgs_enctypes = aes256-cts-hmac-sha1-96 permitted_enctypes = aes256-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 camellia256-cts-cmac aes128-cts-hmac-sha1-96 aes128-cts-hmac-sha256-128 camellia128-cts-cmac arcfour-hmac [realms] CONTOSO.COM = { kdc = dc01.CONTOSO.COM admin_server = dc01.CONTOSO.COM } [domain_realm] .contoso.com = CONTOSO.COM contoso.com = CONTOSO.COM
-
Выполните команду, указав путь до файла
krb5.conf
: -
Обновите deployments:
И вставьте: