Use backend/BFF or public-client initiation
Authorization Code with S256 PKCE returns an ES256-signed ID token. A backend/BFF can start the flow, or a public-client SPA can start it and forward the token to its backend for validation.
- 1Backend/BFF: keep state, nonce, and code_verifier server-side, bound to the protected transaction, expected flow, and expected subject or action references.
- 2Public-client SPA: the browser may retain state and code_verifier, but the backend must issue or verify the action-binding nonce or challenge and pre-bind the expected flow and subject or action references.
- 3In the backend, validate the ES256 signature against JWKS plus iss, aud, exp, iat, nonce, expected flow, ACR, applicable AMR, and required Sonavera namespaced claims. Require the flow-specific signed subject or action claims—and the deletion-subject binding where applicable—to match backend-owned transaction state.
- 4Apply customer policy only after backend validation succeeds.