Configuration and Setup
Initial Configuration
First-Time Setup Process
Access the Web Interface
# After deployment, access Authentik http://localhost:9000 # or https://your-domain.comInitial Admin Account
# Get default admin credentials docker compose exec authentik-server ak create_admin_group docker compose exec authentik-server ak create_admin_user
Core Configuration Steps
1. Basic System Settings
# System settings configuration
authentik:
default_user_change_email: true
default_user_change_name: true
default_user_change_username: true
avatars: "gravatar"
footer_links:
- name: "Documentation"
href: "https://docs.goauthentik.io"
# Branding configuration
ui:
theme: "automatic"
locale: "en"
# Security settings
security:
secret_key: "your-secret-key"
csrf:
trusted_origins:
- "https://auth.example.com"
2. Email Configuration
# Email settings for notifications
email:
host: "smtp.example.com"
port: 587
username: "authentik@example.com"
password: "your-smtp-password"
use_tls: true
use_ssl: false
timeout: 30
from: "Authentik <authentik@example.com>"
# Email templates
templates:
account_confirmation: "email/account_confirmation.html"
password_reset: "email/password_reset.html"
invitation: "email/invitation.html"
Advanced Configuration
Environment Variables Reference
# Core Configuration
AUTHENTIK_SECRET_KEY=your-secret-key # Required: Encryption key
AUTHENTIK_LOG_LEVEL=info # Options: debug, info, warning, error
AUTHENTIK_ERROR_REPORTING__ENABLED=false # Disable error reporting to Authentik
# Database Configuration
AUTHENTIK_POSTGRESQL__HOST=postgres # Database host
AUTHENTIK_POSTGRESQL__PORT=5432 # Database port
AUTHENTIK_POSTGRESQL__NAME=authentik # Database name
AUTHENTIK_POSTGRESQL__USER=authentik # Database user
AUTHENTIK_POSTGRESQL__PASSWORD=your-password # Database password
AUTHENTIK_POSTGRESQL__USE_PGBOUNCER=false # Enable connection pooling
# Redis Configuration
AUTHENTIK_REDIS__HOST=redis # Redis host
AUTHENTIK_REDIS__PORT=6379 # Redis port
AUTHENTIK_REDIS__DB=0 # Redis database number
AUTHENTIK_REDIS__PASSWORD= # Redis password (if required)
# Email Configuration
AUTHENTIK_EMAIL__HOST=smtp.example.com # SMTP server
AUTHENTIK_EMAIL__PORT=587 # SMTP port
AUTHENTIK_EMAIL__USERNAME=authentik@example.com # SMTP username
AUTHENTIK_EMAIL__PASSWORD=your-smtp-password # SMTP password
AUTHENTIK_EMAIL__USE_TLS=true # Enable TLS
AUTHENTIK_EMAIL__USE_SSL=false # Enable SSL
AUTHENTIK_EMAIL__TIMEOUT=10 # Connection timeout
AUTHENTIK_EMAIL__FROM=Authentik <authentik@example.com> # From address
# Web Configuration
AUTHENTIK_LISTEN__HTTP=0.0.0.0:9000 # HTTP bind address
AUTHENTIK_LISTEN__HTTPS=0.0.0.0:9443 # HTTPS bind address
AUTHENTIK_LISTEN__METRICS=0.0.0.0:9300 # Metrics bind address
AUTHENTIK_WEB__WORKERS=2 # Number of web workers
# Security Configuration
AUTHENTIK_COOKIE__DOMAIN=.example.com # Cookie domain
AUTHENTIK_DISABLE_UPDATE_CHECK=true # Disable update notifications
AUTHENTIK_AVATARS=gravatar # Avatar provider
Authentication Flows
Authentik uses a flexible flow system that allows you to customize the authentication experience for different scenarios and applications.
Flow Types and Configuration
Core Flow Types
| Flow Type | Purpose | Use Cases |
|---|---|---|
| Authentication | User login process | SSO, multi-step authentication |
| Authorization | Access control decisions | Policy enforcement, consent |
| Invalidation | Session termination | Logout, account suspension |
| Enrollment | User registration | Self-service registration |
| Recovery | Password reset | Forgotten password recovery |
| Unenrollment | Account deletion | GDPR compliance, self-service |
Default Authentication Flow
# Example authentication flow configuration
name: "default-authentication-flow"
title: "Welcome to Example Corp"
designation: "authentication"
policy_engine_mode: "any"
stages:
- identification:
user_fields: ["username", "email"]
password_fields: ["password"]
sources: ["internal"]
- password:
backends: ["internal", "ldap"]
failed_attempts_before_cancel: 5
- mfa:
device_classes: ["totp", "webauthn", "sms"]
configuration_stages: ["mfa-setup"]
- user_login:
session_duration: "hours=8"
remember_me_offset: "days=30"
Multi-Factor Authentication Setup
TOTP Configuration
# TOTP authenticator configuration
from authentik.stages.authenticator_totp.models import TOTPDevice
# Configure TOTP settings
totp_config = {
'issuer': 'Example Corp',
'period': 30,
'algorithm': 'SHA1',
'digits': 6,
'drift': 1
}
WebAuthn/FIDO2 Setup
# WebAuthn stage configuration
webauthn_stage:
user_verification: "preferred"
authenticator_attachment: "cross-platform"
resident_key_requirement: "discouraged"
allowed_devices:
- "usb"
- "nfc"
- "ble"
- "internal"
Custom Authentication Flows
Enterprise SSO Flow
# Enterprise SSO with step-up authentication
enterprise_sso_flow:
name: "Enterprise SSO"
stages:
- ldap_identification:
sources: ["corporate-ldap"]
password_backends: ["ldap"]
- password_validation:
backend: "ldap"
- risk_assessment:
policies: ["location-based", "device-trust"]
- conditional_mfa:
conditions:
- high_risk_score: "required"
- admin_group: "required"
- external_network: "required"
- authorization:
policies: ["group-membership", "time-based"]
- user_login:
session_duration: "hours=4"
Navigation
◄ Installation and Deployment · Authentik Overview · Integration and Users ►