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

РОСА Кубис совместима с внешними сервисами аутентификации по протоколу OIDC OAuth 2.0. Можно подключить внешние сервисы аутентификации: Blitz, Keycloak.

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

Важно:

  • До подключения внешнего провайдера аутентификации загрузить и сохранить действующие kubeconfigs кластеров (клиентских кластеров, кластера управления). Kubeconfig потребуется для подключения к кластеру из консоли.
  • Для корректной интеграции с Комплексом на стороне внешнего сервиса аутентификации (Blitz, Keycloak) в access_token должны быть настроены поля:
  • subusername пользователя;
  • claims ‒ атрибут группы пользователя;
  • audclient_id;
  • name ‒ как правило, соответствует полю "Display name", но может соответствовать samAccountName;
  • email ‒ должен соответствовать полю "mail";
  • preferred_username ‒ должен соответствовать полю "samAccountName";
  • iss ‒ URL issuer провайдера аутентификации;
  • jti, exp, iat ‒ должны формироваться в соответствии с RFC 7519.

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

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

Подготовка к настройке подключения внешнего сервиса

Для настройки подключения в Комплексе потребуется:

  1. получить корневой CA-сертификат внешнего сервиса аутентификации, закодированный в base64. Можно запросить сертификат у администратора внешнего сервиса аутентификации или получить его в интерфейсе командной строки, подключившись по SSH к сервису аутентификации и получив сертификат, закодированный в base64:
cat <путь до файла сертификата внешнего сервиса аутентификации> | base64

Например, путь до файла сертификата внешнего сервиса аутентификации: /usr/share/keycloak/cert/keycloak.shturval.crt.

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

LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tXG5NSUlES3pDQ0FoT2dBd0lCQWdJVUhONU5BNWdyK3Y3MnZOakJnVml3TFRFREQ4d3dEUVlKS29aSWh2Y05BUUVMXG5CUUF3TVRFdk1DMEdBMVVFQXd3bWEyVjVZMnh2WVdzdWFYQXRNVEF0TXpFdE1UUTFMVFF4TG5Ob2RIVnlkbUZzXG5MbXhwYm1zd0hoY05NalF4TURJME1USXhNRFF3V2hjTk16UXhNREl5TVRJeE1EUXdXakF4TVM4d0xRWURWUVFEXG5EQ1pyWlhsamJHOWhheTVwY0MweE1DMHpNUzB4TkRVdE5ERXVjMmgwZFhKMllXd3ViR2x1YXpDQ0FTSXdEUVlKXG5Lb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFKanE3d0hVM1ZRRElPZVgzMmthc0hzZXNNTllSbFFEXG5kaUpqNEJiQXNHb2N4dmRlTWUvM3k3d09CQmZoZXROY0JlL0F5NFVyVzJLYUNqeE9XTTJ6YTNGOEw1QytEZ2h0XG5ldnVLNFUrV3FDcWJFWGVsT25ydlA3UkRQNmpFeHdoalRrSnNaVmFmaE5OMjhnakd6dW40SVZ1K05HUGYyakYwXG4rR1plTE1SZzRVcnRYTnR0YmZ4N3YzQUd0eGdJUnE5THEyM0VEai9VbFd1QXEyOHpiaTVESUpzNjFiOHV6WGlpXG5TR3V5M2YzQzBkQ0czdFBUc0dxeFRtM3hUaEVsQ3RNeHc0dVBDK1d1VmJ1YmpoYzYxMXZOa08yZUloN20wVlJXOEFkV0FjUGlsRmFyYmNIOUVzUzI2Snp2VFY4dGkwZVp4M01ZSFxueDRVb1JVU1NUTFRtNHVubG9UNkY1ZXZBQ0FiZ2J2TWlDNmFJVGVGbEthUUhPL3FKWGNvQ01QMXRmOGJKbFM4PVxuLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==
  1. подготовить конфигурацию внешнего провайдера, использовав ваши значения параметров, и закодировать ее в base64.

Пример конфигурации внешнего провайдера (описание параметров ‒ в таблице 1):

{
"name": <ваше значение параметра>,
"issuerUrl": <ваше значение параметра>,
"codeVerifyMethod": <ваше значение параметра>,
"client": {
"clientId": <ваше значение параметра>,
"clientSecret": <ваше значение параметра>
},
"insecureSkipVerify": <ваше значение параметра>,
"caBundle": <ваше значение параметра>
}

Сноска 1 LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tXG5NSUlES3pDQ0FoT2dBd0lCQWdJVUhONU5BNWdyK3Y3MnZOakJnVml3TFRFREQ4d3dEUVlKS29aSWh2Y05BUUVMXG5CUUF3TVRFdk1DMEdBMVVFQXd3bWEyVjVZMnh2WVdzdWFYQXRNVEF0TXpFdE1UUTFMVFF4TG5Ob2RIVnlkbUZzXG5MbXhwYm1zd0hoY05NalF4TURJME1USXhNRFF3V2hjTk16UXhNREl5TVRJeE1EUXdXakF4TVM4d0xRWURWUVFEXG5EQ1pyWlhsamJHOWhheTVwY0MweE1DMHpNUzB4TkRVdE5ERXVjMmgwZFhKMllXd3ViR2x1YXpDQ0FTSXdEUVlKXG5Lb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFKanE3d0hVM1ZRRElPZVgzMmthc0hzZXNNTllSbFFEXG5kaUpqNEJiQXNHb2N4dmRlTWUvM3k3d09CQmZoZXROY0JlL0F5NFVyVzJLYUNqeE9XTTJ6YTNGOEw1QytEZ2h0XG5ldnVLNFUrV3FDcWJFWGVsT25ydlA3UkRQNmpFeHdoalRrSnNaVmFmaE5OMjhnakd6dW40SVZ1K05HUGYyakYwXG4rR1plTE1SZzRVcnRYTnR0YmZ4N3YzQUd0eGdJUnE5THEyM0VEai9VbFd1QXEyOHpiaTVESUpzNjFiOHV6WGlpXG5TR3V5M2YzQzBkQ0czdFBUc0dxeFRtM3hUaEVsQ3RNeHc0dVBDK1d1VmJ1YmpoYzYxMXZOa08yZUloN20wVlJXOEFkV0FjUGlsRmFyYmNIOUVzUzI2Snp2VFY4dGkwZVp4M01ZSFxueDRVb1JVU1NUTFRtNHVubG9UNkY1ZXZBQ0FiZ2J2TWlDNmFJVGVGbEthUUhPL3FKWGNvQ01QMXRmOGJKbFM4PVxuLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==

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

Рисунок 1 ‒ Окно аутентификации

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 сконфигурировать параметры (таблица 2);

Пример customvalues:

customvalues
AUTH_EXTERNAL_IDP_SECRET_BASE64: <ваше значение параметра>
AUTH_IDP_ACTIVE: <ваше значение параметра>
SKIP_INTERNAL_AUTH_FORM: <ваше значение параметра>

Сноска 2 ewogICJuYW1lIjogImtleWNsb2FrIiwgCiAgImlzc3VlclVybCI6ICJodHRwczovL2tleWNsb2FrLmlwLVhYLVhYLVhYLVhYLnNodHVydmFsLmxpbmsvcmVhbG1zL3NodHVydmFsIiwgCiAgImNvZGVWZXJpZnlNZXRob2QiOiAiUzI1NiIsIAogICJjbGllbnQiOiB7CiAgICAiY2xpZW50SWQiOiAic2h0dXJ2YWxfdW5pa2V5Y2xvYWtfYmFja2VuZF9jbGllbnRfaWQiLCAKICAgICJjbGllbnRTZWNyZXQiOiAiSEcwcnhKTUtvcG1BR1Nhc0R4RHRrSllRSCIgCiAgfSwKICAiaW5zZWN1cmVTa2lwVmVyaWZ5IjogdHJ1ZSwgCiAgImNhQnVuZGxlIjogIkxTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdFhHNU5TVWxFUzNwRFEwRm9UMmRCZDBsQ1FXZEpWVWhPTlU1Qk5XZHlLM1kzTW5aT2FrSm5WbWwzVEZSRlJFUTRkM2RFVVZsS1MyOWFTV2gyWTA1QlVVVk1YRzVDVVVGM1RWUkZkazFETUVkQk1WVkZRWGQzYldFeVZqVlpNbmgyV1ZkemRXRllRWFJOVkVGMFRYcEZkRTFVVVRGTVZGRjRURzVPYjJSSVZubGtiVVp6WEc1TWJYaHdZbTF6ZDBob1kwNU5hbEY0VFVSSk1FMVVTWGhOUkZGM1YyaGpUazE2VVhoTlJFbDVUVlJKZUUxRVVYZFhha0Y0VFZNNGQweFJXVVJXVVZGRVhHNUVRMXB5V2xoc2FtSkhPV2hoZVRWd1kwTXdlRTFETUhwTlV6QjRUa1JWZEU1RVJYVmpNbWd3WkZoS01sbFhkM1ZpUjJ4MVlYcERRMEZUU1hkRVVWbEtYRzVMYjFwSmFIWmpUa0ZSUlVKQ1VVRkVaMmRGVUVGRVEwTkJVVzlEWjJkRlFrRkthbkUzZDBoVk0xWlJSRWxQWlZnek1tdGhjMGh6WlhOTlRsbFNiRkZFWEc1a2FVcHFORUppUVhOSGIyTjRkbVJsVFdVdk0zazNkMDlDUW1ab1pYUk9ZMEpsTDBGNU5GVnlWekpMWVVOcWVFOVhUVEo2WVROR09FdzFReXRFWjJoMFhHNWxkblZMTkZVclYzRkRjV0pGV0dWc1QyNXlkbEEzVWtSUU5tcEZlSGRvYWxSclNuTmFWbUZtYUU1T01qaG5ha2Q2ZFc0MFNWWjFLMDVIVUdZeWFrWXdYRzRyUjFwbFRFMVNaelJWY25SWVRuUjBZbVo0TjNZelFVZDBlR2RKVW5FNVRIRXlNMFZFYWk5VmJGZDFRWEV5T0hwaWFUVkVTVXB6TmpGaU9IVjZXR2xwWEc1VFIzVjVNMll6UXpCa1EwY3pkRkJVYzBkeGVGUnRNM2hVYUVWc1EzUk5lSGMwZFZCREsxZDFWbUoxWW1wb1l6WXhNWFpPYTA4eVpVbG9OMjB3VmxKWE9FRmtWMEZqVUdsc1JtRnlZbU5JT1VWelV6STJTbnAyVkZZNGRHa3daVnA0TTAxWlNGeHVlRFJWYjFKVlUxTlVURlJ0TkhWdWJHOVVOa1kxWlhaQlEwRmlaMkoyVFdsRE5tRkpWR1ZHYkV0aFVVaFBMM0ZLV0dOdlEwMVFNWFJtT0dKS2JGTTRQVnh1TFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUT09IiAgCn0

Пример ssc shturval-backend (описание параметров ‒ в таблице 3):

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

Сноска 3 ewogICJuYW1lIjogImtleWNsb2FrIiwgCiAgImlzc3VlclVybCI6ICJodHRwczovL2tleWNsb2FrLmlwLVhYLVhYLVhYLVhYLnNodHVydmFsLmxpbmsvcmVhbG1zL3NodHVydmFsIiwgCiAgImNvZGVWZXJpZnlNZXRob2QiOiAiUzI1NiIsIAogICJjbGllbnQiOiB7CiAgICAiY2xpZW50SWQiOiAic2h0dXJ2YWxfdW5pa2V5Y2xvYWtfYmFja2VuZF9jbGllbnRfaWQiLCAKICAgICJjbGllbnRTZWNyZXQiOiAiSEcwcnhKTUtvcG1BR1Nhc0R4RHRrSllRSCIgCiAgfSwKICAiaW5zZWN1cmVTa2lwVmVyaWZ5IjogdHJ1ZSwgCiAgImNhQnVuZGxlIjogIkxTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdFhHNU5TVWxFUzNwRFEwRm9UMmRCZDBsQ1FXZEpWVWhPTlU1Qk5XZHlLM1kzTW5aT2FrSm5WbWwzVEZSRlJFUTRkM2RFVVZsS1MyOWFTV2gyWTA1QlVVVk1YRzVDVVVGM1RWUkZkazFETUVkQk1WVkZRWGQzYldFeVZqVlpNbmgyV1ZkemRXRllRWFJOVkVGMFRYcEZkRTFVVVRGTVZGRjRURzVPYjJSSVZubGtiVVp6WEc1TWJYaHdZbTF6ZDBob1kwNU5hbEY0VFVSSk1FMVVTWGhOUkZGM1YyaGpUazE2VVhoTlJFbDVUVlJKZUUxRVVYZFhha0Y0VFZNNGQweFJXVVJXVVZGRVhHNUVRMXB5V2xoc2FtSkhPV2hoZVRWd1kwTXdlRTFETUhwTlV6QjRUa1JWZEU1RVJYVmpNbWd3WkZoS01sbFhkM1ZpUjJ4MVlYcERRMEZUU1hkRVVWbEtYRzVMYjFwSmFIWmpUa0ZSUlVKQ1VVRkVaMmRGVUVGRVEwTkJVVzlEWjJkRlFrRkthbkUzZDBoVk0xWlJSRWxQWlZnek1tdGhjMGh6WlhOTlRsbFNiRkZFWEc1a2FVcHFORUppUVhOSGIyTjRkbVJsVFdVdk0zazNkMDlDUW1ab1pYUk9ZMEpsTDBGNU5GVnlWekpMWVVOcWVFOVhUVEo2WVROR09FdzFReXRFWjJoMFhHNWxkblZMTkZVclYzRkRjV0pGV0dWc1QyNXlkbEEzVWtSUU5tcEZlSGRvYWxSclNuTmFWbUZtYUU1T01qaG5ha2Q2ZFc0MFNWWjFLMDVIVUdZeWFrWXdYRzRyUjFwbFRFMVNaelJWY25SWVRuUjBZbVo0TjNZelFVZDBlR2RKVW5FNVRIRXlNMFZFYWk5VmJGZDFRWEV5T0hwaWFUVkVTVXB6TmpGaU9IVjZXR2xwWEc1VFIzVjVNMll6UXpCa1EwY3pkRkJVYzBkeGVGUnRNM2hVYUVWc1EzUk5lSGMwZFZCREsxZDFWbUoxWW1wb1l6WXhNWFpPYTA4eVpVbG9OMjB3VmxKWE9FRmtWMEZqVUdsc1JtRnlZbU5JT1VWelV6STJTbnAyVkZZNGRHa3daVnA0TTAxWlNGeHVlRFJWYjFKVlUxTlVURlJ0TkhWdWJHOVVOa1kxWlhaQlEwRmlaMkoyVFdsRE5tRkpWR1ZHYkV0aFVVaFBMM0ZLV0dOdlEwMVFNWFJtT0dKS2JGTTRQVnh1TFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUT09IiAgCn0

  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), перейти к управлению модулем и в блоке "Спецификация сервиса" изменить параметры (рисунок 2).

Рисунок 2 ‒ Установленные сервисы

Пример customvalues (описание параметров ‒ в таблице 4):

AUTH_EXTERNAL_IDP_SECRET_BASE64: <ваше значение параметра>
AUTH_IDP_ACTIVE: <ваше значение параметра>
SKIP_INTERNAL_AUTH_FORM: <ваше значение параметра>

Сноска 4 ewogICJuYW1lIjogImtleWNsb2FrIiwgCiAgImlzc3VlclVybCI6ICJodHRwczovL2tleWNsb2FrLmlwLVhYLVhYLVhYLVhYLnNodHVydmFsLmxpbmsvcmVhbG1zL3NodHVydmFsIiwgCiAgImNvZGVWZXJpZnlNZXRob2QiOiAiUzI1NiIsIAogICJjbGllbnQiOiB7CiAgICAiY2xpZW50SWQiOiAic2h0dXJ2YWxfdW5pa2V5Y2xvYWtfYmFja2VuZF9jbGllbnRfaWQiLCAKICAgICJjbGllbnRTZWNyZXQiOiAiSEcwcnhKTUtvcG1BR1Nhc0R4RHRrSllRSCIgCiAgfSwKICAiaW5zZWN1cmVTa2lwVmVyaWZ5IjogdHJ1ZSwgCiAgImNhQnVuZGxlIjogIkxTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdFhHNU5TVWxFUzNwRFEwRm9UMmRCZDBsQ1FXZEpWVWhPTlU1Qk5XZHlLM1kzTW5aT2FrSm5WbWwzVEZSRlJFUTRkM2RFVVZsS1MyOWFTV2gyWTA1QlVVVk1YRzVDVVVGM1RWUkZkazFETUVkQk1WVkZRWGQzYldFeVZqVlpNbmgyV1ZkemRXRllRWFJOVkVGMFRYcEZkRTFVVVRGTVZGRjRURzVPYjJSSVZubGtiVVp6WEc1TWJYaHdZbTF6ZDBob1kwNU5hbEY0VFVSSk1FMVVTWGhOUkZGM1YyaGpUazE2VVhoTlJFbDVUVlJKZUUxRVVYZFhha0Y0VFZNNGQweFJXVVJXVVZGRVhHNUVRMXB5V2xoc2FtSkhPV2hoZVRWd1kwTXdlRTFETUhwTlV6QjRUa1JWZEU1RVJYVmpNbWd3WkZoS01sbFhkM1ZpUjJ4MVlYcERRMEZUU1hkRVVWbEtYRzVMYjFwSmFIWmpUa0ZSUlVKQ1VVRkVaMmRGVUVGRVEwTkJVVzlEWjJkRlFrRkthbkUzZDBoVk0xWlJSRWxQWlZnek1tdGhjMGh6WlhOTlRsbFNiRkZFWEc1a2FVcHFORUppUVhOSGIyTjRkbVJsVFdVdk0zazNkMDlDUW1ab1pYUk9ZMEpsTDBGNU5GVnlWekpMWVVOcWVFOVhUVEo2WVROR09FdzFReXRFWjJoMFhHNWxkblZMTkZVclYzRkRjV0pGV0dWc1QyNXlkbEEzVWtSUU5tcEZlSGRvYWxSclNuTmFWbUZtYUU1T01qaG5ha2Q2ZFc0MFNWWjFLMDVIVUdZeWFrWXdYRzRyUjFwbFRFMVNaelJWY25SWVRuUjBZbVo0TjNZelFVZDBlR2RKVW5FNVRIRXlNMFZFYWk5VmJGZDFRWEV5T0hwaWFUVkVTVXB6TmpGaU9IVjZXR2xwWEc1VFIzVjVNMll6UXpCa1EwY3pkRkJVYzBkeGVGUnRNM2hVYUVWc1EzUk5lSGMwZFZCREsxZDFWbUoxWW1wb1l6WXhNWFpPYTA4eVpVbG9OMjB3VmxKWE9FRmtWMEZqVUdsc1JtRnlZbU5JT1VWelV6STJTbnAyVkZZNGRHa3daVnA0TTAxWlNGeHVlRFJWYjFKVlUxTlVURlJ0TkhWdWJHOVVOa1kxWlhaQlEwRmlaMkoyVFdsRE5tRkpWR1ZHYkV0aFVVaFBMM0ZLV0dOdlEwMVFNWFJtT0dKS2JGTTRQVnh1TFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUT09IiAgCn0

  1. сохранить изменения;
  2. если после сохранения изменений сеанс работы в графическом интерфейсе Комплекса завершен, выполнить подключение к Комплексу из консоли. Использовать kubeconfig кластера управления. Если аутентификация не была прервана, можно продолжить выполнение следующих действий в графическом интерфейсе;
  3. в неймспейсе shturval-backend проверить данные Secret auth-idps. Secret должен содержать конфигурацию, заданную в AUTH_EXTERNAL_IDP_SECRET_BASE64;
  4. удалить поды authn и shturval-backend в неймспейсе shturval-backend; поды перезапустятся.

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

Подключение Blitz

После получения конфигурации внешнего провайдера нужно авторизоваться в Комплексе по 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 (описание параметров ‒ в таблице 5):

AUTH_EXTERNAL_IDP_SECRET_BASE64: <ваше значение параметра>
AUTH_IDP_ACTIVE: <ваше значение параметра>
SKIP_INTERNAL_AUTH_FORM: <ваше значение параметра>

Сноска 5 ewogICJuYW1lIjogImJsaXR6IiwgCiAgImlzc3VlclVybCI6ICJodHRwczovL2JsaXR6LmlwLVhYLVhYLVhYLVhYLnNodHVydmFsLmxpbmsvcmVhbG1zL3NodHVydmFsIiwgIAogICJjbGllbnQiOiB7CiAgICAiY2xpZW50SWQiOiAic2h0dXJ2YWxfdW5pYmxpdHpfYmFja2VuZF9jbGllbnRfaWQiLCAKICAgICJjbGllbnRTZWNyZXQiOiAiSEcwcnhKTUtvcG1BR1Nhc0R4RHRrSllRSCIgCiAgfSwKICAiaW5zZWN1cmVTa2lwVmVyaWZ5IjogdHJ1ZSwgCiAgImNhQnVuZGxlIjogIkxTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdFhHNU5TVWxFUzNwRFEwRm9UMmRCZDBsQ1FXZEpWVWhPTlU1Qk5XZHlLM1kzTW5aT2FrSm5WbWwzVEZSRlJFUTRkM2RFVVZsS1MyOWFTV2gyWTA1QlVVVk1YRzVDVVVGM1RWUkZkazFETUVkQk1WVkZRWGQzYldFeVZqVlpNbmgyV1ZkemRXRllRWFJOVkVGMFRYcEZkRTFVVVRGTVZGRjRURzVPYjJSSVZubGtiVVp6WEc1TWJYaHdZbTF6ZDBob1kwNU5hbEY0VFVSSk1FMVVTWGhOUkZGM1YyaGpUazE2VVhoTlJFbDVUVlJKZUUxRVVYZFhha0Y0VFZNNGQweFJXVVJXVVZGRVhHNUVRMXB5V2xoc2FtSkhPV2hoZVRWd1kwTXdlRTFETUhwTlV6QjRUa1JWZEU1RVJYVmpNbWd3WkZoS01sbFhkM1ZpUjJ4MVlYcERRMEZUU1hkRVVWbEtYRzVMYjFwSmFIWmpUa0ZSUlVKQ1VVRkVaMmRGVUVGRVEwTkJVVzlEWjJkRlFrRkthbkUzZDBoVk0xWlJSRWxQWlZnek1tdGhjMGh6WlhOTlRsbFNiRkZFWEc1a2FVcHFORUppUVhOSGIyTjRkbVJsVFdVdk0zazNkMDlDUW1ab1pYUk9ZMEpsTDBGNU5GVnlWekpMWVVOcWVFOVhUVEo2WVROR09FdzFReXRFWjJoMFhHNWxkblZMTkZVclYzRkRjV0pGV0dWc1QyNXlkbEEzVWtSUU5tcEZlSGRvYWxSclNuTmFWbUZtYUU1T01qaG5ha2Q2ZFc0MFNWWjFLMDVIVUdZeWFrWXdYRzRyUjFwbFRFMVNaelJWY25SWVRuUjBZbVo0TjNZelFVZDBlR2RKVW5FNVRIRXlNMFZFYWk5VmJGZDFRWEV5T0hwaWFUVkVTVXB6TmpGaU9IVjZXR2xwWEc1VFIzVjVNMll6UXpCa1EwY3pkRkJVYzBkeGVGUnRNM2hVYUVWc1EzUk5lSGMwZFZCREsxZDFWbUoxWW1wb1l6WXhNWFpPYTA4eVpVbG9OMjB3VmxKWE9FRmtWMEZqVUdsc1JtRnlZbU5JT1VWelV6STJTbnAyVkZZNGRHa3daVnA0TTAxWlNGeHVlRFJWYjFKVlUxTlVURlJ0TkhWdWJHOVVOa1kxWlhaQlEwRmlaMkoyVFdsRE5tRkpWR1ZHYkV0aFVVaFBMM0ZLV0dOdlEwMVFNWFJtT0dKS2JGTTRQVnh1TFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUT09IiAKfQ

Пример ssc shturval-backend (описание параметров ‒ в таблице 6):

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

Сноска 6 ewogICJuYW1lIjogImJsaXR6IiwgCiAgImlzc3VlclVybCI6ICJodHRwczovL2JsaXR6LmlwLVhYLVhYLVhYLVhYLnNodHVydmFsLmxpbmsvcmVhbG1zL3NodHVydmFsIiwgIAogICJjbGllbnQiOiB7CiAgICAiY2xpZW50SWQiOiAic2h0dXJ2YWxfdW5pYmxpdHpfYmFja2VuZF9jbGllbnRfaWQiLCAKICAgICJjbGllbnRTZWNyZXQiOiAiSEcwcnhKTUtvcG1BR1Nhc0R4RHRrSllRSCIgCiAgfSwKICAiaW5zZWN1cmVTa2lwVmVyaWZ5IjogdHJ1ZSwgCiAgImNhQnVuZGxlIjogIkxTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdFhHNU5TVWxFUzNwRFEwRm9UMmRCZDBsQ1FXZEpWVWhPTlU1Qk5XZHlLM1kzTW5aT2FrSm5WbWwzVEZSRlJFUTRkM2RFVVZsS1MyOWFTV2gyWTA1QlVVVk1YRzVDVVVGM1RWUkZkazFETUVkQk1WVkZRWGQzYldFeVZqVlpNbmgyV1ZkemRXRllRWFJOVkVGMFRYcEZkRTFVVVRGTVZGRjRURzVPYjJSSVZubGtiVVp6WEc1TWJYaHdZbTF6ZDBob1kwNU5hbEY0VFVSSk1FMVVTWGhOUkZGM1YyaGpUazE2VVhoTlJFbDVUVlJKZUUxRVVYZFhha0Y0VFZNNGQweFJXVVJXVVZGRVhHNUVRMXB5V2xoc2FtSkhPV2hoZVRWd1kwTXdlRTFETUhwTlV6QjRUa1JWZEU1RVJYVmpNbWd3WkZoS01sbFhkM1ZpUjJ4MVlYcERRMEZUU1hkRVVWbEtYRzVMYjFwSmFIWmpUa0ZSUlVKQ1VVRkVaMmRGVUVGRVEwTkJVVzlEWjJkRlFrRkthbkUzZDBoVk0xWlJSRWxQWlZnek1tdGhjMGh6WlhOTlRsbFNiRkZFWEc1a2FVcHFORUppUVhOSGIyTjRkbVJsVFdVdk0zazNkMDlDUW1ab1pYUk9ZMEpsTDBGNU5GVnlWekpMWVVOcWVFOVhUVEo2WVROR09FdzFReXRFWjJoMFhHNWxkblZMTkZVclYzRkRjV0pGV0dWc1QyNXlkbEEzVWtSUU5tcEZlSGRvYWxSclNuTmFWbUZtYUU1T01qaG5ha2Q2ZFc0MFNWWjFLMDVIVUdZeWFrWXdYRzRyUjFwbFRFMVNaelJWY25SWVRuUjBZbVo0TjNZelFVZDBlR2RKVW5FNVRIRXlNMFZFYWk5VmJGZDFRWEV5T0hwaWFUVkVTVXB6TmpGaU9IVjZXR2xwWEc1VFIzVjVNMll6UXpCa1EwY3pkRkJVYzBkeGVGUnRNM2hVYUVWc1EzUk5lSGMwZFZCREsxZDFWbUoxWW1wb1l6WXhNWFpPYTA4eVpVbG9OMjB3VmxKWE9FRmtWMEZqVUdsc1JtRnlZbU5JT1VWelV6STJTbnAyVkZZNGRHa3daVnA0TTAxWlNGeHVlRFJWYjFKVlUxTlVURlJ0TkhWdWJHOVVOa1kxWlhaQlEwRmlaMkoyVFdsRE5tRkpWR1ZHYkV0aFVVaFBMM0ZLV0dOdlEwMVFNWFJtT0dKS2JGTTRQVnh1TFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUT09IiAKfQ

  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 и "SKIP_INTERNAL_AUTH_FORM" ‒ на false:
получить 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

По завершении применения изменений аутентификация должна отработать корректно.