Home Supported Standards Terms & Conditions Privacy Policy Documentation Contact About

← Return to home

Drive a SAML SSO round-trip against an Identity Provider, in SAML 2.0 or SAML 1.1. Load the IdP's metadata, configure the Service Provider request, generate an SP signing key pair, and send the request over the chosen binding. The IdP's response is captured by the ACS endpoint and shown on the SAML Response page.

The two versions are different protocols, not two spellings of one. SAML 2.0 is SP-initiated: the request is a <samlp:AuthnRequest> document, which can be signed and (here, for inspection) encrypted. SAML 1.1 has no request message at all — its browser profiles are IdP-initiated, and what a service provider actually sends is Shibboleth's urn:mace:shibboleth:1.0:profiles:AuthnRequest: the four query parameters TARGET, shire, providerId and time, with nothing to sign and nothing to encrypt. Every setting below that has no meaning in 1.1 is greyed out and switched off when 1.1 is selected, rather than silently ignored. SAML 1.0 remains reference-only. Keycloak speaks no SAML 1.1; the mock STS does.

This is the static (backend-less) deployment. Loading IdP metadata, building/signing the AuthnRequest, and capturing the IdP's response all run entirely in the browser. The Assertion Consumer Service is answered at the CDN edge by a function that hands the response to the SAML Response page, so the request asks for the HTTP-POST binding exactly as it would with a backend — which is what the profile requires, and what lets an encrypted assertion work here (ciphertext does not compress, so a redirect-bound encrypted response runs into URL-length limits). With no ACS server to receive a POST, the request asks the IdP to return its response over the HTTP-Redirect binding, which SAML Response reads from the URL. Note that saml-profiles-2.0-os §4.1.2 says the Redirect binding MUST NOT be used for the response, "as the response will typically exceed the URL length permitted by most user agents" — it works here for a modest assertion, it needs the IdP to permit it, and a large or encrypted assertion may not fit browser/CDN URL-length limits. The HTTP-Artifact binding needs the server-side SOAP back-channel and is unavailable here.

Tip: click a pane's title to collapse/expand it.

IdP Metadata
Document (raw XML)
Configuration Parameters
Single Sign-On (SSO) Endpoints

Single Logout (SLO) Endpoints

Identity
SP / Request Settings

SP Signing Key Pair (X.509 / RSA)

AuthnRequest Encryption (XML-Enc)

Note: Keycloak (and most IdPs) do not accept an encrypted AuthnRequest — there is no standard element to carry one, so this is provided for inspection/education. All encryption is performed in the browser and is always applied after the digital signature (sign-then-encrypt).

WS-Addressing (SOAP / HTTP-Artifact back-channel)

WS-Addressing is a SOAP header mechanism — it is not part of the request document and has no effect on the HTTP-Redirect/POST bindings. These values are added to the SOAP envelope the API sends to the IdP's artifact resolution endpoint — a SAML 2.0 <samlp:ArtifactResolve>, or a SAML 1.1 <samlp:Request> carrying an <AssertionArtifact> — so they apply only when the HTTP-Artifact binding is used. They apply to both versions.

Tools

Standalone utilities for working with SAML and its XML security layers.

SAML Request Decoder — take an AuthnRequest off the wire and read it: paste a redirect URL, a POST form body, a bare SAMLRequest, an artifact or the XML, and get the pretty-printed message, its important values, an optional signature check (enveloped for POST, query-string for Redirect) and optional decryption.
SAML Response Decoder — take a SAML response off the wire and read it, in SAML 2.0 or SAML 1.1: paste a POST form body, a redirect URL, a bare SAMLResponse, an artifact, a bare <saml:Assertion> or the XML, and get the status, every assertion and its attributes, a check of every signature it carries (message, assertion and query-string, reported separately) and optional decryption.
SAML Assertion Tool — compose a spec-compliant SAML 1.0/1.1/2.0 assertion (optional elements, NameID, custom attributes), sign it with XML Signature, and encrypt it with XML Encryption.
Certificate Details — parse an X.509 certificate (PEM or bare base64 DER) and inspect its subject, issuer, validity, key, extensions, and fingerprints.
Certificate Authority & X.509 Tools — build a Root, Intermediate and Issuing certificate authority, issue TLS server/client, code-signing, S/MIME and other certificates with every X.509v3 extension, and test a real TLS or mutual-TLS handshake with what you issued.
Operations History

Chronological history of every attempted call to the IdP from this page — the AuthnRequest, a Single Logout, and each metadata load — newest first. Result is one of: Failure, the call never left the browser (no key, no endpoint, a signing or encryption error, a metadata fetch that did not land) or the IdP refused it; Sent, the request was built, signed, and dispatched and no answer has come back yet — an entry that stays Sent means the IdP never answered this debugger, so check the IdP's own error page; Success, the IdP answered with a Success status. A Sent entry is closed out when the response is rendered on the SAML Response page. The history is kept in this browser's local storage and survives a reload.