Overview
This guide sets up Authentik to issue OIDC tokens that Proxy Hopper can validate. The approach uses a service account with a client credentials grant — suitable for machine-to-machine access.Prerequisites
- Authentik instance (self-hosted or cloud)
- Admin access to the Authentik dashboard
- Proxy Hopper with
auth.enabled: true
Step 1 — Create an OAuth2 / OpenID Connect provider
- In Authentik, go to Applications → Providers → Create
- Select OAuth2/OpenID Connect Provider
- Configure:
- Name:
proxy-hopper - Authorization flow: select your default implicit/authorization flow
- Client type:
Confidential - Client ID:
proxy-hopper(or copy the auto-generated value) - Client secret: copy this — you will need it for Proxy Hopper config
- Redirect URIs: not needed for client credentials — leave blank or add a placeholder
- Scopes: ensure
openidis included
- Name:
Step 2 — Create an application
- Go to Applications → Applications → Create
- Configure:
- Name:
Proxy Hopper - Slug:
proxy-hopper - Provider: select the provider you created above
- Name:
Step 3 — Add a role claim with a property mapping
Proxy Hopper reads the role from a custom JWT claim. You need a property mapping to inject it.- Go to Customisation → Property Mappings → Create
- Select Scope Mapping
- Configure:
- Name:
Proxy Hopper Role - Scope name:
proxy_hopper - Expression:
- Name:
- Go back to your OAuth2 Provider and add this mapping under Scopes
Step 4 — Create a service account (for machine access)
For automated/machine clients:- Go to Directory → Users → Create
- Set Type to
Service Account - Note the username
- Create a Token for this user (Directory → Tokens → Create)
- Add the user to the appropriate group (e.g.
data-team)
Step 5 — Configure Proxy Hopper
issuerUrl is https://<your-authentik-host>/application/o/<application-slug>/.
Step 6 — Test with client credentials
Troubleshooting
401 Invalid or expired token
- Verify the
issuerUrlmatches the Authentik provider’s issuer exactly (including trailing slash) - Check that the scope
proxy_hopperis listed and the property mapping is attached to the provider
403 on target access
- Verify the user is in a group that maps to a role with access to the target
- Check the
proxy_hopper_roleclaim is present in the decoded token:echo $TOKEN | cut -d. -f2 | base64 -d | jq .