Informasjon om bruk av SOAP (deprekert)

SOAP (deprekert)

Hjelp til SAML

For SOAP må virksomhetsertifikatet brukes til å bygge opp en SAML-assertion som hektes på request. Denne inneholder kontekstinformasjon om hvem som som benytter tjenestene.

Struktur

Oppbygging av SOAP-konvolutt

Eksempel på SubjectConfirmation

Metode: Bearer

<saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
   <saml2:SubjectConfirmationData NotBefore="2016-03-21T14:44:08Z" NotOnOrAfter="2016-03-21T15:34:08Z"/>
</saml2:SubjectConfirmation>

Eksempel på Conditions

Gyldighetsperiode må være med.

<saml2:Conditions NotBefore="2016-04-04T10:44:04Z" NotOnOrAfter="2016-04-04T10:49:04Z"/>

Eksempel på atributter

Saml Attributter for pålogget sluttbruker og/eller systembruker skal være med. Sluttbruker kan f.eks. være saksbehandler.

<saml:AttributeStatement>
   <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" Name="urn:skatteetaten:saml:attributt:systembruker" FriendlyName="Systembruker">
      <saml:AttributeValue xsi:type="xs:string">Systembruker Y</saml:AttributeValue>
   </saml:Attribute>

   <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" Name="urn:skatteetaten:saml:attributt:sluttbruker" FriendlyName="Sluttbruker">
      <saml:AttributeValue xsi:type="xs:string">Sluttbruker Z</saml:AttributeValue>
   </saml:Attribute>

</saml:AttributeStatement>

Plassering av Saml Assertion i SOAP-melding

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header>
      <wsse:Security soap:mustUnderstand="0" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
         <saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">

           [ASSERTION PLASSERES HER]

         </saml2:Assertion>
      </wsse:Security>
   </soapenv:Header>

   <soapenv:Body>

     [MELDING PLASSERES HER]

   </soapenv:Body>

</soapenv:Envelope>

Eksempel på signert Saml Assertion

Under finnes et eksempel på komplett (uten sertifikat) SAML assertion.

<?xml version="1.0" encoding="UTF-8"?>
<saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Version="2.0" ID="SAML-5963a4e1-cb2f-486e-9832-0675ab321059" IssueInstant="2016-03-21T14:44:08Z">
   <saml2:Issuer>Java Server</saml2:Issuer>
   <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
      <SignedInfo>
         <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
         <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
         <Reference URI="#SAML-5963a4e1-cb2f-486e-9832-0675ab321059">
            <Transforms>
               <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
               <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
            </Transforms>
            <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
            <DigestValue>dlQy/PozzUyrjsa9pjAUsWb7Cug=</DigestValue>
         </Reference>
      </SignedInfo>
      <SignatureValue>mDuo+8JIr62iM8C+dNRkrjgUB6uHV6vnmDLrbHI/DdFp5fc/VB/o5mY1wMgjJZKtk4XbMNSORx7N+kOv7JF931Jww39XbMzFeyascYozKmTrXloooOYwKblK7IO/dCXHIh5TYyZyjppIFfUfGyQ6bilKvdb3Qi63tvlXoFpNTHcI8hwqcBDlnl1sIwMGEe+xy/fIgVu5JDfi81hu8MRWiKdLFZ6Z1xdHMQeTzVXJsCTI4n8zkVR1x+hRnnwWhRr/xWO2uH1fD4HPq/3qAycVjygxHZNsY7Ork/xyMxjEb7a8oYOrAiI2vggeZ0nX2ABJfNla09pfYQ1jsCwhbpwkFQ==</SignatureValue>
      <KeyInfo>
         <X509Data>
            <X509Certificate>Fjernet sertifikat siden det tar mye plass</X509Certificate>
            <X509IssuerSerial>
               <X509IssuerName>CN=TESTSUBCA-2023, DC=skead, DC=no</X509IssuerName>
               <X509SerialNumber>1694856639554091340771133265617702137679053660</X509SerialNumber>
            </X509IssuerSerial>
         </X509Data>
      </KeyInfo>
   </Signature>
   <saml2:Subject>
      <saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">3f7b3dcf-1674-4ecd-92c8-1544f346baf8</saml2:NameID>
      <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
         <saml2:SubjectConfirmationData NotBefore="2016-03-21T14:44:08Z" NotOnOrAfter="2016-03-21T15:34:08Z" />
      </saml2:SubjectConfirmation>
   </saml2:Subject>
   <saml2:Conditions NotBefore="2016-03-21T14:44:08Z" NotOnOrAfter="2016-03-21T15:34:08Z" />
   <saml2:AuthnStatement AuthnInstant="2016-03-21T14:44:08Z" SessionNotOnOrAfter="2016-03-21T15:34:08Z">
      <saml2:SubjectLocality Address="10.207.4.121" />
      <saml2:AuthnContext>
         <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml2:AuthnContextClassRef>
      </saml2:AuthnContext>
   </saml2:AuthnStatement>
   <saml2:AttributeStatement>
      <saml2:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" Name="urn:skatteetaten:saml:attributt:systembruker" FriendlyName="Systembruker">
         <saml2:AttributeValue>Systembruker Y</saml2:AttributeValue>
      </saml2:Attribute>
      <saml2:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" Name="urn:skatteetaten:saml:attributt:sluttbruker" FriendlyName="Sluttbruker">
         <saml2:AttributeValue>Sluttbruker Z</saml2:AttributeValue>
      </saml2:Attribute>
   </saml2:AttributeStatement>
</saml2:Assertion>

Tips

  • For å unngå at serialisering fra java til nettverkstrafikk ødelegger digital signatur kan det være lurt å bruke datatype string i skjema for Saml

Assertion.

Eksempelkode som er verifisert til å virke for utstedelse av Saml Assertion

Tags: