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
.envje nastavenéLOCAL_ADMINISTRATOR - request běží v lokálním nebo síťovém IP kontextu
- odpovídající účet v tabulce
adminexistuje a je aktivní
Pak middleware:
- přeskočí redirect na auth server
- automaticky založí session pro zadaný email
- při přístupu na
/ADMIN/loginnebo/ADMIN/logged-outpoš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:
LaxfungujeStrictnefunguje 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:
- načte
admin_jwtze session - lokálně ověří token přes
AuthClient::verifyJwt() - z emailu znovu dohledá admin účet
- pokud token brzy expiruje, zavolá
/api/auth/refresh - 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_URLje základ auth serveruAUTH_INVITE_SECRETpoužívá CMS proPOST /api/inviteAUTH_JWT_PUBLIC_KEY_PATHukazuje na veřejný klíč pro ověřeníJWTLOCAL_ADMINISTRATORaktivuje lokální bypassAPP_DOMAINpomá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í