mirror of
https://github.com/go-vikunja/vikunja.git
synced 2026-05-07 03:58:09 -05:00
sticky openid login / Authentik OpenID misconfiguration #220
Closed
opened 2025-11-01 20:51:15 -05:00 by GiteaMirror
·
4 comments
No Branch/Tag Specified
main
feat-v2-foundation
spike-huma-openapi3
claude/investigate-swagger3-support-nyyUa
feat-list-view-buckets
ci-mysql-8-test
codex/analyze-codebase-for-email-task-feature
feat-project-templates
csv-import-feature
claude/email-reply-comments-wpdcQ
fix-oidc-pkce-support
fix/overview-subtasks-expand
feat/bucket-select-task-detail
feat-soft-delete-projects
claude/review-bot-design-plan-cf5C3
claude/project-scoped-api-tokens-KTqR3
claude/explore-openclaw-integration-KQEzg
claude/project-scoped-api-tokens-yv5KS
fix-duplicate-close-button
feat-list-view-sorting
feat/official-vite-sentry-plugin
feat/highlight-overdue-tasks
feat/add-enter-key-form-submission-handling
feat/TipTap-nits
feat/update-caldavtimetotimestamp-parsing
feat-phosphor-icons
wip-plans
claude/investigate-issue-2173-llKme
fix-description-text-drag
feat-custom-keyboard-shortcuts
pr-1845-ci
codex/fix-drag-and-drop-behavior-inconsistency
copilot/add-clickable-labels-for-filtering
copilot/fix-issue-1786
playwright-migration
fix-kanban-repeating-wip
copilot/fix-1498
feature/replace-axios
codex/upgrade-to-tailwind-4.1.8-using-pnpm
codex/add-cypress-test-for-avatar-types
feature/biome
feature/oxc
codex/update-flexsearch-to-0.8.205
4r6ni9-codex/fix-deprecated-sass-@import-usage
codex/fix-deprecated-sass-@import-usage
codex/add-cypress-test-for-task-list-refresh-fix
codex/fix-quick-add-magic-not-adding-tasks
codex/fix-all-type-errors
codex/fix-mimetype-for-docs.json
feature/caldav-from-scratch
feature/gh-actions-hetzner
fix-ci
feat/new-logger
jyte-better-dev-config
feat/add-team-member-with-enter
fix/button-and-icon-types
fix/notifications-component-name-collision
feature/null-time
renovate/tailwindcss-4.x
feature/unplugin-vue-router
fix/deprecated-import
feature/zod-schema
renovate/golangci-golangci-lint-1.x
fix/tiptap-editor-reactive-destructuring
release/0.24
feat/improve-add-task
fix/saved-filter-search
feat/webp-and-avif-attachment-previews
feature/migrate-back-to-bulma
fix/sass-add-missing-list-import
feature/sticky-demo-bar
fix/gantt-view-switch
feature/typesense-position-join
feature/focus-visible
dependencies/golangci-lint
feature/better-filter-syntax
fix/tiptap-task-list
renovate/github.com-golang-jwt-jwt-v4-5.x
feature/hide-forbidden-related-tasks
renovate/golang-1.x
release/0.20
release/0.17
release/0.16
release/0.15
release/0.14
v2.3.0
v2.2.2
v2.2.1
v2.2.0
v2.1.0
v2.0.0
v1.1.0
v1.0.0
v1.0.0-rc4
v1.0.0-rc3
v1.0.0-rc2
v1.0.0-rc1
v1.0.0-rc0
v0.24.6
v0.24.5
v0.24.4
v0.24.3
v0.24.2
v0.24.1
v0.24.0
v0.23.0
v0.22.1
v0.22.0
0.21.0
v0.21.0
v0.20.4
v0.20.5
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.2
v0.19.1
v0.19.0
vue3
v0.18.1
v0.18.0
v0.17.1
v0.17.0
v0.16.1
v0.16.0
v0.15.1
v0.15.0
v0.14.1
v0.14.0
v0.13.1
v0.13
v0.12
v0.11
v0.10
v0.9
v0.8
v0.7
v0.6
v0.5
v0.4
v0.3
v0.2
v0.1
Labels
Clear labels
area/api
area/attachments
area/auth
area/avatars
area/backup-restore
area/caldav
area/calendar-view
area/comments
area/config
area/database
area/desktop
area/docker
area/email
area/favorites
area/filters
area/frontend
area/gantt
area/i18n
area/import-export
area/internal-code
area/kanban
area/labels
area/list-view
area/mobile
area/notifications
area/permissions
area/projects
area/pwa
area/recurring-tasks
area/reminders
area/search
area/shortcuts
area/subtasks
area/sync
area/table-view
area/task-editor
area/task-metadata
area/task-relations
area/teams
area/theming
area/time-tracking
area/typesense
area/views
area/webhooks
bug
changes requested
concern/accessibility
concern/performance
concern/regression
concern/ux
confirmed
db/mysql
dependencies
enhancement
good first issue
help wanted
integration/inbound
integration/outbound
kind/bug
kind/feature
needs reproduction
pull-request
question
security
support
upstream issue
waiting for reply
wontfix
Mirrored from GitHub Pull Request
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/vikunja#220
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
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?
Originally created by @mrpops2ko on GitHub (Apr 25, 2024).
Description
hi so i have found what i think is a bug and also the rest of the information is me trying to debug wrongly configured routing on my own part, so please ignore it but its good to keep it around for anybody who is silly enough to have forward auth configured and were declaring authentik as a traefik middleware like
- "traefik.http.routers.vikunja.middlewares=authentik@file"im sure others will find this from google in timenow onto the bug (or 2 rather, one is in the documentation of openid, you forgot a trailing slash in the authurl part)
and the other is in relation to the logic of openid
what i've observed is this, and i've reproduced it a few times now to check too
start order is important for the 'log in with authentik' button to appear
if i start vikunja without authentik / traefik then the button disappears and never will be visible
if i start authentik / traefik and then start vikunja then the button appears
a possible solution to this is some retry mechanism
==========================================================================
i'm following your documentation on how to implement openid auth and it seems im doing something wrong but i've gone over the config 15 times now and i'm reasonably sure i've followed it exactly and it still doesn't work.
I use traefik and authentik. To start I verified that I could reach vikunja through traefik without an middleware auth.
I then added authentik middleware, which i have verified works on other applications.
- "traefik.http.routers.vikunja.middlewares=authentik@file"I then added the config.yml and noticed it wouldn't load, i resolved this issue by adding
VIKUNJA_SERVICE_ROOTPATH: /app/vikunja/filesso that it would then work and pick up the config, the logs verify it does and if i ssh and cat the file it confirms to what is bindmounted2024-04-25T14:55:15.025605133+01:00: INFO ▶ config/InitConfig 001 Using config file: /app/vikunja/files/config.ymlWhat may be the issue could possibly be my traefik label for authentik, i have it set up to work with the forward auth proxy but this rule might need to be expanded further to support openid and requests that vikunja might be making to authentik via that
authentik resides at auth.domain.com
vikunja resides at vikunja.domain.com
currently this is the label for authentik
- "traefik.http.routers.authentik.rule=Host(`auth.domain.com`) || HostRegexp(`{subdomain:[a-z0-9]+}.domain.com``) && PathPrefix(`/outpost.goauthentik.io/`)"i've followed this guide https://vikunja.io/docs/openid-example-configurations/ and followed the config exactly and it doesn't work.
I started to play around with various URLs to see if it was that, and noticed that
authurl: "https://authentik.mydomain.com/application/o/vikunja"this didn't work but adding a trailing slash to it didthis didn't resolve my problem but at least it brought me to an authentik page which states information like
so i suspect that at least needs updating in the docs, but i'm still without success in able to access vikunja with authentik and i'm not sure what else to try now
additional things i've tried:
removing all quotation marks, i attempted to compare and contrast the examples and in the first few you offer yaml without quotations and the authentik one you didn't - this didn't resolve the issue (and i dont think wrapping in quotation marks is an issue)
Finally I figured it out, what I was wrongly not realising is that OpenID and forward auth proxying are 2 completely mutually exclusive things - i can't add an authentik forward auth that sits in front of vikunja (or well you can but that is not openid)
openid act as a login provider, and the front facing part will still be vikunja the user just needs to click the log in with authentik button and it will work.
Vikunja Version
latest
Browser and version
chrome
Can you reproduce the bug on the Vikunja demo site?
Please select
Screenshots
No response
@kolaente commented on GitHub (Apr 26, 2024):
This is by design. Vikunja will try to reach the auth provider when the first request to the
/api/v1/infoendpoint is made, usually when you open Vikunja in the browser. I would not host Vikunja and Authentik in the same docker compose stack to make that work.Where exactly is the slash missing in the docs? The actual url used is inferred from the
.well-knownresponse from the provider.@mrpops2ko commented on GitHub (Apr 26, 2024):
what is the logic of the design? for example i have vikunja and authentik in separate docker compose stacks (traefik and authentik are in the same stack) and if i need to take traefik down to add some new network or make a modification, then vikunja will be up and unable to reach the endpoint so it will just never present authentik SSO
https://gyazo.com/52bee35cd51e586e771a3988b422a648.png trailing slash here
@kolaente commented on GitHub (May 3, 2024):
It's mostly to speed things up and do not hit the auth endpoint for discovery all the time. Usually this is not a problem as auth providers are somewhat critical and thus need to be up constantly.
If Vikunja was able to see the auth provider and cached the provider, and you restart Traefik only, Vikunja will still have the entry in cache and not "forget" it.
@mrpops2ko commented on GitHub (May 4, 2024):
alright thank you, well i can only hope that you will reconsider this design decision because on some levels it makes no sense.
if we were to add up the cumulative cost, across every single vikunja user hitting some endpoint that was down, once every say 30 seconds i'm sure the cumulative cost across the span of a year is less than $5
the amount of wasted cpu cycles, extra 'load' and all the rest is so virtually low that if we were to graph it out it'd be so statistically insignificant that it'd be questionable if it was real
we are literally talking about loading what is likely a traefik 404 page if its a self hosted auth is down and repeating that every 30 seconds or whatever arbitary retry mechanism value, which im sure nobody is losing sleep over or could ever quantify into meaningful monetary loss or wasted performance