feat(reui): update ReUI components and documentation
- Added new OIDC configuration options in `.env.example`. - Expanded documentation in `AGENTS.md` to include OIDC endpoints and admin UI. - Updated ReUI skill version and component count from 17 to 20 across various documentation files. - Enhanced `README.md` and other related files to reflect the new component structure and usage guidelines. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
+31
-3
@@ -82,13 +82,25 @@ nano .env # заполнить секреты
|
||||
| `JWT_SECRET` | HS256; тот же секрет в VPS Tracker / CFDM (`AUTH_JWT_SECRET`) |
|
||||
| `ADMIN_PASSWORD` | Пароль bootstrap-админа (только при пустой БД) |
|
||||
| `AUTH_DOMAIN` | Хост в Traefik rule, по умолчанию `auth.shnt.top` |
|
||||
| `ISSUER` | `https://auth.shnt.top` — совпадает с `AUTH_ISSUER` приложений |
|
||||
| `RETURN_TO_ALLOWLIST` | Origins SSO (например `.shnt.top`) |
|
||||
| `ISSUER` | `https://auth.shnt.top` — совпадает с `AUTH_ISSUER` приложений **и** OIDC issuer |
|
||||
| `RETURN_TO_ALLOWLIST` | Origins SSO / App Switcher (`.shnt.top`, `https://dns.shnt.top`, …) |
|
||||
| `OIDC_ISSUER` | Опционально; если пусто — берётся `ISSUER`. Публичный URL IdP для Technitium |
|
||||
| `OIDC_RSA_PRIVATE_KEY` | Опционально PKCS8 PEM; иначе RSA-ключ в SQLite (`./data`) |
|
||||
|
||||
Опционально: `AUTH_IMAGE_TAG`, `TRAEFIK_IMAGE_TAG`, `TRAEFIK_HTTP_PORT`, `TRAEFIK_HTTPS_PORT`.
|
||||
|
||||
В production cookie refresh с флагом `Secure` — нужен HTTPS.
|
||||
|
||||
### Проверка OIDC после старта
|
||||
|
||||
```bash
|
||||
curl -fsS https://auth.shnt.top/.well-known/openid-configuration | head
|
||||
curl -fsS https://auth.shnt.top/.well-known/jwks.json | head
|
||||
```
|
||||
|
||||
Админка: `https://auth.shnt.top/admin/oidc` — создать client для Technitium.
|
||||
Полная инструкция SSO: [integrate-technitium.md](integrate-technitium.md).
|
||||
|
||||
---
|
||||
|
||||
## 3. Запуск (один compose)
|
||||
@@ -149,6 +161,8 @@ docker compose down
|
||||
|
||||
## Связка с приложениями
|
||||
|
||||
### JWT apps (CFDM / VPS / BGP / FW)
|
||||
|
||||
```env
|
||||
AUTH_REQUIRED=true
|
||||
AUTH_JWT_SECRET=<тот же JWT_SECRET>
|
||||
@@ -163,9 +177,21 @@ VITE_AUTH_ENABLED=true
|
||||
VITE_AUTH_PORTAL_URL=https://auth.shnt.top
|
||||
```
|
||||
|
||||
См. [integrate-vps-tracker.md](integrate-vps-tracker.md), [integrate-cfdm.md](integrate-cfdm.md).
|
||||
См. [integrate-vps-tracker.md](integrate-vps-tracker.md), [integrate-cfdm.md](integrate-cfdm.md), [integrate-evobgp.md](integrate-evobgp.md), [integrate-evofirewall.md](integrate-evofirewall.md).
|
||||
Logout SSO: `https://auth.shnt.top/logout`.
|
||||
|
||||
### Technitium DNS (OIDC)
|
||||
|
||||
Portal — IdP; Technitium — RP. После `docker compose up`:
|
||||
|
||||
1. В `.env` добавьте origin DNS в `RETURN_TO_ALLOWLIST` (например `https://dns.shnt.top`).
|
||||
2. `curl https://auth.shnt.top/.well-known/openid-configuration` — должен отвечать JSON.
|
||||
3. Admin → OIDC-клиенты → redirect `https://dns.shnt.top/sso/callback`.
|
||||
4. В Technitium SSO: Metadata = `https://auth.shnt.top/.well-known/openid-configuration`.
|
||||
|
||||
Важно: Technitium резолвит IdP **своим** DNS — A/AAAA для `auth.shnt.top` должна быть видна с DNS-сервера.
|
||||
Детали: [integrate-technitium.md](integrate-technitium.md).
|
||||
|
||||
---
|
||||
|
||||
## Бэкап
|
||||
@@ -194,6 +220,8 @@ docker run --rm -v auth_portal_traefik_letsencrypt:/data -v "$PWD:/backup" alpin
|
||||
| Login OK, SSO в app падает | `JWT_SECRET` / `ISSUER` |
|
||||
| `return_to` rejected | `RETURN_TO_ALLOWLIST` |
|
||||
| Cookie не держится | HTTPS; `NODE_ENV=production` |
|
||||
| Technitium «Failed to reach SSO provider» | A/AAAA `auth.*` в самом Technitium; `curl` с хоста DNS к discovery URL |
|
||||
| OIDC discovery 404 | образ без OIDC; `ISSUER`/`OIDC_ISSUER` = публичный HTTPS URL; Traefik Host |
|
||||
|
||||
```bash
|
||||
docker compose logs traefik 2>&1 | grep -iE 'acme|certificate|cloudflare|error'
|
||||
|
||||
Reference in New Issue
Block a user