`base/header_js.html` built a `window.authentik = {...}` assignment out
of `JSON.parse('{{ config_json|escapejs }}')`, and the flow template
appended a second script that mutated it. Both are executable inline
script, which is the kind of thing that has to go before the interface
pages can be served under a strict CSP.
The server now renders the same values as data: `config` and `brand` as
`json_script` blocks (which serialize and escape on their own, so
`interface.py` hands them the objects instead of pre-dumped strings), and
the scalars — locale, version, build, base URL, flow layout/title/
background — as `<meta>` tags. The messages block was already
`type="application/json"`.
`globalAK()` reads them back from the DOM. Its return shape is unchanged,
so its 23 call sites are untouched; it memoizes on first read rather than
evaluating at import, keeping `#common/global` importable without a
document. A malformed `json_script` block is treated as absent, so the
interface still boots on the same fallbacks it uses when nothing is
injected at all.
What is authentik?
authentik is an open-source Identity Provider (IdP) for modern SSO. It supports SAML, OAuth2/OIDC, LDAP, RADIUS, and more, designed for self-hosting from small labs to large production clusters.
Our enterprise offering is available for organizations to securely replace existing IdPs such as Okta, Auth0, Entra ID, and Ping Identity for robust, large-scale identity management.
Installation
- Docker Compose: recommended for small/test setups. See the documentation.
- Kubernetes (Helm Chart): recommended for larger setups. See the documentation and the Helm chart repository.
- AWS CloudFormation: deploy on AWS using our official templates. See the documentation.
- DigitalOcean Marketplace: one-click deployment via the official Marketplace app. See the app listing.
Screenshots
| Light | Dark |
|---|---|
![]() |
![]() |
![]() |
![]() |
Development and contributions
See the Developer Documentation for information about setting up local build environments, testing your contributions, and our contribution process.
When you contribute documentation, either to accompany a code change or as a standalone contribution, please be sure to follow our documentation Style Guide.
Security
Please see SECURITY.md.
Adoption
Using authentik? We'd love to hear your story and feature your logo. Email us at hello@goauthentik.io or open a GitHub Issue/PR!



