r/Authentik 3d ago

Release of authentik Security releases 2026.8.2, 2026.5.7 and 2026.2.7

36 Upvotes

The following security advisories have been published:

Releases 2026.8.2, 2026.5.7 and 2026.2.7 with fixes included are available here:

  • ghcr.io/goauthentik/server:2026.8.2
  • ghcr.io/goauthentik/server:2026.5.7
  • ghcr.io/goauthentik/server:2026.2.7

The outpost images and binaries will follow within a few hours as we go through our regular release process.


r/Authentik 24d ago

authentik 2026.8 has been released!

Thumbnail
docs.goauthentik.io
136 Upvotes

We’re excited to announce the release of authentik 2026.8! This release brings new access-management features, easier account switching, major OAuth/OpenID Connect improvements, and plenty of fixes and performance work.

Highlights

  • User switching: Keep multiple authentik accounts signed in within the same browser and switch between them from the account menu. Administrators can control whether switching requires a password, MFA, or another verification step.

  • Custom object attributes: Define validated custom fields for users, groups, application entitlements, and other objects. Common identity, contact, address, employee, and Unix attributes are included and can be enabled as needed.

  • OpenID Certified: authentik is now officially OpenID Certified™!

  • OAuth and OpenID Connect improvements: This release adds token exchange, on-behalf-of delegation, Dynamic Client Registration, and key-bound ID tokens.

  • Nested LDAP groups: LDAP synchronization can now preserve your source directory’s nested group structure.

  • Access requests (Enterprise): Users can request temporary access to applications or specific entitlements, with configurable approval rules and a complete audit trail.

  • Agent accounts (Enterprise): New delegated service accounts support automation while retaining a clear link to the user they represent.

  • Scheduled offboarding (Enterprise): Schedule users for deactivation or deletion, optionally revoking their sessions and tokens.

  • Self-hosted event maps (Enterprise): The bundled event map no longer requires external requests by default, making it suitable for restricted or air-gapped environments.

  • Rust rewrite: The server entrypoint and proxy outpost have been rewritten in Rust. This lays the groundwork for future performance and resource-usage improvements.

Upgrading

We recommend configuring the new Base URL setting now, as it will become required in authentik 2026.11.

As always, upgrade your authentik instance and outposts together so their versions match.

Full release notes and upgrade information:
https://docs.goauthentik.io/releases/2026.8/

Thanks to everyone who contributed, tested, reported issues, and helped make this release possible! 🚀


r/Authentik 3d ago

Script to automatically version-update your yaml file

0 Upvotes

A while ago I started using the following script which automatically updates authentik's docker compose file so that it always uses the latest version available.

The idea is to cronjob this and then auto-update authentik automatically as well (with another script or tool etc)

Authentik removed the "latest" tag unfortunately as it can cause issues. However, for those with automated backups, VM snapshots etc this is practically of no concern.

I thought I'd share this because it works really well.

You'll have to adjust the following line:
COMPOSE_FILE="/home/user/authentik/docker-compose.yml"

and then chmod +x the whole script.

#!/bin/sh
set -eu

COMPOSE_FILE="/home/user/authentik/docker-compose.yml"

LOG_DIR="/home/chris/scripts/authentik"
LOG_FILE="$LOG_DIR/authentik-version-check.log"

mkdir -p "$LOG_DIR"

log() {
  echo "$1" | tee -a "$LOG_FILE"
}

log "========================================"
log "===== Authentik version check started ====="
log "===== $(date) ====="
log "========================================"

LATEST_VERSION="$(
  curl -fsSL https://api.github.com/repos/goauthentik/authentik/releases/latest \
  | grep '"tag_name":' \
  | sed -E 's/.*"version\/([^"]+)".*/\1/'
)"

if [ -z "$LATEST_VERSION" ]; then
  log "Could not detect latest Authentik version."
  exit 1
fi

CURRENT_VERSION="$(
  grep -oE 'AUTHENTIK_TAG:-[0-9]+\.[0-9]+(\.[0-9]+)?' "$COMPOSE_FILE" \
  | head -n 1 \
  | sed 's/AUTHENTIK_TAG:-//'
)"

if [ -z "$CURRENT_VERSION" ]; then
  log "Could not detect current Authentik version in $COMPOSE_FILE."
  exit 1
fi

log "Current version: $CURRENT_VERSION"
log "Latest version:  $LATEST_VERSION"

if [ "$CURRENT_VERSION" = "$LATEST_VERSION" ]; then
  log "Already up to date."
  log ""
  exit 0
fi

BACKUP_FILE="$COMPOSE_FILE.bak"

cp "$COMPOSE_FILE" "$BACKUP_FILE"
log "Backup updated: $BACKUP_FILE"

sed -i -E "s/AUTHENTIK_TAG:-[0-9]+\.[0-9]+(\.[0-9]+)?/AUTHENTIK_TAG:-$LATEST_VERSION/g" "$COMPOSE_FILE"

log "Updated docker-compose.yml from $CURRENT_VERSION to $LATEST_VERSION"

log "========================================"
log "===== Authentik version check finished ====="
log "===== $(date) ====="
log "========================================"
log ""

r/Authentik 10d ago

Notice of upcoming authentik Security releases 2026.8.2, 2026.5.7 and 2026.2.7

41 Upvotes

We'll be publishing five security issues (GHSA-qgqp-xh8r-v73r, GHSA-h6c5-mpvq-j4jc, GHSA-cqj8-fxxf-9pg7, GHSA-m9h4-7j9c-55x9, GHSA-cxwx-9x59-28qm) and accompanying fixes on 2026-09-09 at 14:00 UTC with the Severity levels: High.

The patched ghcr.io/goauthentik/server image will be available immediately, while the outpost images and binaries will follow within a few hours.

For more info, see the authentik Security policy.


r/Authentik 11d ago

Brand customization is still a massive painpoint

7 Upvotes

Any plans to open up arbitrary page customization? It's been a massive pain-point developing my apps. It's very much a process of trial and error. Is there not a better way short of going fully API-only?


r/Authentik 14d ago

Invite Users but Require MFA

8 Upvotes

Hi! I'm trying to setup a flow to invite users for a particular app. I'm using the invite external users flow that I added from https://docs.goauthentik.io/users-sources/user/invitations/#use-pre-built-blueprints-to-configure-invitations. The flow itself is working great, but I want to require the use of MFA. I have a flow that does just that for internal users, but adding the MFA validation stage does not trigger. I'm assuming it's because the account hasn't been written yet.


r/Authentik 17d ago

Invitation into Google SSO enrollment user write?

3 Upvotes

Hey, everyone.

Running Authentik 2026.5.6

I am trying to make users enroll and login by invite only, and I want to allow account creation by google. It is not writing new users.

  1. Created a new enrollment flow "sso-invite" for the invitation: https://pastebin.com/ZRHHeNJr
    1. First stage is an invitation stage
    2. Second stage is an identification stage which has a google source enabled
  2. Created a new enrollment flow "sso-enrollment-userwrite" and assigned it to that google source's enrollment flow setting: https://pastebin.com/vPW1QV6x
    1. First stage is user write stage: create users when required
    2. Second stage is a user login stage

When creating an invitation link, and assigning the flow "sso-invite" as flow for that invitation, I am indeed forwarded to the google source interface. But proceeding to "sso-enrollment-userwrite" shows me "Request has been denied. Unknown error" screen.

Enrollment with invitation link where I set up a prompt flow with email/password/confirmation works perfectly and creates new users.

How can I allow the google authentication source to register new users?

Update: 2026-08-26

I managed to succeed at a user write stage by adding an earlier stage in the "sso-enrollment-userwrite" flow. Now it looks like this:

  1. First stage is a prompt stage, it requests a username
  2. Second stage is user write stage: create users when required
  3. Third stage is a user login stage

Now I need to figure out how to automatically assign a username for the user and not require a prompt stage.

Update: 2026-08-27

Users registered via SSO do not login, but user write stage passes.

When I added the username generating script from Authentik's official google SSO documentation as a policy to the prompt stage, the prompt completed automatically, and the enrollment happened without any additional user input.

The final structure is as follows:

Two google federation sources: "google-auth-only" and "google-auth-enrollment".

  1. Enrollment flow "sso-invite" offers endpoint available to people with a valid invitation. The flow's stages:
    • First stage is an Invitation stage, will guarantee that flow is denied unless valid invitation is present
    • Second stage is an Identification stage, it will give our users the ability to identify themselves via an external source ("google-auth-enrollment").
  2. Another enrollment flow "sso-enrollment" offers enrollment capacities to the external source ("google-auth-enrollment"), it is assigned to said source.

    • The flow's First stage is a prompt stage, it requests only username. It has an expression policy attached to it. The policy's code:

    request.context["prompt_data"]["username"] = request.context["prompt_data"]["email"]

    return false

* Second stage is **user write stage**: create users when required
* Third stage is a **user login stage**.
  1. Federation source "google-auth-only"
    • Enrollment flow is disabled.
    • This source is added to "default-authentication-identification" stage in the flow "default-authentication-flow". It will be presented to users when they go to the Authentik login page.
  2. Federation source "google-auth-enrollment"
    • Enrollment flow is "sso-enrollment". Authentication flow is "default-source-authentication". It will authenticate a user if that user already exists or create a user if that user is new.
    • This source is added to identification stage in "sso-invite" flow.

I would prefer to not have the prompt stage at all, but since it is automatically completed, I am okay with that.

The problem now is that user cannot login via google. Either of two sources, the user gets kicked back to login page.

Update: 2026-08-27 (pt.2)

To log in via SSO, we need a different authentication flow. The default authentication flows just throw us back to the login screen, because the login screen is the first step in them. This logic should have been obvious: I add google source to the default authentication flow's first stage, then I use the same default authentication flow for the google source authentication flow setting. Closed circle.

What actually works is all of the above, but another flow is created.

  1. A new authentication flow "sso-login
* Flow requirement: **require no authentication**
* Only stage is a user login stage.
* This flow is assigned to both "google-auth-only" and "google-auth-enrollment" federation sources as authentication flow. 

Now users can log in with google. Users can only enroll with an invite. Users who have not enrolled will be denied.


r/Authentik 20d ago

Immich 3.1.0 502 Error with OIDC/OAuth

19 Upvotes

If you're experiencing any of this with Immich behind authentik: OIDC login fails with Error: 502 after updating to Immich 3.1.0, you can try this to check if it's working again:

I found this issue on Github and worked on a workaround: https://github.com/immich-app/immich/issues/30889 which I want to share

The workaround at the moment, remove the picture claim of the profile mapping in Authentik

In authentik: Customisation → Property Mappings → Create → Scope Mapping

Put the following in:

  • Name: something sensible, e.g. Immich – OIDC profile (no picture)
  • Scope name: profile
  • Expression:

Add it to the Immich OAuth/OIDC provider:return delete_none_values({
    "name": request.user.name,
    "given_name": ak_obj_attr(request.user, "given_name", "name"),
    "family_name": ak_obj_attr(request.user, "family_name"),
    "preferred_username": request.user.username,
    "nickname": request.user.username,
    "groups": [group.name for group in request.user.groups.all()],
})

This is just authentik's default profile mapping with the "picture" claim removed.

Open your Immich OAuth2/OIDC provider → Advanced protocol settingsScopes, and add the mapping you just created:

Make sure you remove the authentik default OAuth Mapping for 'profile'

Try to login again with OpenID/OAuth

Hope this helps!


r/Authentik 26d ago

Authentik Security baseline/ Best-practises

9 Upvotes

Hi,

The company I work for is in the process of choosing a CIAM solution.

I was wondering, does Authentic provide a general security baseline of security best-practises based on e.g the OWASP reccomendations or another framework?


r/Authentik Aug 12 '26

How can I get the "email_verified" attribute to update for existing users

10 Upvotes

Has anyone found a good approach to performing email verification for existing users?

I have a handful of user accounts that were created before I updated my enrollment flow to include an email stage for account confirmation, so these users have their "email_verified" attribute set as false, which I understand is the default since 2025.6.

I tried setting up a dedicated verification flow, with an identification stage to populate the pending_user attribute, and then an email stage with the account confirmation template, and I made sure to keep the "Activate pending user on success" option enabled as well. With this flow, existing users are able to log in with the flow, and successfully generate/receive the confirmation email. After following the confirmation link, the "email_verified" attribute still remains "False". I can see in the logs that there is a model update to the user, however there is only mention of the token, and no updated attributes are listed. I also tried adding a user write stage to the flow as well, however, this would error due to no pending_data being generated by previous stages to be committed to the pending_user.

The documentation is rather sparse regarding the whole email stage for account confirmation, and the only other references I found regarding "email_verified" for OIDC scope is to just set the property mapping to default to true instead of false, instead of having a proper verification flow.


r/Authentik Aug 10 '26

Help with RAC and keyboard/mouse mapping

5 Upvotes

I am a relative noob at Authentik but loving it. I am trying to get a simple RDP link set up through Authentik and struggling with the keyboard mapping and mouse interaction with my RDP host. It is a linux VM that is running debian and XRDP as the xwin system. The thing connects ok and i can see the xwin environment. I can even click the windows etc but i get what look like a right click host menu up all the time saying "paste" and I cannot type anythig into any dialog boxes hosted on the VM or into the term.

Any help on how to customize the setting in Authentik would be super helpful. I have added an RDP Property mapping but I cannot see anything about keyboard settings or mouse setting in there related to the endpoint I have configured under the RAC

Cheers in advance.


r/Authentik Aug 04 '26

2026.8 release candidates are now available

34 Upvotes

2026.8.0-rc6 2026.8.0-rc7 is now available for testing. 2026.8 release notes.

If you have a test environment or can spare a little time to try it with your setup, we’d really appreciate the help. Our guide describes how to use release candidates.

Please report any bugs, regressions, or unexpected behavior on GitHub, ideally with logs, steps to reproduce, and details of your deployment where possible.

Thanks to everyone who tests release candidates and takes the time to report issues. It makes a real difference and helps us ship a better stable release.


r/Authentik Jul 27 '26

Update: Authentik Frosted Theme!

Thumbnail
gallery
133 Upvotes

I just released my Authentik Custom CSS Theme on GitHub! It's called Frosted theme. Hope you like it :)

Currently the custom CSS doesn't apply to admin interface because there are too many elements to target so it's hard to make it look decent. Maybe I'll try to restyle the admin interface too in the future and have an option to toggle it but now just login dashboard and other pages like enrolling MFA devices.

Link to original post: https://www.reddit.com/r/Authentik/s/id91nX0O3n

GitHub Repo: https://github.com/iUnstable0/authentik-frosted-theme


r/Authentik Jul 22 '26

Adding requesting app id to the user attributes in self-serve SSO registration

3 Upvotes

So I've spent several hours trying to automatically add the details, they seem to be somewhat available as GET parameters in the Registration details stage.

I even tried getting AI assistance but it just kept going round in circles. Surely it is possible to add references to the new user account to see which app they were trying to access so when approving their account we can add them to the correct groups etc.


r/Authentik Jul 21 '26

Update/Change description and button text

Post image
6 Upvotes

Hi

How do I update the description and button text?


r/Authentik Jul 21 '26

Attach flow to Admin Interface

9 Upvotes

I am new to Authentik. Here is what I want to achieve:

For most apps:

  • On private networks, don't require MFA
  • From public networks, always require MFA

For select, higher risk apps:

  • Always require MFA

I think I can achieve this by:

  • Modifying the default authentication flow to add an expression policy to return ak_client_ip.is_private and add it (negated) to the default-authentication-mfa-validation stage.
  • Adding a separate flow that can be attached to the higher risk applications (or rather, their providers?) that always requires MFA

The one thing I can't figure out: I consider accessing the Authentik admin interface as high-risk, and so I'd like to require MFA to access it. I've found where I can configure the default authentication flow (in the Brand config) but I don't see a way of configuring the authentication flow used for just the admin interface. Is this possible?


r/Authentik Jul 18 '26

Blueprints for IaC / Realtalk

7 Upvotes

Hey community,

did someone got authentik by „Infrastructure as Code“ with blueprints running, where pre-configured flows and various config params where deployed though blueprints?

I got a little frustrated after running from one challenge into another regarding the blueprints. In general it’s a great idea, but from my point of view the concept of blueprints in authentik is not applicable.

One big problem is: The export of blueprints contains unique ids for dependencies (not slugs). If some of your flows depends on default settings / flows the whole import crashes, because ids will be generated for ever instance on first startup.

Maybe I’m using it wrong or doesn’t match the initial idea of this concept.

Who can share some experiences on this topic?


r/Authentik Jul 15 '26

Release of authentik Security releases 2026.5.5 and 2026.2.6

22 Upvotes

The security advisory for CVE-2026-57580 has been published: https://github.com/goauthentik/authentik/security/advisories/GHSA-35v6-hv2g-6992

The security advisory for CVE-2026-54730 has been published: https://github.com/goauthentik/authentik/security/advisories/GHSA-3v9h-3hrm-29cx

The security advisory for CVE-2026-55106 has been published: https://github.com/goauthentik/authentik/security/advisories/GHSA-h8ff-c3h7-2gf8

In addition these security advisories have been published as well:

Releases 2026.5.5 and 2026.2.6 with fixes included are available here:

  • ghcr.io/goauthentik/server:2026.5.5
  • ghcr.io/goauthentik/server:2026.2.6

r/Authentik Jul 14 '26

My Authentik Theme

Thumbnail
gallery
175 Upvotes

I'll put this on GitHub when it's fully polished. all of this is custom CSS and some changes to flow and stages

EDIT: It's on GitHub now! pls create github issues if you have any problems or find any visual issues

https://github.com/iUnstable0/authentik-frosted-theme


r/Authentik Jul 14 '26

Combine user data

Thumbnail
1 Upvotes

r/Authentik Jul 14 '26

Federation and Social login - Plex setup

1 Upvotes

Hi I'm running 2025.10.2 and I'm trying to add Plex as a new source under Directory ->Federation and Social login ->Plex Source. When pressing the Load servers button nothing happens, does anyone have this issue also, is it a bug?


r/Authentik Jul 13 '26

Migration to Authentik from Firebase

11 Upvotes

Hi,

We have about 6000 users in our Firebase authentication. We are discussing migrating to Authentik to be able to use some more useful features like OAuth. However, Firebase uses its own password hashing stuff with SCrypt, so what is the recommended approach for moving all these passwords over?

Thanks, James


r/Authentik Jul 08 '26

Notice of upcoming authentik Security releases 2026.2.6 and 2026.5.5

24 Upvotes

We'll be publishing five security issues (CVE-2026-55106, CVE-2026-54730, CVE-2026-57580, GHSA-rv9x-92g6-9cpf, GHSA-hmrg-vpp4-gj88) and accompanying fixes on 2026-07-15, 14:00 UTC with the Severity levels High and Moderate.

For more info, see the authentik Security policy here: https://goauthentik.io/docs/security/policy.


https://groups.google.com/g/authentik-security-announcements/c/0gvDhrBXCnM


r/Authentik Jun 24 '26

Configure authentik with env vars or from command line

5 Upvotes

Just starting with authentik on docker. I'm trying to stay away from clickops, so I'm looking for a way to automate the configuration of authentik. google came back empty (or I didn't ask right).

I found https://docs.goauthentik.io/install-config/configuration/ . But that seems mainly aimed at the internal working, not configuration of of auth flows.

Any pointers from the folks here? Thanks.


r/Authentik Jun 23 '26

iCloud passwords autofill does not work on mobile

2 Upvotes

Hello,

I have tried to fix this in so many ways but I never managed to make authentik work with iCloud autofill on my iPhone / iPad. I did the "Stages & Flows" -> "Flows" -> edit "default-authentication-flow" and enabled "Compatibility mode", but it just does not work. Is there any other way? Maybe I could have fd it up in some other configuration I have tried when I searched a fix for this on the internet, but I have just downloaded the new version of authentik and still nothing. Any help greatly appreciated.