Files
CDNManager/docs/integrate-auth-portal.md
T
Denozordec dd3c378b5f
quality / commitlint (push) Skipped
CD / update-wiki (push) Successful in 6s
quality / changes (push) Successful in 5s
quality / docker-check (push) Skipped
quality / web (push) Successful in 56s
quality / api (push) Successful in 41s
CD / quality (push) Successful in 1m47s
CD / publish (push) Successful in 33s
Update CDN Manager: Add integration for new settings route, enhance permissions for nodes and aliases, and improve Docker configuration documentation. Update UI components for better navigation and user experience.
2026-09-04 13:11:33 +07:00

2.0 KiB
Raw Blame History

Интеграция auth-portal ↔ CDN Manager

App id: cdn. Зеркало на стороне портала: auth-portal/docs/integrate-cdnmanager.md (соседний репозиторий).

Flow

Browser → CDNManager UI (нет token)
       → redirect AUTH_PORTAL_URL/?return_to=…/auth/callback
       → login
       → redirect return_to#access_token=…
       → /auth/callback сохраняет token (localStorage: cdnmanager_token)
       → API Authorization: Bearer <JWT>

Permissions

Permission UI
cdn:dashboard:read /
cdn:nodes:read / write /nodes
cdn:aliases:read / write /aliases (+ Retarget)
cdn:zones:read / write /zones
cdn:sync:write Sync / Apply
cdn:topology:read /topology
cdn:settings:admin /settings/*

Env

AUTH_REQUIRED=true
AUTH_JWT_SECRET=<тот же JWT_SECRET портала>
AUTH_ISSUER=https://auth.shnt.top
AUTH_PORTAL_URL=https://auth.shnt.top
AUTH_AUDIT_INGEST_SECRET=<AUDIT_INGEST_SECRET портала>
CLOUDFLARE_API_TOKEN=
# apps/web/.env.local (dev SPA)
VITE_AUTH_ENABLED=true
VITE_AUTH_PORTAL_URL=https://auth.shnt.top

В Docker SPA обслуживается API (STATIC_DIR): достаточно server-side AUTH_* — UI читает GET /api/v1/auth/config.

В portal Admin → Apps выдайте app cdn и нужные cdn:*. URL в App Switcher: origin CDNManager (https://cdn.shnt.top).

Checklist

  1. Общий JWT_SECRET / AUTH_JWT_SECRET и одинаковый AUTH_ISSUER
  2. Origin CDNManager в RETURN_TO_ALLOWLIST портала
  3. Пользователю выдан app cdn
  4. AUTH_REQUIRED=true в контейнере CDNManager
  5. Logout → {AUTH_PORTAL_URL}/logout

Запуск на сервере: deploy-traefik.md (рекомендуется) или deploy-docker.md.