2b39450ae24d922de7593dfeac6a7f7026ba8483
## Why All Authentik OIDC logins (ArgoCD, Grafana, Rancher, LiteLLM, NetBox) fail with `invalid_request` / "The request is otherwise malformed". Authentik 2026.5 added an explicit `grant_types` allow-list to the OAuth2 provider (model default = empty list). Our module never set it, so every provider has `grant_types = []`, and `authorize.py` rejects the authorization_code grant (`if self.grant_type not in self.provider.grant_types`) before any user auth. ## Change - modules/authentik: add a `grant_types` field to the `providers_oauth2` variable, defaulting to `["authorization_code", "refresh_token"]` (the standard confidential web-app set), and wire it into `authentik_provider_oauth2`. ## Plan `0 to add, 5 to change, 0 to destroy` — each existing oauth2 provider's `grant_types` goes `[] -> ["authorization_code", "refresh_token"]`; no other attributes change. Baseline plan (pre-change) was clean (no netbox/state drift). Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
terraform-authentik
Terraform configuration for managing the Authentik identity provider at identity.unkin.net.
Managed Resources
- Groups — roles and group hierarchy (users are invited manually)
- SAML providers — SAML application integrations
- OAuth2/OIDC providers — OAuth2 and OpenID Connect integrations
- LDAP providers — LDAP provider and outpost configuration
- Applications — application definitions linked to providers
Configuration
Resources are defined as YAML files under config/:
config/
├── groups/ # Group definitions
├── providers_saml/ # SAML provider definitions
├── providers_oauth2/ # OAuth2/OIDC provider definitions
└── providers_ldap/ # LDAP provider definitions
Usage
make plan # init + plan
make apply # init + plan + apply
make format # format all .tf and .hcl files
Authentication
Set VAULT_ROLEID for local AppRole auth, or VAULT_AUTH_METHOD=kubernetes for CI.
Description
Languages
HCL
94.3%
Makefile
5.7%