LDAP / Kerberos SSO — Setup & Troubleshooting Runbook
Internal engineering runbook for standing up AD/LDAP + Kerberos (SPNEGO) silent SSO for the standard desktop app end-to-end, with the non-obvious gotchas that break it. Companion to the client-facing
The chain (what must line up)
domain-joined Windows client (domain-user session → Kerberos TGT)
│ reads C:\Windows\System32\zs-origin.json → tenant + apiKeycloakUrl + realm
│ browser (Chrome/Edge) with SPNEGO allowlist for the Keycloak host
▼
Keycloak (developer/tenant realm)
│ LDAP user federation (LDAPS) + Kerberos, editMode = UNSYNCED
│ SPN HTTP/<keycloak-host> + AES keytab
▼
core-service (JIT provisioning: /api/v2/onboarding/ensure-federated-identity)
│ tenant StandardConfig.autoCreateUsers = true
▼
We360 Identity created; identity_id claim written back to KeycloakKeycloak federation — the settings that matter
Setting
Value
Why
Kerberos SPN / keytab — must match the manifest host and be AES
The Windows client
zs-origin.json (pre-provisioned discovery)
JIT provisioning (core-service)
Troubleshooting — symptom → cause → fix
Symptom
Cause
Fix
Getting core-service logs locally
Last updated
Was this helpful?