Authentifiziert zu sein heißt noch nicht, berechtigt zu sein. Kestro-Apps prüfen nach dem Login zwei Dinge im JWT.
Die zwei Gates
Lizenz
license_tiers enthält einen Eintrag pro freigeschalteter App, z. B.
{ "infraaudit": "pro", "docs": "enterprise" }. Fehlt der App-Slug → kein Zugriff.
Organisation & MFA
organization_slug muss zur erwarteten Org gehören (z. B. interne Tools nur für
kestro-staff), und aal muss aal2 sein (MFA erfüllt).
Defense-in-depth
Cloudflare Access authentifiziert am Rand; die App enforced Lizenz + Org + MFA noch einmal selbst — selbst wenn die Edge-Policy mal zu locker wäre.
Wer eines der Gates nicht besteht, sieht einen freundlichen „kein Zugriff"-Screen statt der Inhalte — und wird nicht in eine Redirect-Schleife geschickt.
Wissens-Check
1. Was bedeutet „authentifiziert" allein?
2. Wo steht die App-Lizenz im JWT?
3. Was passiert ohne Berechtigung?