Secure
What this section covers
A correct LuxID integration protects the credentials, tokens, and sessions that result from login - not just the login itself.
Building a correct integration with LuxID is not just about getting users logged in - it also means protecting the credentials, tokens, and sessions that result from that login. A vulnerability in your application can undermine the assurance that LuxID's authentication provides.
This section is for developers and security engineers responsible for LuxID-integrated applications. It covers four themes:
- Application protection - preventing common attacks at the OAuth 2.0 / OIDC layer
- Session management - persisting and renewing tokens correctly across restarts and reboots
- Key management - validating signed tokens and rotating signing material
- Advanced security options - stronger authorization request integrity mechanisms for Partners with stricter requirements
Who should read this
- Developers building the authentication and session layer of a LuxID Partner application
- Security engineers reviewing an existing integration against current best practices
- Architects evaluating whether standard PKCE-based flows or advanced options (PAR, JAR) are appropriate for a given deployment
Pages in this section
Protect your Application
Practical guidance on HTTPS enforcement, PKCE, state and nonce validation, ID Token validation, secure token storage, open-redirect prevention, and the most common anti-patterns - tokens in URLs, tokens in logs, hardcoded secrets.
Applies to all integration types. Start here if you are building or reviewing a new integration.
Session management
Explains what LuxID does and does not manage, the role of each token type, and how to persist refresh tokens so users are not re-prompted for credentials and OTP on every device reboot. Includes lifecycle sequence diagrams, secure storage guidance per platform, and the canonical answer to the recurring support question: "Why does our app ask for OTP every morning?"
Key management
Covers RS256 token signing, the JWKS endpoint, key rotation overlap, and how to write a correct key-fetch-and-cache routine. Also covers Client Secret security and rotation guidance.
Advanced security options
For Partners with elevated security requirements: Pushed Authorization Requests (RFC 9126), JWT-Secured Authorization Requests (RFC 9101), FAPI alignment, and rate-limiting behaviour. Use this page once the standard flow is production-ready and a security review has identified a specific gap.
Token revocation
Revoke refresh or access tokens via the RFC 7009 revocation endpoint as part of logout and incident response. Covers what revocation does and does not terminate (it does not end the LuxID SSO session), client authentication, and the relationship with Subscription revocation.
Calling LuxID reliably
Operational guidance for keeping an integration resilient: timeouts, retries and backoff, idempotency (single-use codes, refresh-token rotation), JWKS caching, and how to behave during a LuxID outage.
Security advisories and dependency currency
Keeping your integration's JWT and OAuth libraries current, monitoring relevant CVEs, and the contact path to follow if your Client Secret is leaked.
Integration security checklist
A walk-before-go-live self-test: Part 1 is what you must verify in your own integration (state, nonce, ID Token validation, token handling); Part 2 is what LuxID enforces for you, with a clear note not to run active security tests against production. Use it for relying-party approval and security reviews.
Security baseline
Every LuxID integration must meet this baseline before go-live, regardless of risk level:
- HTTPS enforced for all redirect URIs and API calls
- PKCE (S256) used on every Authorization Code flow
statevalidated on every callbacknoncevalidated in every ID Token- ID Token validated against all five checks in OpenID Connect Core 1.0 §3.1.3.7
- Refresh tokens stored in platform secure storage (never in localStorage or plain files)
- Client secrets never embedded in mobile or SPA code
Meeting the baseline is a requirement for relying party approval. The pages in this section explain how to satisfy each point.
Relationship to other sections
- Token structure and claims are explained in Tokens and claims
- Authentication flows are described in Add Login and OpenID Connect
- MFA configuration and assurance levels are covered in Multi-factor authentication and Assurance Levels
- Token introspection and revocation APIs are documented in Token introspection and Revocation
- Troubleshooting token validation errors is covered in Token validation issues