Skip to content

Organization sign-in with OIDC

Connect RatelDesk’s browser sign-in to Authentik using authorization code with PKCE. Start with a working HTTPS instance and a completed local administrator setup.

Create an Authentik OAuth2/OpenID provider and application for RatelDesk. Configure a confidential client, a signing key and exact public callback URLs:

SettingExample
Authority / issuerhttps://id.example.com/application/o/rateldesk/
Sign-in callbackhttps://desk.example.com/signin-authentik
Sign-out callbackhttps://desk.example.com/signout-authentik
Standard requested scopesopenid email profile offline_access
Additional API scopeYour configured scope, for example rateldesk-api

Use your actual issuer and hostnames. Provide the email and subject claims needed for identity provisioning. The API’s configured audience must match the access token’s aud value; a scope name and audience are separate settings.

Save this as docker-compose.identity.yml beside the release files. Replace the example issuer, client ID, scope and audience. Begin with Hybrid so the local administrator can verify external access:

services:
api:
environment:
Authentication__Mode: Hybrid
Authentication__Authentik__Authority: https://id.example.com/application/o/rateldesk/
Authentication__Authentik__Audience: your-access-token-audience
web:
environment:
Authentication__Mode: Hybrid
Authentication__Authentik__Authority: https://id.example.com/application/o/rateldesk/
Authentication__Authentik__ClientId: your-client-id
Authentication__Authentik__ApiScope: rateldesk-api
Authentication__Authentik__CallbackPath: /signin-authentik
Authentication__Authentik__SignedOutCallbackPath: /signout-authentik
AUTHENTIK_CLIENT_SECRET: ${AUTHENTIK_CLIENT_SECRET:?Set the OIDC client secret}

Supply AUTHENTIK_CLIENT_SECRET through your protected deployment environment or private .env. Keep the HTTPS and proxy-trust settings from your public deployment.

Apply the overlay with the rest of your files:

Terminal window
docker compose --env-file .env -f docker-compose.release.yml \
-f docker-compose.public.yml -f docker-compose.identity.yml \
up -d --force-recreate api web

Adjust the public-overlay filename if your deployment uses another one.

External users need a verified identity link and organization access. Email matching alone does not link an account. The customer login/invitation workflow establishes ordinary user links; explicitly authorized external instance administrators can sign in without a customer-contact link.

The shipped API role mapping recognizes rateldesk:role:admin as HelpdeskAdmin and rateldesk:role:technician as Technician. Configure provider claims deliberately and use organization roles for the required scope.

In a fresh browser session, choose Sign in with Authentik. Confirm the expected organization, role access and a permitted ticket read. Check sign-out and a second sign-in.

For SSO-only access, change Authentication__Mode to Oidc in both overlay services and recreate them again. Hybrid keeps both methods visible.

SymptomCheck
Web fails at startupRequired issuer, client ID, API scope and secret
Callback rejectedExact URL, public HTTPS scheme and forwarded-header trust
Provider succeeds but application denies accessAPI audience, external identity link and organization permissions

The beta.17 Web flow uses this Authentik namespace. API AzureAd bearer settings alone do not configure direct Entra browser sign-in. For Entra users, use Authentik federation.

RatelDesk 0.1.2-beta.17 · Reviewed 2026-10-30
Product home · Release downloads · Report a documentation issue