Keycloak
Когда выполнены действия по подготовке к настройке подключения в платформе (получена конфигурация внешнего сервиса аутентификации), вы можете внести изменения в ssc Модуля управления аутентификацией (shturval-auth) из интерфейса командной строки или из графического интерфейса.
Рекомендуется выполнять подключение внешних сервисов аутентификации из интерфейса командной строки (консоли).
Подключение из интерфейса командной строки
Авторизуйтесь в платформе “Штурвал” по kubeconfig, полученному при инсталляции платформы или можно взять его с Control Plane узла платформы /etc/kubernetes/admin.conf.
- Получите ssc
shturval-authи сохраните исходную ssc, чтобы иметь возможность быстро откатить изменения в случае ошибки:
Команда
# Получите ssc shturval-auth
kubectl get ssc shturval-auth -o yaml > shturval-auth-ssc.yaml
# Сохранить исходную ssc
cp shturval-auth-ssc.yaml shturval-auth-ssc.yaml.backup
- Удалите из shturval-auth-ssc.yaml раздел
status, параметры и их значения:
Удаляемые параметры
creationTimestamp:
resourceVersion:
uid:
finalizers:
generation:
annotations:
- Подготовьте YAML-файл с манифестом объекта ShturvalServicePatch (PatchSSC) для применения к спецификации (ssc)
shturval-auth. В PatchSSC задайте требуемые параметры вcustomvalues, используя свои значения параметров.
Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: <имя ресурса>
spec:
shturvalServiceConfigName: shturval-auth
customvalues:
AUTH_EXTERNAL_IDP_SECRET_BASE64: <ваше значение параметра>
AUTH_IDP_ACTIVE: <ваше значение параметра>
SKIP_INTERNAL_AUTH_FORM: <ваше значение параметра>
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
metadata.name |
Имя создаваемого PatchSSC | string | shturval-auth-keycloak |
AUTH_EXTERNAL_IDP_SECRET_BASE64 |
Конфигурация внешнего провайдера, закодированная в base64, полученная на этапе подготовки к настройке подключения внешнего сервиса | string | base64* |
AUTH_IDP_ACTIVE |
Подключение внешнего провайдера аутентификации. При необходимости отключения Keycloak достаточно установить false в этом параметре |
boolean | true |
SKIP_INTERNAL_AUTH_FORM |
Возможность аутентификации в графическом интерфейсе с внешним сервисом. Если данный параметр не будет установлен или его значение false, то для аутентификации будут доступны внешний и внутренний сервисы. Если значение true, будет доступен только внешний |
boolean | true |
*ewogICJuYW1lIjogImtleWNsb2FrIiwgCiAgImlzc3VlclVybCI6ICJodHRwczovL2tleWNsb2FrLmlwLVhYLVhYLVhYLVhYLnNodHVydmFsLmxpbmsvcmVhbG1zL3NodHVydmFsIiwgCiAgImNvZGVWZXJpZnlNZXRob2QiOiAiUzI1NiIsIAogICJjbGllbnQiOiB7CiAgICAiY2xpZW50SWQiOiAic2h0dXJ2YWxfdW5pa2V5Y2xvYWtfYmFja2VuZF9jbGllbnRfaWQiLCAKICAgICJjbGllbnRTZWNyZXQiOiAiSEcwcnhKTUtvcG1BR1Nhc0R4RHRrSllRSCIgCiAgfSwKICAiaW5zZWN1cmVTa2lwVmVyaWZ5IjogdHJ1ZSwgCiAgImNhQnVuZGxlIjogIkxTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENsdlJnZEMxMFlEUmd0QzQwWVRRdU5DNjBMRFJnaURRc3RDOTBMWFJpTkM5MExYUXM5QytJTkdCMExYUmdOQ3kwTGpSZ2RDd0lOQ3cwWVBSZ3RDMTBMM1JndEM0MFlUUXVOQzYwTERSaHRDNDBMaGRDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMD0iICAKfQ==
- Примените изменения:
Команда
kubectl apply -f УКАЖИТЕ-ФАЙЛ-С-МАНИФЕСТОМ-PatchSSC
Пример имени файла с манифестом - shturval-auth-keycloak.yaml.
- Дождитесь применения изменений. В неймспейсе
shturval-backendпроверьте данные Secretauth-idps. Он должен содержать конфигурацию, заданную вAUTH_EXTERNAL_IDP_SECRET_BASE64.
Команда
kubectl get secret auth-idps -n shturval-backend -o yaml
Когда применены изменения, для доступа в кластер с помощью kubeconfig загрузите и используйте новый kubeconfig. Подробнее о способах получения kubeconfig на странице Действия в кластере.
Подключение из графического интерфейса
- Подготовьте манифест объекта ShturvalServicePatch (PatchSSC) для применения к спецификации (ssc) Модуля программного управления Платформой
shturval-backend. В PatchSSC задайте требуемые параметры вcustomvalues, как в приведенном примере ниже, используя свои значения.
Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: <имя ресурса>
spec:
shturvalServiceConfigName: shturval-auth
customvalues:
AUTH_EXTERNAL_IDP_SECRET_BASE64: <ваше значение параметра>
AUTH_IDP_ACTIVE: <ваше значение параметра>
SKIP_INTERNAL_AUTH_FORM: <ваше значение параметра>
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
metadata.name |
Имя создаваемого PatchSSC | string | shturval-auth-keycloak |
AUTH_EXTERNAL_IDP_SECRET_BASE64 |
Конфигурация внешнего провайдера, закодированная в base64 | string | base64* |
AUTH_IDP_ACTIVE |
Подключение внешнего провайдера аутентификации. При необходимости отключения Keycloak достаточно установить false в этом параметре |
boolean | true |
SKIP_INTERNAL_AUTH_FORM |
Возможность аутентификации в графическом интерфейсе с внешним сервисом. Если данный параметр не будет установлен или его значение false, то для аутентификации будут доступны внешний и внутренний сервисы. Если значение true, будет доступен только внешний |
boolean | true |
**ewogICJuYW1lIjogImtleWNsb2FrIiwgCiAgImlzc3VlclVybCI6ICJodHRwczovL2tleWNsb2FrLmlwLVhYLVhYLVhYLVhYLnNodHVydmFsLmxpbmsvcmVhbG1zL3NodHVydmFsIiwgCiAgImNvZGVWZXJpZnlNZXRob2QiOiAiUzI1NiIsIAogICJjbGllbnQiOiB7CiAgICAiY2xpZW50SWQiOiAic2h0dXJ2YWxfdW5pa2V5Y2xvYWtfYmFja2VuZF9jbGllbnRfaWQiLCAKICAgICJjbGllbnRTZWNyZXQiOiAiSEcwcnhKTUtvcG1BR1Nhc0R4RHRrSllRSCIgCiAgfSwKICAiaW5zZWN1cmVTa2lwVmVyaWZ5IjogdHJ1ZSwgCiAgImNhQnVuZGxlIjogIkxTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENsdlJnZEMxMFlEUmd0QzQwWVRRdU5DNjBMRFJnaURRc3RDOTBMWFJpTkM5MExYUXM5QytJTkdCMExYUmdOQ3kwTGpSZ2RDd0lOQ3cwWVBSZ3RDMTBMM1JndEM0MFlUUXVOQzYwTERSaHRDNDBMaGRDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMD0iICAKfQ==
- В кластере управления загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот

-
Если после применения PatchSSC сеанс работы в графическом интерфейсе платформы завершен, выполните подключение к платформе из консоли. Используйте kubeconfig кластера управления. Если аутентификация не была прервана, вы можете продолжить выполнять следующие действия в графическом интерфейсе.
-
В неймспейсе
shturval-backendпроверьте данные Secretauth-idps. Secret должен содержать конфигурацию, заданную вAUTH_EXTERNAL_IDP_SECRET_BASE64.
После применения изменений для доступа в кластер с помощью kubeconfig загрузите и используйте новый kubeconfig. Подробнее о способах получения kubeconfig на странице Действия в кластере.