Set up single sign-on (SSO)
You can configure your Seafile instance so that users sign in via single sign-on (SSO) against your identity provider. Seafile authenticates via OAuth2/OpenID Connect against Authentik — your team signs in with their central account and doesn’t need to be created in Seafile beforehand.
Setup is self-service directly in the server.camp portal — no support ticket needed, and the feature is available on all plans.
- An active Seafile subscription at server.camp
- A reachable Authentik instance (e.g. managed Authentik at server.camp)
- Admin access to both systems
- In Authentik, open Applications → Providers
- Click “Create” → Type: OAuth2/OpenID Connect
- Fill in the fields:
- Name:
Seafile - Client Type:
Confidential - Redirect URIs / callback URI:
Note the trailing slash — the URI must be stored exactly like this.https://<your-seafile-domain>/oauth/callback/ - Signing Key: Select the default key (already available)
- Name:
- Save — Authentik automatically generates a Client ID and Client Secret. You’ll need both later in the portal.
Copy Client ID and secret nowOpen the provider you just created and copy the Client ID and Client Secret into a text editor. You’ll need them shortly in the server.camp portal.
- Go to Applications → Applications → “Create”
- Fill in the fields:
- Name:
Seafile - Slug:
seafile - Provider: select the
Seafileprovider you just created
- Name:
- Optional: Under UI Settings, upload a Seafile logo and set the launch URL to
https://<your-seafile-domain> - Save
Restrict access by group (recommended)Open the application → Policy / Group / User Bindings tab → “Create” → Group → select the group that should have access to Seafile (e.g.all-employees). Only members of that group will be able to sign in to Seafile via Authentik.
Seafile uses explicit OAuth2 endpoints (no discovery). You need three URLs from your Authentik instance. Replace <your-authentik> with your actual Authentik address:
| Endpoint | URL |
|---|---|
| Authorization URL | https://<your-authentik>/application/o/authorize/ |
| Token URL | https://<your-authentik>/application/o/token/ |
| Userinfo URL | https://<your-authentik>/application/o/userinfo/ |
These endpoints are the same across your whole Authentik instance and independent of the application slug.
In the customer portal, open the configuration of your Seafile subscription and enter these values:
| Field | Value |
|---|---|
| Enable single sign-on | Checked |
| Provider domain | Allowed email domain of your users, e.g. your-company.com |
| Client ID | From Authentik (Step 1) |
| Client secret | From Authentik (Step 1) |
| Authorization URL | https://<your-authentik>/application/o/authorize/ |
| Token URL | https://<your-authentik>/application/o/token/ |
| Userinfo URL | https://<your-authentik>/application/o/userinfo/ |
| Scopes | openid profile email (default) |
| SSO-only login | Optional – hides the local email/password login (sign-in via SSO only) |
Save and wait for the deployment to finish (about 1–2 minutes). The Seafile login page then shows an additional button to sign in via your provider.
Only enable "SSO-only login" after a successful testOnly enable “SSO-only login” once you can sign in via SSO — otherwise you lock yourself out. It then disables local email/password login, and sign-in runs exclusively through your identity provider.
No attribute mapping neededSeafile uses the email address as the login. The attribute mapping (unique ID, email, and name) is handled automatically by the platform. Users do not need to be created in Seafile beforehand — their account is created on the first SSO login.
- Open Seafile in the browser and sign out if needed
- The login page now shows a button to sign in via your provider
- Click the button — you’ll be redirected to Authentik
- After authentication (and 2FA if enabled), the user lands back in Seafile and is signed in
Test before switching overThe classic login form remains available next to the SSO button. This lets you sign in with your local admin account if the configuration needs adjusting.
- “redirect_uri mismatch” at Authentik: check that the redirect URI is stored exactly — including the path (
/oauth/callback/) and the trailing slash.https://<your-seafile-domain>/oauth/callback(without the slash) causes this error. - Login is rejected even though the credentials are correct: check that the provider domain in the portal matches your users’ email domain. For example, if
max@your-company.comsigns in, the provider domain must beyour-company.com. If it doesn’t match, Seafile refuses the login. - No SSO button visible: is “Enable single sign-on” checked and has the deployment in the portal finished?
If you run into issues with SSO, reach our support via the customer portal.