SAML SOAP Binding: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(13 intermediate revisions by the same user not shown)
Line 5: Line 5:
=Overview=
=Overview=


The SAML request consists in a SOAP Header and a SOAP Body. The SOAP Body includes a Security Token, a digital signature, generated using [[XML Signature]] and the request data.


The SAML response also consists in a SOAP header and a SOAP Body. The SOAP Body includes the digital signature and the response data.
=SAML Request=
 
The SAML request consists in a SOAP Envelope that contains a SOAP Body. The SOAP Body typically includes a Security Token, a digital signature, generated using [[XML Signature]] and the request data. An AuthnRequest follows:
 
<pre>
<env:Envelope xmlns:env=”http://www.w3.org/2003/05/soap/envelope/”>
 
  <env:Body>
 
    <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
          ForceAuthn="true"
          AssertionConsumerServiceURL="http://www.example.com/serviceA/"
          AttributeConsumingServiceIndex="0"
          ProviderName="string"
          ID="skdfa7234"
          Version="2.0"
          IssueInstant="2005-06-01T01:00:00Z"
          Destination="http://www.example.com/"
          Consent="http://www.example.com/">
 
      <saml:Subject xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
 
        <saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">
          user1@example.com
        </saml:NameID>
 
      </saml:Subject>
 
    </samlp:AuthnRequest>
 
  </env:Body>
 
</env:Envelope>
</pre>
 
=SAML Response=
 
The SAML response also consists of a SOAP Envelope that includes a SOAP Body. The SOAP Body includes the digital signature and the response data, in form of a Response that includes a SAML Assertion. A SAML AuthenticationStatement assertion example follows:
 
<pre>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
 
  <env:Body>
 
    <samlp:Response xmlns:samlp="..." xmlns:saml="..." xmlns:ds="...">
 
      <Status>
        <StatusCode value=”urn:oasis:names:tc:SAML:2.0:status:Success”/>   
      </Status>
 
      <saml:Assertion>
 
        ...
       
        <saml:AuthnStatement>
            ...
        </saml:AuthnStatement>
 
      </saml:Assertion>
 
    </samlp:Response>
 
  </env:Body>
 
</env:Envelope>
</pre>
 
More details about SAML Assertions can be found here: {{Internal|SAML_Concepts#SAML_Assertion|SAML Assertions}}

Latest revision as of 18:35, 21 February 2017

Internal

Overview

SAML Request

The SAML request consists in a SOAP Envelope that contains a SOAP Body. The SOAP Body typically includes a Security Token, a digital signature, generated using XML Signature and the request data. An AuthnRequest follows:

<env:Envelope xmlns:env=”http://www.w3.org/2003/05/soap/envelope/”>

  <env:Body>

    <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
           ForceAuthn="true"
           AssertionConsumerServiceURL="http://www.example.com/serviceA/"
           AttributeConsumingServiceIndex="0"
           ProviderName="string"
           ID="skdfa7234"
           Version="2.0"
           IssueInstant="2005-06-01T01:00:00Z"
           Destination="http://www.example.com/"
           Consent="http://www.example.com/">

      <saml:Subject xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">

        <saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">
          user1@example.com
        </saml:NameID>

       </saml:Subject>

     </samlp:AuthnRequest>

  </env:Body>

</env:Envelope>

SAML Response

The SAML response also consists of a SOAP Envelope that includes a SOAP Body. The SOAP Body includes the digital signature and the response data, in form of a Response that includes a SAML Assertion. A SAML AuthenticationStatement assertion example follows:

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">

  <env:Body>

    <samlp:Response xmlns:samlp="..." xmlns:saml="..." xmlns:ds="...">

      <Status> 
        <StatusCode value=”urn:oasis:names:tc:SAML:2.0:status:Success”/>     
      </Status>

      <saml:Assertion>

        ...
        
        <saml:AuthnStatement>
            ...
        </saml:AuthnStatement>

      </saml:Assertion>

    </samlp:Response>

  </env:Body>

</env:Envelope>

More details about SAML Assertions can be found here:

SAML Assertions