Jellyfin SSO: cheeztv OIDC hosts, media-group gating, LDAP outpost #28
Reference in New Issue
Block a user
Delete Branch "benvin/jellyfin-sso"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Why
Phase-1 jellyfin auth uses the SSO plugin (browser OIDC) and LDAP plugin (app-passwords) against Authentik; both instances share one OIDC client. After apply, fetch the jellyfin-ldap-outpost token from Authentik and seed kv/kubernetes/namespace/authentik/default/outpost-token (key: token).
Automated review of
unkin/terraform-authentik#28(head3396b39).Code review: no bugs found.
providers_oauth2/jellyfin.yaml: three strict redirect URIs,client_secret_vaultpath, andscope_mappingsall match sibling conventions (grafana/litellm).akP-media-fafflix/akP-media-cheeztvcorrectly bind to thejellyfinoauth2 app (key resolves viaconfig.hclfilename-keying, confirmed againstmodules/authentik/main.tf'sauthentik_policy_binding.app_access).akP-jellyfin-admin/akP-jellyfin-userare now role-claim-only, still nested correctly underakR-global-admin/akR-standard-user. GreppedREADME.mdandenvironments/— no other file references the old binding.providers_ldap/jellyfin-ldap.yaml+modules/authentik/main.tf: the newdata.authentik_flowLDAP bind/unbind resolution mirrors the existing oauth2/saml pattern correctly, and the scaffoldedauthentik_application.ldap/authentik_outpost.ldap(for_each = var.providers_ldap) correctly derive slugjellyfin-ldap/ outpost namejellyfin-ldap-outpostfrom the filename key. No secrets inline.Issue 1 — KV path mismatch with the parallel argocd PR (doc-only, not in code):
The PR body's "AFTER apply" section says to seed the LDAP outpost token at:
This path is not referenced in any terraform/yaml in this repo — it only appears in the PR body and in a code comment that says "see PR body for the exact path" (
config/providers_ldap/jellyfin-ldap.yaml). However, per the parallel argocd PR, the outpost's VSS reads its token fromkubernetes/namespace/authentik/default/outpost-token, and the namespace-scoped Vault policy backing that VSS can only readnamespace/authentik/*paths. Seeding at the body's documented path would put the token somewhere the outpost's Vault policy cannot read it, and the outpost would fail to start with no token. Please correct the body (and the "see PR body" comment's implied target) tokubernetes/namespace/authentik/default/outpost-tokento match where the outpost is actually deployed.Issue 2 — CI plan is currently failing on head
3396b39:Per Gitea commit status,
ci/woodpecker/pr/planisfailure(pre-commit is green). If this run predates the fafflix KV seed (kubernetes/namespace/fafflix/default/oauth-credentials) landing, it's a stale failure from the missingdata.vault_kv_secret_v2read and just needs a retrigger — but that can't be confirmed from commit-status alone. Please confirm the seed is in place and retrigger/re-verify plan is green before merge.No merge/approve action taken (bot policy).