Files
IPWhiteList/docs/questions.md
T
“Naeel” 608560eb64 docs: актуализация (2026-05-30)
Deprecated (описывали состояние до рефакторинга):
  [DEPRECATED]-plan.md
  [DEPRECATED]-analysis-2026-05-30.md
  [DEPRECATED]-auth-architecture.md

Новые/обновлённые:
  architecture.md  — текущее устройство: стек, модули, auth-схема, env, маршруты
  plan.md          — только pending задачи (блокеры KK, деплой, Redis, пагинация)
  questions.md     — закрытые вопросы отмечены, открытые: KK creds + admin claim + /export IP
2026-05-30 14:42:52 +03:00

2.9 KiB
Raw Blame History

Вопросы к DevOps / команде Keycloak — IP WhiteList

Обновлено: 2026-05-30
Часть вопросов из первоначального списка закрыта реализацией.


ОТКРЫТЫЕ (блокируют деплой)

1. Данные клиента Keycloak

Для активации OIDC-режима (код готов, ждёт переменных):

KC_CLIENT_ID=     ?    # наш client_id в realm cloud
KC_CLIENT_SECRET= ?    # наш client_secret

Redirect URI для регистрации в Keycloak:

https://white.nodejsk8s.dev.nubes.ru/callback

2. Admin-роль: как приходит из Keycloak

ТЗ: Администратор = clientId = WZ01112 + «отдельный чек-бокс».

Сейчас: isAdmin = (ClientID === process.env.ADMIN_CLIENT_ID) — только WZ01112.

Вопросы:

  • Есть ли отдельный claim в JWT для признака admin?
  • Если да — как называется? Примеры: realm_access.roles, resource_access.whitelist.roles, is_admin, groups
  • Нужна поддержка нескольких adminов или только WZ01112?

Если нет отдельного claim — оставляем текущее решение, закрываем вопрос.


3. /export — IP-ограничение

ТЗ: «на старте может работать без авторизации (по сетевому ограничению)».

Сейчас: открытый endpoint, rate-limit 20 req/мин.

  • Ограничение делаем в приложении или в ingress/nginx?
  • Если в приложении — список разрешённых IP (env var EXPORT_ALLOWED_IPS?).

ЗАКРЫТЫЕ

# Вопрос Решение
DEV_MODE Нужен ли dev-режим на платформе? /dev-login — backdoor с DEV_MODE=true (без пароля) или DEV_SECRET=xyz (с ключом). Работает в обоих режимах.
Email claim Как называется claim с email? Берём payload.email || payload.login || 'unknown'
JWT структура Формат токена auth-api Изучен из реального токена (см. [DEPRECATED]-auth-architecture.md). Поля: ClientID, company_id, company_name, email, login.
CSRF Защита POST-форм csrf-csrf (double-submit cookie pattern)
Session Хранение пользователя express-session (httpOnly, sameSite lax, 8ч)

Условные обозначения в коде

// TODO(KK): уточнить формат claim — см. docs/questions.md#2
// FIXME(KK): временно, заменить после ответа команды