Home
Ru2
Администратору кластера
Сервисы и репозитории
Сервисы в составе платформы
Специфические сервисы кластера управления
Модуль аутентификации (shturval-auth)
Сервер аутентификации (authn-server)
Изменено 2026-07-01 в 19:41
Сервер аутентификации (authn-server)
Раздел «Администратору кластера»: быстрый переход по подразделам
На этой странице
Expand
Collapse
О сервисе #
Параметр
Значение
Системное название chart
shturval-auth
Компонент
sh-authn
Назначение в кластере
OIDC/OAuth2, интерактивный вход, logout, выдача и отзыв токенов, JWKS, работа с session cookie.
Критический
Да
Неймспейс
shturval-backend
authn-server входит в Helm chart shturval-auth . В этом же chart разворачиваются auth-controller , session-manager и ldap-cache .
Содержание #
Обзор
Архитектура
Установка / развёртывание
Диагностика
Жизненный цикл
Параметры сервиса
1. Обзор #
Назначение: обслуживать браузерные и программные сценарии аутентификации платформы: discovery OIDC (/.well-known/openid-configuration), login/logout, выдачу и аннулирование кодов и токенов, JWKS, пользовательский cookie sh_session_id, а также наблюдение за конфигурацией OAuth-клиентов и провайдеров идентичности.
Функции #
Контур
Назначение
Login / logout
Браузерные сценарии и redirect login.
OAuth2 endpoint
authorize, token, introspect, revoke, user info.
Session store
Серверное состояние пользовательских сессий.
Client watcher
Поддержание актуального каталога OIDC-клиентов из AuthOidcClient.
LDAP / external IdP
Обновление конфигурации из Secret платформы.
Сценарии инициации #
Событие
Инициатор
Эффект
Пользователь выполняет login
Браузер или клиент
Выдаются cookie и токены согласно политике релиза.
Изменён AuthOidcClient
Kubernetes watcher
Обновляется набор OAuth-клиентов в памяти сервиса.
Изменён Secret конфигурации LDAP / IdP
Администратор платформы
Обновляются параметры авторизации.
Readiness проба
kubelet
/readyz проверяет доступность связанных хранилищ.
Ограничения и следствия #
Ограничение
Следствие
Файловый ключ JWT ищется в рабочем каталоге
Контейнер должен получать файл private.pem через volume mount.
Имя cookie sh_session_id фиксировано кодом версии продукта
Его нельзя переименовать через обычную конфигурацию.
Endpoint corp root CA требует /shturval/corp-root-ca.crt
При использовании сценария обеспечьте mount сертификата.
Без TOKEN_STORE_ADDR и SESSION_STORE_ADDR возможен режим памяти
Для нескольких pod используйте внешние Redis-хранилища.
Место в цепочке управления #
authn-server получает OAuth-клиенты из AuthOidcClient, которые согласует auth-controller . Сессии пользователей создаются authn-server и затем доступны для просмотра и удаления через session-manager . Для LDAP-сценариев конфигурация каталога также используется ldap-cache .
Ключевые характеристики #
Характеристика
Значение
Бинарь
sh-authn
Порт процесса
PORT, по умолчанию 8081
Размещение
Шаблон helm/auth/templates/dep-authn.yaml, совместный pod с sh-session-manager
Хранилища
Redis или in-memory режим, если адреса store не указаны
2. Архитектура #
Компонент
Роль
sh-authn
Маршрутизация HTTP endpoint OIDC/OAuth2.
Token store backend
Хранение OAuth-кодов, access token и refresh token.
Session store backend
Серверное состояние пользовательских сессий.
Kubernetes watchers
Наблюдение за CR клиентов и Secret LDAP / IdP.
sh-session-manager
API для списков и очистки сессий, вызываемый backend.
3. Установка / развёртывание #
Сервис управляется Helm chart shturval-auth. Для многоподовой эксплуатации включите удалённые Redis store для токенов и сессий; иначе записи в памяти разных pod не будут согласованы.
Параметры меняются через ShturvalServicePatch (SSP) для SSC shturval-auth.
4. Диагностика #
kubectl get pods -n " ${ NAMESPACE } " -o wide
kubectl logs -n " ${ NAMESPACE } " " ${ POD } " -c sh-authn --tail= 300
kubectl logs -n " ${ NAMESPACE } " " ${ POD } " -c sh-session-manager --tail= 150
Подставьте POD по фактической установке.
Симптом
Возможная причина
Действие
Login ломается в multi-pod режиме
Недоступен Redis
Проверить SESSION_STORE_ADDR и TOKEN_STORE_ADDR.
Readiness всегда false
Недоступно одно из хранилищ
Проверить ошибки журнала и credentials в Secret.
OAuth-клиенты не авторизуют запросы
AuthOidcClient не согласован
Проверить статус ресурсов auth-operator.
5. Жизненный цикл #
Шаг
Участник
Результат
1
Ingress / LB
Вход на pod.
2
Маршрутизатор процесса
Выбор нужного OAuth/OIDC handler.
3
Store / watchers
Чтение валидируемых объектов авторизации из памяти и хранилищ.
4
Ответ клиенту
Redirect, JSON JWKS или token payload.
Stateful reconcile не применяется: сервис обрабатывает HTTP-запросы и события watchers.
6. Параметры сервиса #
Переменная
Назначение
PORT
Порт процесса, по умолчанию 8081.
KEY_ID, ISSUER, TOKEN_URL, AUTH_URL
Метаданные OIDC процесса подписания.
AT_EXP, RT_EXP, GEN_RT
Политики сроков действия token и refresh token.
SESSION_STORE_ADDR, TOKEN_STORE_ADDR
Переключают режим памяти на Redis при заданном адресе.
COOKIE_DOMAIN
Область браузерной cookie.
USE_BOOTSTRAP_HOST_AS_ISSUER
Поведение bootstrap HTTP.
POD_NAMESPACE
Namespace наблюдения Secret и CR.
Для production окружения проверьте mount private.pem, CA bundle и доступность Redis.