4.3 KiB
Authentik Setup Guide for Kaboot
This guide walks through configuring Authentik as the OAuth2/OIDC identity provider for Kaboot.
Prerequisites
- Docker and Docker Compose installed
- Kaboot stack running (
docker compose up -d) - Access to
http://localhost:9000
Step 1: Initial Authentik Setup
-
Navigate to
http://localhost:9000/if/flow/initial-setup/- Important: Include the trailing slash
/
- Important: Include the trailing slash
-
Create the admin account:
- Email: Your email address
- Password: Choose a strong password
-
Log in with the credentials you just created
Step 2: Create the Kaboot Application
-
In the Authentik admin interface, go to Applications > Applications
-
Click Create with provider
-
Application Settings:
Field Value Name KabootSlug kabootLaunch URL http://localhost:5173 -
Click Next
Step 3: Configure OAuth2/OIDC Provider
-
Select OAuth2/OIDC as the Provider Type
-
Click Next
-
Provider Configuration:
Field Value Name Kaboot OAuth2Authorization flow default-provider-authorization-implicit-consentClient type PublicClient ID kaboot-spa -
Redirect URIs (one per line):
http://localhost:5173/callback http://localhost:5173/silent-renew.html http://localhost:5173 -
Advanced Settings:
Field Value Subject mode Based on the User's hashed IDInclude claims in id_token YesIssuer mode Each provider has a different issuer -
Scopes - Ensure these are selected:
openidprofileemailoffline_access(for refresh tokens)
-
Click Submit
Step 4: Verify OIDC Endpoints
After creation, go to Applications > Providers > Kaboot OAuth2
Note these endpoints (you'll need them for frontend configuration):
| Endpoint | URL |
|---|---|
| Issuer | http://localhost:9000/application/o/kaboot/ |
| Authorization | http://localhost:9000/application/o/authorize/ |
| Token | http://localhost:9000/application/o/token/ |
| UserInfo | http://localhost:9000/application/o/userinfo/ |
| JWKS | http://localhost:9000/application/o/kaboot/jwks/ |
Step 5: Test the Configuration
-
Open the OpenID Configuration URL in your browser:
http://localhost:9000/application/o/kaboot/.well-known/openid-configuration -
You should see a JSON response with all OIDC endpoints
Step 6: Create a Test User (Optional)
-
Go to Directory > Users
-
Click Create
-
Fill in user details:
- Username:
testuser - Name:
Test User - Email:
test@example.com
- Username:
-
After creation, click on the user and go to the Credentials tab
-
Click Set password to create a password
Environment Variables
Ensure your .env file has the correct OIDC configuration:
OIDC_ISSUER=http://localhost:9000/application/o/kaboot/
OIDC_JWKS_URI=http://localhost:9000/application/o/kaboot/jwks/
For the frontend OIDC config (src/config/oidc.ts):
export const oidcConfig = {
authority: 'http://localhost:9000/application/o/kaboot/',
client_id: 'kaboot-spa',
redirect_uri: `${window.location.origin}/callback`,
// ... rest of config
};
Troubleshooting
"Invalid redirect URI" error
- Ensure all redirect URIs are added exactly as configured in the provider
- Check for trailing slashes - they must match exactly
"Client not found" error
- Verify the Client ID matches
kaboot-spa - Ensure the application is enabled (not archived)
CORS errors
- Authentik handles CORS automatically for configured redirect URIs
- Ensure your frontend origin (
http://localhost:5173) is in the redirect URIs
Token validation fails on backend
- Verify
OIDC_ISSUERandOIDC_JWKS_URIare correct - The backend must be able to reach Authentik at
http://authentik-server:9000(Docker network)
Production Notes
For production deployment:
- Use HTTPS everywhere
- Update all URLs from
localhostto your domain - Update redirect URIs in Authentik
- Update frontend OIDC config with production URLs
- Update
.envwith production OIDC endpoints - Consider enabling Authentik error reporting
- Configure email settings in Authentik for password recovery