Identity federation
Your IdP remains the source of truth
When an organization has invested in an identity provider — Okta, Azure AD, Google Workspace, or a custom OIDC provider — that investment should remain the system of record. We integrate; we do not relitigate. SAML 2.0, OIDC, JIT provisioning, and email-domain auto-provisioning so onboarding and offboarding stay in your existing tooling.
Executive summary
Single sign-on for Enterprise organizations via SAML 2.0 or OIDC. Just-in-time user provisioning means the first IdP-authenticated login creates the local membership; subsequent SSO re-auth fails after the IdP deactivates a user, and active sessions end via SCIM deprovision or session expiry. JWKS rotation is automatic and cached. Domain restrictions ensure only your verified email domains can join your organization, with optional auto-provisioning when a verified-domain user signs in for the first time.
Our commitments
Five rules for federated identity
The IdP is the source of truth
We do not store an authoritative copy of your user directory. Membership decisions reflect your IdP's current state at sign-in time.
Standards-only protocols
SAML 2.0 (OASIS) and OIDC (OpenID Foundation). No proprietary single-sign-on bridges. Any compliant IdP works without a special connector.
JIT provisioning by default
The first authenticated login creates the local membership. No bulk import, no out-of-band sync. When a user is removed from the IdP, subsequent SSO re-auth fails; the active session ends via SCIM deprovision or session expiry.
Sensitive IdP material is encrypted at rest
Client secrets carry field-level AES-256-GCM encryption with redact: true on the schema.
Domain restrictions are a hard gate
Email-domain allow-list is enforced before any user record is created. Auto-provisioning is opt-in, never default — domain matches are evaluated, not assumed.
Implementation — SAML 2.0
SAML hardening
Implementation — OIDC
OIDC hardening
The full picture
What is built, what is being built, and what we chose not to build
Live today
SAML 2.0 IdP integration
LiveMetadata fetch + parse, SP metadata generation, signed assertion verification with replay protection.
OIDC with PKCE
LiveAuthorization Code + PKCE flow only. Discovery, JWKS caching, nonce + state validation.
JIT user provisioning
LiveFirst IdP-authenticated login creates the local membership; mapped to org via verified domain or admin-configured rule.
Field-level encryption for IdP credentials
LiveClient secrets encrypted at rest with redact: true; never reach logs or telemetry.
Email-domain restriction + auto-provisioning
LiveDNS TXT verification of the domain; only verified domains can be enrolled for auto-provisioning.
SCIM 2.0 /Users inbound provisioning
LiveRFC 7644 compliant SCIM /Users endpoint so your IdP can create, update, and deactivate users without our intervention.
Building now
SCIM 2.0 /Groups support
Building nowExtend SCIM coverage to group membership so IdP-side group changes propagate without admin intervention.
Group-based role mapping
Building nowMap IdP group membership to EngineeringID organization roles. Removing a user from the IdP group revokes the role on next sign-in.
Roadmap
IdP-initiated SLO (Single Logout)
RoadmapWhen the IdP signals logout, we revoke every EngineeringID session that user holds in one transaction.
Multi-IdP per organization
RoadmapSome Enterprise orgs run multiple IdPs (one for employees, one for contractors). Support routing rules so each user authenticates against the right one.
Step-up authentication via IdP
RoadmapRe-prompt the IdP for high-assurance auth before sealing operations, even when a session already exists.
Customer-rooted SAML signing
RoadmapUse a customer-controlled CA chain for SP metadata signatures, so customers can run mTLS against our SP endpoint.
Considered & rejected
LDAP-direct authentication
Considered & rejectedLDAP exposes credential material directly; OIDC and SAML do not.
Why we rejected it: LDAP authentication requires the user's password to flow to us. Federated SSO via OIDC or SAML keeps the credential at the IdP. The IdP returning a signed assertion is strictly stronger than us verifying a password against a directory.
Password sync / directory sync
Considered & rejectedReplicating password material to a second system multiplies the attack surface and adds nothing.
Why we rejected it: every "we sync your AD passwords so users can sign in directly" is a permanent commitment to having a copy of those passwords. The right answer is: do not have the passwords. Federate, do not replicate.
OAuth implicit flow
Considered & rejectedThe implicit flow leaks tokens via URL fragments and lacks PKCE; it has been removed from OAuth 2.1 for cause.
Why we rejected it: implicit flow exists for a use case (browser-only SPAs) that we do not have. Authorization Code + PKCE is the modern correct answer; we use it exclusively.
Default-on "trust this IdP" without metadata pinning
Considered & rejectedAn IdP rotation we did not approve should not silently re-anchor trust.
Why we rejected it: each IdP integration pins to a specific certificate set in the metadata. A rotation requires a deliberate config update, not a silent acceptance of whatever shows up at the metadata URL.
Compliance mappings
Controls this surface satisfies
Logical Access — Authentication
Federated SAML / OIDC; field-level credential encryption
User access management
JIT provisioning + IdP-driven deactivation
User registration and de-registration
JIT registration; IdP signals deactivation
Secure log-on procedures
Federated SSO with replay + nonce protection
Federation Assurance Level 2
Bearer assertions with strong binding via SAML/OIDC
Person or Entity Authentication
Federated identity from a verified IdP
For compliance teams
Questions you do not need to call to ask
Which IdPs are supported?
What happens when a user is removed from the IdP?
Can we restrict which email domains can authenticate?
How is the SAML signing certificate rotated?
Do you support contractor or guest access via separate IdPs?
What logs are kept on SSO sign-ins?
Federate identity. Do not replicate it.
See the SSO setup flow, or talk to our security team about your IdP topology.