SAML 1.1 Bindings
SAML 1.1 formally defines just one protocol binding, the SAML SOAP binding. A compatible SAML 1.1 implementation must implement SAML over SOAP over HTTP (a synchronous protocol binding). Other transport mechanisms besides HTTP are permitted, provided the protocol-independent aspects of the SAML SOAP binding are observed (see section 3.1.2 of #SAMLBind).
The SAML 1.1 SOAP binding is built on top of version 1.1 of SOAP (the numbering is purely coincidental). A SAML requester wraps a SAML Request
element within the body of a SOAP message. Similarly, a SAML responder returns a SAML Response
element within the body of a returned SOAP message. If there is an error, the responder returns a SOAP fault code instead.
Any SAML markup must be included in the SOAP body. SAML 1.1 does not define any SAML-specific SOAP headers. A requester is free to insert any SOAP headers it wishes (although none are required).
Recall that in SOAP 1.1, a SOAPAction
HTTP header must be included with each HTTP request (although its value may be empty). A SAML requester may give the following value to the SOAPAction
header:
A SAML responder must not depend on this value, however.
A secure connection is not required for SAML requests and responses, but in those situations where message integrity and confidentiality are required, HTTP over SSL 3.0 or TLS 1.0 with a server-side certificate is required.
A SAML responder may return a "403 Forbidden" response when it refuses to respond to a SAML requester. A responder must return a "500 Internal Server Error" response in the event of a SOAP error (a SOAP fault element must be included as well). Otherwise, a "200 OK" response is returned, even in the presence of a SAML processing error. Such a response will include a SAML Status
element in the SOAP body.
Read more about this topic: SAML 1.1