Перейти к содержанию

Auth Service

Сервис аутентификации и управления сессиями. Валидирует JWT-токены Keycloak, управляет ролями пользователей. Порт: 8000 (SERVICE_PORT в env: 8006 — используется для внутренней маршрутизации).

Назначение

Промежуточный слой аутентификации между Keycloak и продуктовыми сервисами. Валидирует токены, управляет ролями, предоставляет информацию о текущем пользователе. Устанавливается только при auth.enabled: true.

Зависимости

Входящие

Сервис Назначение
orchestrator проверка прав на запуск сканирования
ui-gateway валидация сессий пользователей

Исходящие

Сервис Назначение
postgres БД сессий и ролей (схема auth)
redis (DB 2) кеш токенов и сессий
keycloak token introspection, admin API

Values

Параметр По умолчанию Обязателен Описание
image.name да registry.appsec.global/appsecgenai-release/auth-service
image.tag да Версия образа
imagePullSecrets[0].name да imagePullSecret
secretEnv.DATABASE_URL да PostgreSQL connection string
env.ENVIRONMENT "production" нет
env.AUTH_MODE "keycloak_only" нет
env.KEYCLOAK_REALM "appsec-genai" нет
env.KEYCLOAK_CLIENT_ID "auth-service" нет
env.OTEL_SDK_DISABLED нет "true" если нет otel-collector
extraEnvVars[0] ссылка на keycloak-auth.AUTH_SERVICE_CLIENT_SECRET да Client secret для Keycloak
global.publicScheme "https" нет Схема для CORS_ORIGINS
global.domain да Домен (используется в CORS_ORIGINS)
global.url.keycloakUrl {svc: keycloak, port: 8080} нет URL Keycloak
global.url.redisUrl {svc: redis, port: 6379, scheme: redis, path: /2} нет

KEYCLOAK_CLIENT_SECRET из Secret

auth-service читает KEYCLOAK_CLIENT_SECRET из Secret keycloak-auth (ключ AUTH_SERVICE_CLIENT_SECRET). Этот Secret создаётся keycloak-чартом. Без него сервис не может выполнять service-to-service операции с Keycloak.

Пример values.yaml

# values-auth-service.yaml
image:
  name: registry.appsec.global/appsecgenai-release/auth-service
  tag: "<VERSION>"

imagePullSecrets:
  - name: harbor-cr

secretEnv:
  DATABASE_URL: "postgresql+asyncpg://genai_admin:<password>@postgres:5432/genai_db"

env:
  ENVIRONMENT: "production"
  AUTH_MODE: "keycloak_only"
  KEYCLOAK_REALM: "appsec-genai"
  KEYCLOAK_CLIENT_ID: "auth-service"
  OTEL_SDK_DISABLED: "true"

extraEnvVars:
  - name: KEYCLOAK_CLIENT_SECRET
    valueFrom:
      secretKeyRef:
        name: keycloak-auth
        key: AUTH_SERVICE_CLIENT_SECRET

global:
  publicScheme: "https"
  domain: "app.example.com"
  url:
    keycloakUrl: { svc: keycloak, port: 8080 }
    redisUrl:    { svc: redis, port: 6379, scheme: redis, path: /2 }

Установка

helm upgrade --install auth-service \
  oci://registry.appsec.global/appsecgenai-release/charts/auth-service \
  --version <VERSION> -n genai \
  --wait \
  -f values-auth-service.yaml