Skip to content

Auth stack troubleshooting

How Cloudflare Access, Authentik, Vaultwarden, and YubiKeys fit together — and what breaks when each layer fails.

Stack diagram

flowchart TB
  USER[Browser / app]
  CF[Cloudflare Access edge]
  AUTH[Authentik auth.saxobroko.com]
  APP[Homelab app or Pages]
  VAULT[Vaultwarden vault.saxobroko.com]
  YUBI[YubiKey WebAuthn]

  USER --> CF
  CF -->|docs only OIDC| AUTH
  CF -->|some apps| APP
  AUTH --> APP
  USER --> VAULT
  USER --> YUBI
  YUBI --> CF
  YUBI --> VAULT
Layer URL Stores passwords? FAQ
Cloudflare Access Per-app at edge No CFL-*, AUTH-*
Authentik auth.saxobroko.com User accounts for SSO AUTH-*
Vaultwarden vault.saxobroko.com All login secrets VLT-*
YubiKey Physical WebAuthn keys YUB-*

Full setup doc: Authentik · Authentik app patterns · Bitwarden

Symptom → layer

What happens Failed layer First fix
docs asks for Access → Authentik → error Authentik OIDC or CF IdP AUTH-* · authentik.md
Infinite redirect between CF and Authentik Callback URL / client secret mismatch AUTH-*
"User email was not returned" Authentik scopes / claims authentik.md
dash/stream loop login Authentik provider for that app AUTH-* · authentik-app-providers
Can't open Vaultwarden at all Vault container or tunnel VLT-*fix this before resetting other passwords
YubiKey blinks, CF still fails Wrong key slot or browser YUB-*
Works in Chrome, not Safari WebAuthn / passkey YUB-*

docs.saxobroko.com path (special case)

SaxDocs uses Cloudflare Pages (not tunnel) + Access + Authentik OIDC:

  1. Browser → Cloudflare Access challenge
  2. Redirect to Authentik authorize URL (/application/o/authorize/)
  3. Login at Authentik
  4. Callback to Cloudflare → static docs load

Bot Fight Mode previously broke OIDC — must stay off zone-wide. See authentik.md.

FAQ: DOC-* · Guide: open-docs-site

Homelab app path (tunnel + Authentik)

Most apps: *.saxobroko.com → tunnel → NPM or direct → Authentik forward auth (where configured) → app.

App Auth pattern Doc
Homepage Authentik in front homepage
Jellyfin App login (+ optional SSO) Jellyfin
Vaultwarden Server URL + master password Bitwarden

Recovery order (locked out)

  1. Physical access — home LAN
  2. Vaultwarden — master password from emergency kit (not in SaxDocs)
  3. Authentik — admin via TrueNAS app or break-glass account in Vaultwarden
  4. Cloudflare — account in Vaultwarden; last resort disable Access temporarily
  5. YubiKey — use portable key; desk key stays for CF dashboard

FAQ: VLT-* · YUB-* · LIF-* for Ryan

Adding a family member

  1. Authentik user + group → external-authentik-add-user
  2. Cloudflare Access policy (if needed for docs)
  3. Vaultwarden — share items via org/collection, never paste passwords in chat
  • AUTH-* — SSO, OIDC, loops
  • VLT-* — sync, unlock, export
  • YUB-* — keys, WebAuthn
  • CFL-* — Access, WAF, Bot Fight