SSOGEN / Free tools / SAML Request Builder: Create an AuthnRequest or LogoutRequest
Free tool
SAML Request Builder: Create an AuthnRequest or LogoutRequest
A SAML request builder creates the message an application sends to an identity provider to start a sign-in or a sign-out. Fill in the form below and copy the XML, the redirect URL or the POST value; nothing leaves your browser.
Build the request
Choose a sign-in or sign-out request, fill in the fields and select Build request. To see a complete set of values first, select Fill in an Acme example.
Sign-in options
Private by design. The request is built in this page and nothing is uploaded. It is not signed: a request carries no secret, and signing needs a private key that you should never paste into a web page. An identity provider that requires signed requests will refuse it.
Everything runs in this page and nothing is uploaded. The request is not signed, because signing needs a private key that never belongs in a web page.
What a SAML request is
A SAML request is the first message of a SAML sign-in. The application (the service provider) sends an AuthnRequest to the identity provider, which signs the person in and replies with an assertion. This SAML request builder produces that message from an entity ID and two URLs, so you can test an identity provider before the application is ready.
Most online SAML tools only decode messages. This one does three things:
- Builds the request. It produces the message from an entity ID and two URLs.
- Shows three forms. The same message appears in the three forms an identity provider accepts.
- Checks the values. It checks the values that usually cause a refusal.
What the builder produces
| Output | What it is | Use it to |
|---|---|---|
| XML | The AuthnRequest or LogoutRequest with a fresh ID and the current IssueInstant |
Read the message, or paste it into a test client |
| HTTP-Redirect URL | The XML compressed with DEFLATE, base64-encoded and URL-encoded as SAMLRequest, plus RelayState |
Open it in a browser to start a test sign-in |
| HTTP-POST value | The XML base64-encoded, without compression | Fill the SAMLRequest field of a form that posts to the identity provider |
| HTML form | A ready form with the value in a hidden field | Test the POST binding from a local page |
The redirect URL follows the DEFLATE encoding in section 3.4.4.1 of the SAML bindings specification: compress the XML, base64-encode it, then URL-encode it. The POST value skips the compression step.
What each field sets
- Application entity ID becomes the
Issuer. The identity provider looks it up among its registered applications, so it must match the registered value character for character. - Identity provider URL becomes
Destination. Use the single sign-on URL for a sign-in and the single logout URL for a sign-out. - Assertion consumer service URL becomes
AssertionConsumerServiceURL. The identity provider normally accepts only a URL listed in the application’s metadata. Check the list with the SAML metadata checker. - NameID format goes into
NameIDPolicy, or into theNameIDof a logout request. It asks for the identifier type the application expects. - Force re-authentication sets
ForceAuthn="true". The identity provider must ask for credentials again even if the person has a session. - Do not show a login page sets
IsPassive="true". The identity provider must answer without any user interface, and returns an error if the person is not already signed in. - Requested authentication method adds a
RequestedAuthnContextwith the comparison you choose: exact, minimum, better or maximum. - RelayState is returned unchanged with the response. The specification limits it to 80 bytes, and the builder flags a longer value.
ForceAuthn and IsPassive cannot both be true. One demands a login and the other forbids showing one, so the builder reports the pair as an error.
Send the request and read the answer
- Build a request and open the HTTP-Redirect URL. The identity provider shows its sign-in page.
- Sign in. The identity provider posts a
SAMLResponseto the assertion consumer service URL you entered. - Copy that response from the browser’s Network tab, or use the SAML tracer to decode it.
- Check that
InResponseToequals the request ID shown under the XML, and thatDestinationandAudiencematch your values.
If the identity provider shows an error instead of a login page, compare its message with the checks under the builder. Three causes account for most refusals:
- Entity ID. An unregistered entity ID.
- ACS URL. A mismatched assertion consumer service URL.
- Signing. An unsigned request to an identity provider that requires signing.
The SP-initiated and IdP-initiated SSO page shows where each step happens.
Use it with SSOGEN as the identity provider
SSOGEN is a SAML 2.0 identity provider that many applications can trust at once. To test an application against it:
- Register the application first with the register a SAML application guide.
- Enter the same entity ID and assertion consumer service URL in this builder.
- Paste the SSOGEN single sign-on URL from the application’s connection details.
- Open the redirect URL.
What is the difference between identity provider and service provider in SAML?
How to run a SAML trace?
What is OAuth vs SAML?
Is SAML better than LDAP?
Where to go next
- Decode. Decode the answer with the SAML tracer and decoder.
- Check. Check metadata with the SAML metadata checker.
- Build. Build it with the SAML metadata generator.
- Overview. The overview of related tools is on the free SSO tools page.
- Protocol. The protocol is explained in what is SAML.
Sources, all read 2026-10-27: SAML 2.0 bindings specification (sections 3.4.3 and 3.4.4.1); SAML 2.0 core specification.