authentik: lock chrome.viktorbarzin.me noVNC to Viktor only
All checks were successful
ci/woodpecker/push/default Pipeline was successful
All checks were successful
ci/woodpecker/push/default Pipeline was successful
The chrome-service noVNC exposes Viktor's live logged-in browser sessions (Instagram etc. — he'll sign in there for homelab browser to reuse). It was auth="required" = any authenticated user, and "Home Server Admins" includes emo (emil.barzin@gmail.com), so the admin group is not a sufficient gate. Add a host-specific case to the domain-wide forward-auth restriction allowing only Viktor's accounts (vbarzin@gmail.com + akadmin break-glass); everyone else, incl. emo, is denied at the noVNC. emo's AGENT already can't reach the browser (read-only RBAC blocks port-forward); this closes the human noVNC path. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
a3cdc0d6d0
commit
98cd535b97
1 changed files with 11 additions and 0 deletions
|
|
@ -49,6 +49,17 @@ resource "authentik_policy_expression" "admin_services_restriction" {
|
|||
|
||||
host = request.context.get("host", "")
|
||||
|
||||
# chrome-service noVNC (chrome.viktorbarzin.me) exposes Viktor's LIVE
|
||||
# logged-in browser sessions, so lock it to Viktor's own accounts ONLY.
|
||||
# "Home Server Admins" is NOT sufficient — emo (emil.barzin@gmail.com) is a
|
||||
# member. akadmin kept as break-glass. The homelab-browser CDP path is
|
||||
# already RBAC-gated (emo = oidc-power-user-readonly, no pods/portforward),
|
||||
# so this closes the only remaining, human, noVNC path. Match username OR
|
||||
# email so neither attribute alone can lock Viktor out.
|
||||
CHROME_ALLOWED = {"akadmin", "akadmin@viktorbarzin.me", "vbarzin@gmail.com"}
|
||||
if host == "chrome.viktorbarzin.me":
|
||||
return request.user.username in CHROME_ALLOWED or request.user.email in CHROME_ALLOWED
|
||||
|
||||
# t3 Workstation edge gate: only members of "T3 Users" may reach t3.
|
||||
# Placed BEFORE the ADMIN_ONLY_HOSTS early-return (t3 is intentionally not in
|
||||
# that set — it must not require Home-Server-Admins, just T3 Users membership).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue