Подключить внешний сервис аутентификации
Платформа “Штурвал” совместима с внешними сервисами аутентификации по протоколу OIDC OAuth 2.0. Вы можете подключить внешние сервисы аутентификации: Blitz, Keycloak.
Для подключения внешнего сервиса аутентификации, необходимо внести изменения в спецификацию модуля программного управления Платформой (shturval-backend
).
Обратите внимание!
- До подключения внешнего провайдера аутентификации загрузите и сохраните действующие kubeconfigs кластеров (клиентских кластеров, кластера управления). Kubeconfig потребуется для подключения к кластеру из консоли.
- Для корректной интеграции с платформой “Штурвал” на стороне внешнего сервиса аутентификации (Blitz, Keycloak) в
access_token
должны быть настроены поля:- sub, где указывается username пользователя;
- claims - атрибут группы пользователя;
- aud - client_id.
Рекомендуется выполнять подключение внешних сервисов аутентификации из консоли.
Когда в кластере управления работают внешние сервисы такие как: Opensearch, ArgoCD, Grafana, то при изменении провайдера аутентификации изменения в ssc не потребуются.
Keycloak
Подключение Keycloak из консоли
Авторизуйтесь в платформе “Штурвал” по kubeconfig, полученному при инсталляции платформы или можно взять его с мастер узла платформы /etc/kubernetes/admin.conf
.
- Получите 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
- Удалите из shturval-backend-ssc.yaml раздел
status
, параметры и их значения:
Удаляемые параметры
creationTimestamp:
resourceVersion:
uid:
finalizers:
generation:
annotations:
- В
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
.
Скриншот
Пример 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=
- Примените изменения:
Команда
kubectl apply -f shturval-backend-ssc.yaml
- Дождитесь применения изменений. В неймспейсе
shturval-backend
проверьте данные Secretauth-idps
. Он должен содержать конфигурацию, заданную вAUTH_EXTERNAL_IDP_SECRET_BASE64
.
Команда
kubectl get secret auth-idps -n shturval-backend -o yaml
- Перезапустите поды 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 из графического интерфейса
- В кластере управления в боковом меню откройте раздел Сервисы и репозитории и перейдите на страницу Установленные сервисы. На вкладке “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
.
Скриншот
Сохраните изменения.
-
Если после сохранения изменений сеанс работы в графическом интерфейсе платформы завершен, выполните подключение к платформе из консоли. Используйте kubeconfig кластера управления. Если аутентификация не была прервана, вы можете продолжить выполнять следующие действия в графическом интерфейсе.
-
В неймспейсе
shturval-backend
проверьте данные Secretauth-idps
. Secret должен содержать конфигурацию, заданную вAUTH_EXTERNAL_IDP_SECRET_BASE64
. -
Удалите поды authn и shturval-backend в неймспейсе
shturval-backend
. Поды перезапустятся.
Когда изменен сервис аутентификации, для доступа в кластер с помощью kubeconfig загрузите и используйте новый kubeconfig. Подробнее о способах получения kubeconfig на странице Действия в кластере.
Blitz
Авторизуйтесь в платформе “Штурвал” по kubeconfig, полученному при инсталляции платформы или можно взять его с мастер узла платформы /etc/kubernetes/admin.conf
.
ssc shturval-backend
- Получите 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
- Удалите из shturval-backend-ssc.yaml раздел
status
, параметры и их значения:
Удаляемые параметры
creationTimestamp:
resourceVersion:
uid:
finalizers:
generation:
annotations:
- В
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=
- Примените изменения:
Команда
kubectl apply -f shturval-backend-ssc.yaml
- Дождитесь применения изменений. В неймспейсе
shturval-backend
проверьте данные Secretauth-idps
. Он должен содержать конфигурацию, заданную вAUTH_EXTERNAL_IDP_SECRET_BASE64
.
Команда
kubectl get secret auth-idps -n shturval-backend -o yaml
- Перезапустите поды 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), то вы сможете повторно пройти аутентификацию с помощью встроенного сервиса аутентификации. -
Когда сеанс работы в графическом интерфейсе будет прерван, в браузере выполните вход в платформу через форму аутентификации внутреннего сервиса.
-
Если сеанс работы в платформе прерван и вы не можете пройти повторную аутентификацию, выполните действия:
-
Подключитесь в кластер управления по kubeconfig, полученному при инсталляции платформы. Также Kubeconfig можно взять с мастер узла платформы
/etc/kubernetes/admin.conf
. -
Получите 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
- Примените изменения.
Команда
kubectl apply -f shturval-backend-ssc.yaml
- По завершении применения изменений аутентификация должна отработать корректно.