Вход через Jambotron (OAuth 2.0 code + PKCE), пароли приложений, системные ящики #34

Merged
Liosha84 merged 1 commits from feat/jambotron-sso into master 2026-11-07 21:06:42 +01:00
Owner

Пара к Jambotron PR «Вход в рабочую почту через Jambotron».

  • Вход: кнопка «SIGN IN WITH JAMBOTRON» → /api/oauth/start (state + PKCE в памяти, 10 мин) → Jambotron → /api/oauth/callback → обмен кода на сервере (Bearer SERVICE_TOKEN) → сессия рабочего ящика (/sso#token=…, токен сразу убирается из адреса). ADMIN Jambotron → роль ADMIN. Ошибки — на странице входа.
  • Пароль в веб-почте — только встроенный администратор (admin@), пока вход через Jambotron включён (JAMBOTRON_URL + SERVICE_TOKEN); остальным — «Sign in with Jambotron». Ссылка «Administrator login (password)».
  • Пароли приложений (V9 app_passwords): User panel → APP PASSWORDS — по одному на программу, показ один раз, отзыв; только SMTP/IMAP (MailboxAccess.login: пароль ящика или пароль приложения).
  • Системные ящики (V9 users.is_system): Admin panel → MAILBOXES → кнопка SYSTEM: без входа в веб, не в USERS, доступ получают встроенные администраторы (видят в комбобоксе); программы оставляют свой пароль — Jambotron, staging и Kuma не ломаются.
  • compose public: JAMBOTRON_URL: ${JAMBOTRON_URL:-https://jambotron.com}.

Тесты: backend зелёный (новые: только встроенный админ входит паролем при включённом SSO; PKCE S256 по RFC 7636), ng build OK.

Порядок выкатки: сначала Jambotron на prod (этот PR), потом почта с JAMBOTRON_URL=https://jambotron.com. Иначе почта уже не пускает по паролю, а Jambotron ещё не выдаёт коды.

После выкатки на prod: no-reply@, monitor@, staging@ → SYSTEM (владелец admin@).

α

🤖 Generated with Claude Code

Пара к Jambotron PR «Вход в рабочую почту через Jambotron». - **Вход:** кнопка «SIGN IN WITH JAMBOTRON» → `/api/oauth/start` (state + PKCE в памяти, 10 мин) → Jambotron → `/api/oauth/callback` → обмен кода на сервере (`Bearer SERVICE_TOKEN`) → сессия рабочего ящика (`/sso#token=…`, токен сразу убирается из адреса). ADMIN Jambotron → роль ADMIN. Ошибки — на странице входа. - **Пароль в веб-почте** — только встроенный администратор (`admin@`), пока вход через Jambotron включён (`JAMBOTRON_URL` + `SERVICE_TOKEN`); остальным — «Sign in with Jambotron». Ссылка «Administrator login (password)». - **Пароли приложений** (V9 `app_passwords`): User panel → APP PASSWORDS — по одному на программу, показ один раз, отзыв; только SMTP/IMAP (`MailboxAccess.login`: пароль ящика **или** пароль приложения). - **Системные ящики** (V9 `users.is_system`): Admin panel → MAILBOXES → кнопка SYSTEM: без входа в веб, не в USERS, доступ получают встроенные администраторы (видят в комбобоксе); программы оставляют свой пароль — Jambotron, staging и Kuma не ломаются. - compose public: `JAMBOTRON_URL: ${JAMBOTRON_URL:-https://jambotron.com}`. **Тесты:** backend зелёный (новые: только встроенный админ входит паролем при включённом SSO; PKCE S256 по RFC 7636), `ng build` OK. **Порядок выкатки:** сначала Jambotron на prod (этот PR), потом почта с `JAMBOTRON_URL=https://jambotron.com`. Иначе почта уже не пускает по паролю, а Jambotron ещё не выдаёт коды. После выкатки на prod: no-reply@, monitor@, staging@ → SYSTEM (владелец admin@). α 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Liosha84 added 1 commit 2026-11-07 21:04:11 +01:00
- /api/oauth/start → JAMBOTRON_URL/oauth/authorize (client mail, PKCE S256);
  /api/oauth/callback: код меняется на сервере у Jambotron /api/oauth/token
  (Bearer SERVICE_TOKEN) → рабочий ящик сотрудника → сессия, ADMIN Jambotron — ADMIN.
- Вход по паролю в веб — только встроенный администратор (когда вход через Jambotron включён).
- Пароли приложений (V9 app_passwords): User panel → APP PASSWORDS, только SMTP/IMAP.
- Системные ящики (V9 users.is_system): без входа в веб, открывают встроенные
  администраторы, не в USERS; Admin panel → MAILBOXES → кнопка SYSTEM.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Liosha84 merged commit abe4f66067 into master 2026-11-07 21:06:42 +01:00
Sign in to join this conversation.