AuthnRequest
What FaceSign accepts athttps://idp.facesign.dev/api/saml/sso.
string
required
Must exactly match a registered entityID. Unregistered issuers are rejected before anything
else happens.
string
Validated against the SSO endpoint when present.
HTTP-Redirect | HTTP-POST
required
Both are supported.
not accepted
Signed AuthnRequests are not supported in this release and are rejected. The metadata declares
WantAuthnRequestsSigned="false".string
default:"omitted"
Optional, and gated. See NameID echo below — this is the field with the
sharpest security consequence on the whole contract.
string
Returned untouched so your SP knows where to resume.
Released attributes
Present on the assertion, on a pass only.NameID echo
By default the assertion NameID is transient and session-scoped:<Subject> NameID, the assertion echoes that identity and format
straight back — but only for service providers explicitly registered for it. Any other SP
sending a <Subject> gets:
Denial semantics
Fail-closed.Success with verified_human is issued only for a complete session with liveness
detected and intent confirmed. Any strong deepfake signal vetoes the pass.
Every other outcome returns top-level urn:oasis:names:tc:SAML:2.0:status:Responder with nested
AuthnFailed. A refusal is status-only — no assertion at all, per SAML Core §3.2.2 — and the
Response is signed.
A signed denial and a missing response are different things, and your fallback policy should
treat them differently. Today every non-pass looks the same on the wire; a more granular status
taxonomy is not available in this release.
Related
Validate responses
The checklist your SP must run before trusting anything above.
Test the live sandbox
Capture a real response and diff against it.