Home 2.14 Документация «Штурвал» Администратору кластера Сервисы и репозитории Сервисы в составе платформы Специфические сервисы кластера управления Модуль аутентификации (shturval-auth) Сервер аутентификации (authn-server) Сервер аутентификации (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-managerAPI для списков и очистки сессий, вызываемый 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_NAMESPACENamespace наблюдения Secret и CR.
Для production окружения проверьте mount private.pem, CA bundle и доступность Redis.
Изменено 2026-07-16 в 11:52