Keycloak

Когда выполнены действия по подготовке к настройке подключения в платформе (получена конфигурация внешнего сервиса аутентификации), вы можете внести изменения в ssc Модуля управления аутентификацией (shturval-auth) из интерфейса командной строки или из графического интерфейса.

Рекомендуется выполнять подключение внешних сервисов аутентификации из интерфейса командной строки (консоли).

Подключение из интерфейса командной строки

Авторизуйтесь в платформе “Штурвал” по kubeconfig, полученному при инсталляции платформы или можно взять его с Control Plane узла платформы /etc/kubernetes/admin.conf.

  1. Получите 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
  1. Удалите из shturval-auth-ssc.yaml раздел status, параметры и их значения:
Удаляемые параметры
 creationTimestamp:
 resourceVersion:
 uid: 
 finalizers:
 generation:
 annotations: 
  1. Подготовьте 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==

  1. Примените изменения:
Команда
kubectl apply -f УКАЖИТЕ-ФАЙЛ-С-МАНИФЕСТОМ-PatchSSC

Пример имени файла с манифестом - shturval-auth-keycloak.yaml.

  1. Дождитесь применения изменений. В неймспейсе shturval-backend проверьте данные Secret auth-idps. Он должен содержать конфигурацию, заданную в AUTH_EXTERNAL_IDP_SECRET_BASE64.
Команда

kubectl get secret auth-idps -n shturval-backend -o yaml

Когда применены изменения, для доступа в кластер с помощью kubeconfig загрузите и используйте новый kubeconfig. Подробнее о способах получения kubeconfig на странице Действия в кластере.

Подключение из графического интерфейса

  1. Подготовьте манифест объекта 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==

  1. В кластере управления загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот

keycloakpatch

  1. Если после применения PatchSSC сеанс работы в графическом интерфейсе платформы завершен, выполните подключение к платформе из консоли. Используйте kubeconfig кластера управления. Если аутентификация не была прервана, вы можете продолжить выполнять следующие действия в графическом интерфейсе.

  2. В неймспейсе shturval-backend проверьте данные Secret auth-idps. Secret должен содержать конфигурацию, заданную в AUTH_EXTERNAL_IDP_SECRET_BASE64.

После применения изменений для доступа в кластер с помощью kubeconfig загрузите и используйте новый kubeconfig. Подробнее о способах получения kubeconfig на странице Действия в кластере.

×