Skip to content

Authentication

Naburis provides a centralized identity provider implementing OpenID Connect (OIDC) for all authentication flows.

Single-page applications use the Authorization Code flow with PKCE:

The SPA OIDC configuration is available at each product’s /auth/config endpoint:

Terminal window
curl https://ks.naburis.cloud/auth/config
# {"issuer":"https://auth.naburis.cloud","clientId":"...","projectId":"..."}

For server-side integration:

  • Client Credentials grant — for automated service-to-service communication
  • Personal Access Tokens (PATs) — for admin scripts and CI/CD pipelines

Every access token is a signed JWT (RS256) verified independently by each product via OIDC JWKS discovery. No shared session state exists between services.

ClaimDescription
subUser ID
issIssuer URL
audProject ID
expToken expiration
urn:zitadel:iam:org:idOrganization (tenant) ID
urn:zitadel:iam:org:project:rolesProject role grants

These claims are injected automatically via a pre-access-token webhook and carry your tenant, plan, and entitlement context:

ClaimTypeDescription
Customer IDstringYour customer identifier
PlanstringOverall subscription plan
Productsstring[]Active product memberships
Product plansobjectProduct → plan tier mapping

These claims drive authorization, metering, and rate limiting across all products.

Every authenticated request goes through a two-layer authorization check:

  1. JWT Verification — Verifies the token signature via OIDC JWKS
  2. Scope Enforcement — Ensures the X-Tenant-ID and X-Workspace-ID headers match the JWT claims

If the tenant ID in the header doesn’t match the org ID in the token, the request is denied.