Подключить внешний сервис аутентификации

Платформа “Штурвал” совместима с внешними сервисами аутентификации по протоколу OIDC OAuth 2.0. Вы можете подключить внешние сервисы аутентификации: Blitz, Keycloak.

Для подключения внешнего сервиса аутентификации, необходимо внести изменения в спецификацию модуля программного управления Платформой (shturval-backend).

Обратите внимание!

  1. До подключения внешнего провайдера аутентификации загрузите и сохраните действующие kubeconfigs кластеров (клиентских кластеров, кластера управления). Kubeconfig потребуется для подключения к кластеру из консоли.
  2. Для корректной интеграции с платформой “Штурвал” на стороне внешнего сервиса аутентификации (Blitz, Keycloak) в access_token должны быть настроены поля:
    • sub, где указывается username пользователя;
    • claims - атрибут группы пользователя;
    • aud - client_id.

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

Когда в кластере управления работают внешние сервисы такие как: Opensearch, ArgoCD, Grafana, то при изменении провайдера аутентификации изменения в ssc не потребуются.

Keycloak

Подключение Keycloak из консоли

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

  1. Получите ssc shturval-backend и сохраните исходную ssc, чтобы иметь возможность быстро откатить изменения в случае ошибки:
Команда
# Получите ssc shturval-backend
kubectl get ssc shturval-backend -o yaml > shturval-backend-ssc.yaml
# Сохранить исходную ssc
cp shturval-backend-ssc.yaml shturval-backend-ssc.yaml.backup
  1. Удалите из shturval-backend-ssc.yaml раздел status, параметры и их значения:
Удаляемые параметры
 creationTimestamp:
 resourceVersion:
 uid: 
 finalizers:
 generation:
 annotations: 
  1. В spec.customvalues сконфигурируйте параметры.
Пример customvalues
customvalues
    AUTH_EXTERNAL_IDP_SECRET_BASE64: <ваше значение параметра>
    AUTH_IDP_ACTIVE: <ваше значение параметра>
    SKIP_INTERNAL_AUTH_FORM: <ваше значение параметра>
Параметр Описание Тип данных Пример
AUTH_EXTERNAL_IDP_SECRET_BASE64 Конфигурация внешнего провайдера, закодированная в base64 string base64*
AUTH_IDP_ACTIVE Подключение внешнего провайдера аутентификации. При необходимости отключения Keycloak достаточно установить false в этом параметре boolean true
SKIP_INTERNAL_AUTH_FORM Возможность аутентификации в графическом интерфейсе с внешним сервисом. Если данный параметр не будет установлен или его значение false, то для аутентификации будут доступны внешний и внутренний сервисы. Если значение true, будет доступен только внешний boolean true

*TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

Пример конфигурации внешнего провайдера
{
  "name": "keycloak", # Задайте любое имя
  "issuerUrl": "https://keycloak.ip-XX-XX-XX-XX.shturval.link/realms/shturval", #  URL issuer провайдера аутентификации
  "codeVerifyMethod": "S256", 
  "client": {
    "clientId": "shturval_unikeycloak_backend_client_id", # ID клиента провайдера аутентификации Keycloak
    "clientSecret": "HG0rxJMKopmAGSasDxDtkJYQH"  # Секрет клиента провайдера аутентификации Keycloak
  },
  "insecureSkipVerify": true, # Не устанавливать tls-соединение
  "caBundle": "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4="  # Закодированный в base64 корневой CA сертификат Keycloak
}
  • Если в Keycloak включен Proof Key for Code Exchange Code (PKCE) Challenge Method, укажите Challenge Method в параметре codeVerifyMethod. Поддерживаются только S256 и plain. Когда Challenge Method не включен, оставьте codeVerifyMethod пустым или не указывайте его.

Получить caBundle вы можете у администратора внешнего сервиса аутентификации или способом, приведенным далее:

В интерфейсе командной строки подключитесь по SSH к сервису аутентификации Keycloak и получите сертификат, закодированый в base64.

Команда
cat /usr/share/keycloak/cert/keycloak.shturval.crt | base64

Где вместо /usr/share/keycloak/cert/keycloak.shturval.crt укажите путь до файла сертификата Keycloak.

Пример ответа
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

Если пользователям в графическом интерфейсе доступна возможность выбора сервиса аутентификации (внешний, внутренний), в окне аутентификации будет отображаться имя, указанное в name.

Скриншот

authextern

Пример ssc shturval-backend
apiVersion: ops.shturval.tech/v1beta1
kind: ShturvalServiceConfig
metadata:
  annotations:
    shturval.tech/description: Модуль программного управления Платформой. Прикладной
      программный интерфейс управления Платформой.
    shturval.tech/name: Модуль программного управления Платформой
    shturval.tech/single-instance: "true"
    updatedDate: "2024-11-11T11:48:01Z"
    username: shturval
  labels:
    k8slens-edit-resource-version: v1beta1
    ssc.shturval.tech/type: system
  name: shturval-backend
spec:
  chart: shturval-backend
  customvalues: |
    AUTH_EXTERNAL_IDP_SECRET_BASE64: <ваше значение параметра>
    AUTH_IDP_ACTIVE: <ваше значение параметра>
    SKIP_INTERNAL_AUTH_FORM: <ваше значение параметра>
# Здесь могут быть другие параметры

  dependency:
  - shturval-backend-crds
  - shturval-ingress-controller
  insecure: true
  iscritical: false
  mode: manual
  namespace: shturval-backend
  reponame: shturval
  version: 2.10.0
Параметр Описание Тип данных Пример
AUTH_EXTERNAL_IDP_SECRET_BASE64 Конфигурация внешнего провайдера, закодированная в base64 string base64*
AUTH_IDP_ACTIVE Подключение внешнего провайдера аутентификации. При необходимости отключения Keycloak достаточно установить false в этом параметре boolean true
SKIP_INTERNAL_AUTH_FORM Возможность аутентификации в графическом интерфейсе с внешним сервисом. Если данный параметр не будет установлен или его значение false, то для аутентификации будут доступны внешний и внутренний сервисы. Если значение true, будет доступен только внешний boolean true

*TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

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

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

  1. Перезапустите поды authn и shturval-backend в неймспейсе shturval-backend.
Команда
# Получите все поды неймспейса shturval-backend
kubectl get pods -n shturval-backend

# Пример ответа
NAME                                             READY   STATUS    RESTARTS        AGE
authn-6944f45ddf-wjs4z                           2/2     Running   0               22h
docs-cb69967db-4b2vs                             1/1     Running   0               15h
monitoring-authz-5d9948c4fd-g9zw7                2/2     Running   0               25h
shturval-backend-f44b94bc4-8tr9v                 3/3     Running   1 (5h34m ago)   22h
shturval-backend-f44b94bc4-swq25                 3/3     Running   0               22h
shturval-backend-redis-master-0                  1/1     Running   0               13d
shturval-frontend-7489c96fcd-l9pzz               1/1     Running   0               25m
shturval-permissions-operator-74c7cc657d-r7q4j   2/2     Running   0               22h

# Перезапуск подов
kubectl delete pod authn-6944f45ddf-wjs4z shturval-backend-f44b94bc4-8tr9v shturval-backend-f44b94bc4-swq25 -n shturval-backend

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

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

  1. В кластере управления в боковом меню откройте раздел Сервисы и репозитории и перейдите на страницу Установленные сервисы. На вкладке “shturval” найдите Модуль программного управления Платформой (shturval-backend), перейдите к управлению модулем и в блоке Спецификация сервиса измените параметры.
Пример customvalues
AUTH_EXTERNAL_IDP_SECRET_BASE64: <ваше значение параметра>
AUTH_IDP_ACTIVE: <ваше значение параметра>
SKIP_INTERNAL_AUTH_FORM: <ваше значение параметра>
Параметр Описание Тип данных Пример
AUTH_EXTERNAL_IDP_SECRET_BASE64 Конфигурация внешнего провайдера, закодированная в base64 string base64*
AUTH_IDP_ACTIVE Подключение внешнего провайдера аутентификации. При необходимости отключения Keycloak достаточно установить false в этом параметре boolean true
SKIP_INTERNAL_AUTH_FORM Возможность аутентификации в графическом интерфейсе с внешним сервисом. Если данный параметр не будет установлен или его значение false, то для аутентификации будут доступны внешний и внутренний сервисы. Если значение true, будет доступен только внешний boolean true

*TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

Пример конфигурации
{
  "name": "keycloak", # Задайте любое имя
  "issuerUrl": "https://keycloak.ip-XX-XX-XX-XX.shturval.link/realms/shturval", #  URL issuer провайдера аутентификации
  "codeVerifyMethod": "S256", 
  "client": {
    "clientId": "shturval_unikeycloak_backend_client_id", # ID клиента провайдера аутентификации Keycloak
    "clientSecret": "HG0rxJMKopmAGSasDxDtkJYQH"  # Секрет клиента провайдера аутентификации Keycloak
  },
  "insecureSkipVerify": true, # Не устанавливать tls-соединение
  "caBundle": "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4="  # Закодированный в base64 корневой CA сертификат Keycloak
}
  • Если в Keycloak включен Proof Key for Code Exchange Code (PKCE) Challenge Method, укажите Challenge Method в параметре codeVerifyMethod. Поддерживаются только S256 и plain. Когда Challenge Method не включен, оставьте codeVerifyMethod пустым или не указывайте его.

Получить caBundle для конфигурации внешнего провайдера вы можете у администратора внешнего сервиса аутентификации или способом, приведенным далее:

В интерфейсе командной строки подключитесь по SSH к сервису аутентификации Keycloak и получите сертификат, закодированный в base64.

Команда
cat /usr/share/keycloak/cert/keycloak.shturval.crt | base64

Где вместо /usr/share/keycloak/cert/keycloak.shturval.crt укажите путь до файла сертификата Keycloak.

Пример ответа
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

Если пользователям в графическом интерфейсе доступна возможность выбора сервиса аутентификации (внешний, внутренний), в окне аутентификации будет отображаться имя, указанное в name.

Скриншот

authextern

Сохраните изменения.

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

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

  3. Удалите поды authn и shturval-backend в неймспейсе shturval-backend. Поды перезапустятся.

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

Blitz

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

ssc shturval-backend

  1. Получите ssc shturval-backend и сохраните исходную ssc, чтобы иметь возможность быстро откатить изменения в случае ошибки:
Команда
# Получите ssc shturval-backend
kubectl get ssc shturval-backend -o yaml > shturval-backend-ssc.yaml
# Сохранить исходную ssc
cp shturval-backend-ssc.yaml shturval-backend-ssc.yaml.backup
  1. Удалите из shturval-backend-ssc.yaml раздел status, параметры и их значения:
Удаляемые параметры
 creationTimestamp:
 resourceVersion:
 uid: 
 finalizers:
 generation:
 annotations: 
  1. В spec.customvalues сконфигурируйте параметры.
Пример customvalues
customvalues
    AUTH_EXTERNAL_IDP_SECRET_BASE64: <ваше значение параметра>
    AUTH_IDP_ACTIVE: <ваше значение параметра>
    SKIP_INTERNAL_AUTH_FORM: <ваше значение параметра>
Параметр Описание Тип данных Пример
AUTH_EXTERNAL_IDP_SECRET_BASE64 Конфигурация внешнего провайдера, закодированная в base64 string base64*
AUTH_IDP_ACTIVE Подключение внешнего провайдера аутентификации. При необходимости отключения Blitz достаточно установить false в этом параметре boolean true
SKIP_INTERNAL_AUTH_FORM Возможность аутентификации в графическом интерфейсе с внешним сервисом. Если данный параметр не будет установлен или его значение false, то для аутентификации будут доступны внешний и внутренний сервисы. Если значение true, будет доступен только внешний boolean true

*TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

В AUTH_EXTERNAL_IDP_SECRET_BASE64 укажите конфигурацию внешнего провайдера, закодированную в base64.

Пример конфигурации
{
  "name": "blitz", # Задайте любое имя
  "issuerUrl": "https://blitz.ip-XX-XX-XX-XX.shturval.link/realms/shturval", #  URL issuer провайдера аутентификации 
  "client": {
    "clientId": "shturval_uniblitz_backend_client_id", # ID клиента провайдера аутентификации Blitz
    "clientSecret": "HG0rxJMKopmAGSasDxDtkJYQH"  # Секрет клиента провайдера аутентификации Blitz
  },
  "insecureSkipVerify": true, # Не устанавливать tls-соединение
  "caBundle": "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4="  # Закодированный в base64 корневой CA сертификат Blitz
}

Получить caBundle для конфигурации внешнего провайдера вы можете у администратора внешнего сервиса аутентификации или способом, приведенным далее:

В интерфейсе командной строки подключитесь по SSH к сервису аутентификации Blitz и получите сертификат, закодированный в base64.

Команда
cat /usr/share/blitz/certs/shturval_blitz.crt | base64

Где вместо /usr/share/blitz/certs/shturval_blitz.crt укажите путь до файла сертификата Blitz.

Пример ответа
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tDQpNSUlES3pDQ0F

Если пользователям в графическом интерфейсе доступна возможность выбора сервиса аутентификации (внешний, внутренний), в окне аутентификации будет отображаться имя, указанное в name.

Пример ssc shturval-backend
apiVersion: ops.shturval.tech/v1beta1
kind: ShturvalServiceConfig
metadata:
  annotations:
    shturval.tech/description: Модуль программного управления Платформой. Прикладной
      программный интерфейс управления Платформой.
    shturval.tech/name: Модуль программного управления Платформой
    shturval.tech/single-instance: "true"
    updatedDate: "2024-11-11T11:48:01Z"
    username: shturval
  labels:
    k8slens-edit-resource-version: v1beta1
    ssc.shturval.tech/type: system
  name: shturval-backend
spec:
  chart: shturval-backend
  customvalues: |
    AUTH_EXTERNAL_IDP_SECRET_BASE64:  <ваше значение параметра>
    AUTH_IDP_ACTIVE:  <ваше значение параметра>
    SKIP_INTERNAL_AUTH_FORM:  <ваше значение параметра>
# Здесь могут быть другие параметры

  dependency:
  - shturval-backend-crds
  - shturval-ingress-controller
  insecure: true
  iscritical: false
  mode: manual
  namespace: shturval-backend
  reponame: shturval
  version: 2.10.0
Параметр Описание Тип данных Пример
AUTH_EXTERNAL_IDP_SECRET_BASE64 Конфигурация внешнего провайдера, закодированная в base64 string base64*
AUTH_IDP_ACTIVE Подключение внешнего провайдера аутентификации. При необходимости отключения Blitz достаточно установить false в этом параметре boolean true
SKIP_INTERNAL_AUTH_FORM Возможность аутентификации в графическом интерфейсе с внешним сервисом. Если данный параметр не будет установлен или его значение false, то для аутентификации будут доступны внешний и внутренний сервисы. Если значение true, будет доступен только внешний boolean true

*TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

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

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

  1. Перезапустите поды authn и shturval-backend в неймспейсе shturval-backend.
Команда
# Получите все поды неймспейса shturval-backend
kubectl get pods -n shturval-backend

# Пример ответа
NAME                                             READY   STATUS    RESTARTS        AGE
authn-6944f45ddf-wjs4z                           2/2     Running   0               22h
docs-cb69967db-4b2vs                             1/1     Running   0               15h
monitoring-authz-5d9948c4fd-g9zw7                2/2     Running   0               25h
shturval-backend-f44b94bc4-8tr9v                 3/3     Running   1 (5h34m ago)   22h
shturval-backend-f44b94bc4-swq25                 3/3     Running   0               22h
shturval-backend-redis-master-0                  1/1     Running   0               13d
shturval-frontend-7489c96fcd-l9pzz               1/1     Running   0               25m
shturval-permissions-operator-74c7cc657d-r7q4j   2/2     Running   0               22h

# Перезапуск подов
kubectl delete pod authn-6944f45ddf-wjs4z shturval-backend-f44b94bc4-8tr9v shturval-backend-f44b94bc4-swq25 -n shturval-backend

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

Доступ в платформу, если внешний сервис перестал работать

Допустим, в платформе для аутентификации вы подключили внешний сервис, например, Blitz или Keycloak. Возникают ситуации, когда по независящим от платформы обстоятельствам, на стороне внешнего сервиса аутентификации может произойти сбой.

  • Если при подключении внешнего сервиса принудительно не была установлена аутентификация только с внешним сервисом (т.е. значение параметра SKIP_INTERNAL_AUTH_FORM: false или параметр отсутствует в ssc shturval-backend), то вы сможете повторно пройти аутентификацию с помощью встроенного сервиса аутентификации.

  • Когда сеанс работы в графическом интерфейсе будет прерван, в браузере выполните вход в платформу через форму аутентификации внутреннего сервиса.

  • Если сеанс работы в платформе прерван и вы не можете пройти повторную аутентификацию, выполните действия:

  1. Подключитесь в кластер управления по kubeconfig, полученному при инсталляции платформы. Также Kubeconfig можно взять с мастер узла платформы /etc/kubernetes/admin.conf.

  2. Получите ssc shturval-backend. Удалите раздел status и в spec.customvalues измените значение параметра AUTH_IDP_ACTIVE на falseи установите false в SKIP_INTERNAL_AUTH_FORM.

Команда
# Получите ssc shturval-backend
kubectl get ssc shturval-backend -o yaml > shturval-backend-ssc.yaml

# Удаляемые параметры в status
creationTimestamp:
resourceVersion:
uid: 
finalizers:
generation:
annotations: 
customvalues
AUTH_IDP_ACTIVE: false
SKIP_INTERNAL_AUTH_FORM: false
  1. Примените изменения.
Команда
kubectl apply -f shturval-backend-ssc.yaml
  1. По завершении применения изменений аутентификация должна отработать корректно.
×