Skip to main content

ADR-0004: SAML Certificate Rotation

  • Status: Proposed
  • Date: 2026-01-27
  • Author: @digiwedge/engineering

Context​

SAML IdPs rotate signing certificates periodically. If the IDP validates only a single certificate, tenants will experience login failures during rotation windows. We need a rotation strategy that allows overlap without compromising security.

Decision​

Allow multiple active signing certificates per tenant and validate assertions against any active cert. Rotation is handled by updating metadata to include both the current and next certificates for a grace period.

Specific policy:

  • Store an array signingCertificates[].
  • Accept any certificate marked active: true.
  • Prefer the certificate marked primary (or first in list) when creating SP-initiated requests (if signing is enabled).
  • Remove the old certificate only after a defined grace period (e.g., 7 days) or after successful validation events confirm the new cert is in use.

Consequences​

Positive​

  • Seamless IdP rotations without downtime.
  • Clear operational guidance for enterprise onboarding.
  • Reduced support escalations during cert changes.

Negative​

  • Slightly broader trust window while two certs are active.
  • Requires metadata refresh and monitoring to detect stale certs.

Alternatives Considered​

AlternativeProsConsWhy not chosen
Single active cert onlyMinimal configRotation causes outagesNot acceptable
Hard-coded grace period without metadata refreshSimpleCan miss rotationsOperationally risky
Auto-trust any cert in metadata foreverLess workExpands trust unnecessarilySecurity risk

Follow-ups​

  • Add monitoring for expired or soon-to-expire certs
  • Emit audit events on cert changes
  • Document rotation steps in ops runbook