С чего начать
Платформа “Штурвал” совместима с внешними сервисами аутентификации по протоколу OIDC OAuth 2.0.
Чтобы подключить внешний сервис аутентификации, выполните шаги по подготовке к настройке подключения внешнего сервиса в платформе.
Вы можете подключить внешние сервисы аутентификации:
Когда в кластере управления работают сервисы такие как: ArgoCD, Grafana, то при изменении сервиса аутентификации изменения в ssc не потребуются.
Если внешний сервис аутентификации перестал работать, вы можете выключить его и возобновить доступ для пользователей. Выполните шаги инструкции.
Подготовка к настройке подключения внешнего сервиса в платформе
Требования к внешнему сервису
Для корректной интеграции с платформой “Штурвал” на стороне внешнего сервиса аутентификации (Blitz, Keycloak) в access_token должны быть настроены поля:
- sub, где указывается username пользователя;
- claims - атрибут группы пользователя;
- aud - client_id;
- name - как правило соответствует полю Display name. Может соответствовать samAccountName;
- email - должен соответствовать полю mail;
- preferred_username - должен соответствовать полю samAccountName;
- iss - URL issuer провайдера аутентификации;
- jti, exp, iat - должны формироваться в соответствии с RFC 7519.
Требования к конфигурации внешнего сервиса
До подключения внешнего сервиса аутентификации в платформе “Штурвал”:
- Подготовьте конфигурацию внешнего провайдера. Для этого:
-
Получите корневой CA сертификат внешнего сервиса аутентификации, закодированный в base64. Вы можете запросить сертификат у администратора внешнего сервиса аутентификации или получить его способом, приведенным далее:
- В интерфейсе командной строки подключитесь по SSH к сервису аутентификации и получите сертификат, закодированый в base64.
Команда
cat <путь до файла сертификата внешнего сервиса аутентификации> | base64
Например, путь до файла сертификата внешнего сервиса аутентификации: /usr/share/keycloak/cert/keycloak.shturval.crt.
Пример ответа
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tClvRgdC10YDRgtC40YTQuNC60LDRgiDQstC90LXRiNC90LXQs9C+INGB0LXRgNCy0LjRgdCwINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40LhdCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=
- Сформируйте конфигурацию внешнего провайдера согласно примеру, использовав ваши значения параметров.
Пример конфигурации внешнего провайдера
{
"name": <ваше значение параметра>,
"issuerUrl": <ваше значение параметра>,
"codeVerifyMethod": <ваше значение параметра>,
"client": {
"clientId": <ваше значение параметра>,
"clientSecret": <ваше значение параметра>
},
"insecureSkipVerify": <ваше значение параметра>,
"caBundle": <ваше значение параметра>
}
| Параметр | Описание | Пример |
|---|---|---|
name |
Имя конфигурации (задайте любое) | keycloak |
issuerUrl |
URL issuer провайдера аутентификации. Например, для Keycloak, Issuer находится в разделе Identity providers в блоке OpenID Connect settings | https://keycloak.ip-XX-XX-XX-XX.shturval.link/realms/shturval |
codeVerifyMethod |
Если в Keycloak включен Proof Key for Code Exchange Code (PKCE) Challenge Method, укажите Challenge Method в параметре codeVerifyMethod. Поддерживаются только S256 и plain. Когда Challenge Method не включен, оставьте codeVerifyMethod пустым или не указывайте его. |
S256 |
client.clientId |
ID клиента провайдера аутентификации внешнего сервиса аутентификации | shturval_unikeycloak_backend_client_id |
client.clientSecret |
Секрет клиента провайдера аутентификации внешнего сервиса аутентификации. Например, для Keycloak clientSecret находится в разделе Clients на странице клиента, вкладка Credentials в поле Client Secret | HG0rxJMKopmAGSasDxDtkJYQH |
insecureSkipVerify |
Устанавливать ли tls-соединение | true |
caBundle |
Закодированный в base64 корневой CA сертификат внешнего сервиса аутентификации. Добавьте в caBundle, полученный сертификат, закодированный в base64. |
* |
*LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tClvRgdC10YDRgtC40YTQuNC60LDRgiDQstC90LXRiNC90LXQs9C+INGB0LXRgNCy0LjRgdCwINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40LhdCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=
Если пользователям в графическом интерфейсе доступна возможность выбора сервиса аутентификации (внешний, внутренний), в окне аутентификации будет отображаться указанное значение в параметре name.
Скриншот

-
Закодируйте в base64 конфигурацию, подготовленную на предыдущем шаге.
-
Загрузите и сохраните действующие kubeconfigs кластеров (клиентских кластеров, кластера управления). Kubeconfig потребуется для подключения к кластеру из консоли.