Skip to content

Admin Auth Provoz

Tato stránka pokrývá provozní detaily: lokální bypass, expiraci session, obnovu tokenu a potřebnou konfiguraci.

Lokální bypass přes LOCAL_ADMINISTRATOR

Pro lokální vývoj umí administrace obejít externí login.

Podmínky:

  • v .env je nastavené LOCAL_ADMINISTRATOR
  • request běží v lokálním nebo síťovém IP kontextu
  • odpovídající účet v tabulce admin existuje a je aktivní

Pak middleware:

  • přeskočí redirect na auth server
  • automaticky založí session pro zadaný email
  • při přístupu na /ADMIN/login nebo /ADMIN/logged-out pošle uživatele rovnou do administrace

Příklad:

LOCAL_ADMINISTRATOR=admin@example.com

Tohle je vývojový režim. V produkci má být hodnota prázdná.

Session životnost

Session konfigurace používá:

gc_maxlifetime: 1800
cookie_samesite: 'Lax'
cookie_secure: true

cookie_samesite: 'Lax' je kritické nastavení kvůli návratu z externí auth autority zpět do administrace.

Na tomhle detailu login snadno selže:

  • Lax funguje
  • Strict nefunguje pro návrat z passkey autority zpět do CMS

Prakticky: pokud je session cookie nastavená na Strict, callback z auth serveru nedonese očekávanou session a přihlášení se rozbije. Je to nenápadný detail, ale pro celý login flow zásadní.

Obnova session z JWT

Při expiraci PHP session se CMS pokusí session obnovit bez okamžitého návratu na login.

Logika:

  1. načte admin_jwt ze session
  2. lokálně ověří token přes AuthClient::verifyJwt()
  3. z emailu znovu dohledá admin účet
  4. pokud token brzy expiruje, zavolá /api/auth/refresh
  5. session znovu doplní a request pokračuje

Pokud některý krok selže, session se zničí a následuje redirect na /ADMIN/{lang}/login.

Konfigurace v .env

AUTH_URL=https://auth.mscms.cz
AUTH_INVITE_SECRET=...
AUTH_JWT_PUBLIC_KEY_PATH=config/keys/auth-public.pem
LOCAL_ADMINISTRATOR=
APP_DOMAIN=project.example.com
DEFAULT_LANG=cs

Význam:

  • AUTH_URL je základ auth serveru
  • AUTH_INVITE_SECRET používá CMS pro POST /api/invite
  • AUTH_JWT_PUBLIC_KEY_PATH ukazuje na veřejný klíč pro ověření JWT
  • LOCAL_ADMINISTRATOR aktivuje lokální bypass
  • APP_DOMAIN pomáhá sestavit callback URL

Provozní důsledky

  • platný token ještě neznamená přístup do adminu, účet může být v CMS neaktivní
  • ztráta souladu emailu mezi CMS a auth serverem zablokuje login
  • problémy s veřejným klíčem nebo expirací tokenu se projeví jako selhaný callback
  • lokální bypass je pohodlný pro vývoj, ale nesmí zůstat aktivní na veřejném prostředí