# OAuth2/OIDC provider + application for Jellyfin # (jellyfin.k8s.syd1.au.unkin.net), consumed by jellyfin-plugin-sso (OIDC) so # the web UI signs in via Authentik while native clients keep Jellyfin local/API # auth. client_secret is read from Vault, not committed. The plugin requests the # `ak_groups` scope and matches the hierarchical groups claim against # akP-jellyfin-admin / akP-jellyfin-user for its admin/user role mapping, so no # role_mappings claim is needed here. The path segment "authentik" is the SSO # provider name configured in the plugin — it must match on the Jellyfin side. name: Jellyfin authorization_flow: default-provider-authorization-implicit-consent invalidation_flow: default-provider-invalidation-flow client_type: confidential client_id: jellyfin # Explicit dashboard tile launch URL (the Jellyfin web UI). launch_url: https://jellyfin.k8s.syd1.au.unkin.net/ client_secret_vault: mount: kv path: kubernetes/namespace/jellyfin/default/oauth-credentials scope_mappings: - goauthentik.io/providers/oauth2/scope-openid - goauthentik.io/providers/oauth2/scope-email - goauthentik.io/providers/oauth2/scope-profile redirect_uris: # jellyfin-plugin-sso OIDC callback (plugin >= 3.5.2). - matching_mode: strict url: https://jellyfin.k8s.syd1.au.unkin.net/sso/OID/redirect/authentik # Legacy plugin callback path, kept so older plugin builds also work. - matching_mode: strict url: https://jellyfin.k8s.syd1.au.unkin.net/sso/OID/r/authentik