Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

Wiki Markup
In dit hoofdstuk wordt de inhoud van het gecreëerde SAML authenticatietoken van DigiD \[DigiD Koppel\] besproken ,dat bij berichtauthenticatie voor patiënten wordt gebruikt. Het SAML authenticatietoken bevat informatie over de toegepaste authenticatie en identificatie van de patiënt. Het SAML authenticatietoken is een op XML gebaseerde SAML assertion en heeft tot doel de _assertions_ (beweringen over authenticatie) over te brengen tussen partijen (service- en identity provider) die een vertrouwensrelatie hebben.
\\
Alle XML voorbeelden in het document dienen door de betrokken partijen tijdens het bouwen van de uitwisseling getest, en waar nodig, in samenspraak met VZVZ aangepast te worden voor een juiste optimale werking.
\\
Voor het verkrijgen van het SAML authenticatietoken en het aanbieden van dit token aan de ZIM worden de volgende profielen gebruikt:

...

De assertion heeft de volgende structuur (de waarden die in het token gebruikt worden zijn fictief):
<saml:Assertion
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" Version="2.0" ID="_dc9f793e2811b86f8e5cdf43ab5fd47d1fe0e61c" IssueInstant="2012-12-20T18:50:27Z"> <saml:Issuer>SamlIssuer</saml:Issuer> <saml:Subject> <saml:NameID>s00000000:12345678</saml:NameID> <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <saml:SubjectConfirmationData InResponseTo="_7afa6d9f9ff28ca9233ada1d9ec2aa1bd6c5ce49" Recipient="http://example.com/artifact_url" NotOnOrAfter="2012-12-20T18:52:27Z"/> </saml:SubjectConfirmation> </saml:Subject> <saml:Conditions NotBefore="2012-12-20T18:48:27Z" NotOnOrAfter="2012-12-20T18:52:27Z"> <saml:AudienceRestriction> <saml:Audience>
urn:IIroot:2.16.840.1.113883.2.4.6.6:IIext:1
</saml:Audience> </saml:AudienceRestriction> </saml:Conditions> <saml:AuthnStatement SessionIndex="17" AuthnInstant="2012-12-20T18:50:27Z"> <saml:SubjectLocality Address="127.0.0.1"/> <saml:AuthnContext> <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract </saml:AuthnContextClassRef> </saml:AuthnContext> </saml:AuthnStatement> </saml:Assertion>

Anchor
_Toc298159902
_Toc298159902
Anchor
_Toc304817218
_Toc304817218
Anchor
_Toc530128054
_Toc530128054
Namespaces

...

Anchor
_Ref271706292
_Ref271706292
Anchor
_Ref271706295
_Ref271706295
Anchor
_Toc298159904
_Toc298159904
Anchor
_Toc304817220
_Toc304817220
Anchor
_Toc530128056
_Toc530128056
Uniekheid


<saml:Assertion
Version="2.0"
ID="_dc9f793e2811b86f8e5cdf43ab5fd47d1fe0e61c"
IssueInstant="2012-12-20T18:50:27Z">
De attributen van het SAML assertion element maken van de afgegeven SAML assertion een uniek gegeven. Het attribuut ID identificeert op een unieke wijze de assertion. Het attribuut IssueInstant is een tijdsmoment van uitgifte van de SAML assertion. De tijdswaarde is gecodeerd in UTC. Het attribuut Version is de gebruikte SAML versie van de SAML assertion. De aanduiding voor de versie van SAML gedefinieerd in deze specificatie is "2.0".

Anchor
_Ref272396141
_Ref272396141
Anchor
_Ref272396143
_Ref272396143
Anchor
_Toc298159905
_Toc298159905
Anchor
_Toc304817221
_Toc304817221
Anchor
_Toc530128057
_Toc530128057
Onderwerp


<saml:Subject> <saml:NameID>s00000000:12345678</saml:NameID> <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <saml:SubjectConfirmationData
InResponseTo="_7afa6d9f9ff28ca9233ada1d9ec2aa1bd6c5ce49"
Recipient="http://example.com/artifact_url"
NotOnOrAfter="2012-12-20T18:52:27Z"/> </saml:SubjectConfirmation>
</saml:Subject>
Het onderwerp <Subject> bij berichtauthenticatie met DigiD is een referentie naar een authenticatieverzoek van een patiënt dat door het goed beheerd patiëntenportaal is geïnitieerd. Het onderwerp bevat een uniek authenticatienummer, het <NameID> element.
DigiD neemt in het element <NameID> het sectoraal nummer op in het formaat <sectorcode>:<sectoraal nummer>
Indien de sectorcode de waarde 'S00000000' heeft, dan is het sectoraal nummer een BurgerServiceNummer.
Het InResponseTo attribuut en het Recipient attribuut in de bevestiging van het onderwerp <SubjectConfirmation> worden niet gebruikt door het LSP. Deze attributen worden echter wel opgenomen in de assertion.
Verder heeft de bevestiging van het onderwerp een geldigheidsduur (het NotOnOrAfter attribuut). De geldigheidsduur geeft de duur van een sessie aan tussen het goed beheerd patiëntenportaal en de identity provider (DigiD).
Voor deze bevestigingsmethode (het Method attribuut) moet de URN waarde "urn:oasis:names:tc:SAML:2.0:cm:bearer" (assertion drager) worden gebruikt.

Anchor
_Ref272395547
_Ref272395547
Anchor
_Ref272395550
_Ref272395550

Anchor
_Ref286140894
_Ref286140894
Anchor
_Ref286140906
_Ref286140906
Anchor
_Toc298159906
_Toc298159906
Anchor
_Toc304817222
_Toc304817222
Anchor
_Toc530128058
_Toc530128058
Geldigheid

<saml:Conditions
NotBefore="2012-12-20T18:48:27Z"
NotOnOrAfter="2012-12-20T18:52:27Z"> </saml:Conditions>
Op de plaats van de drie punten (…) dient een AudienceRestriction te worden toegevoegd zoals beschreven in paragraaf 2.3.5 Ontvanger).
Het attribuut NotBefore is de tijd waarop de afgegeven SAML assertion geldig wordt.

...

Anchor
_Ref269905408
_Ref269905408
Anchor
_Ref269905411
_Ref269905411
Anchor
_Toc298159908
_Toc298159908
Anchor
_Toc304817224
_Toc304817224
Anchor
_Toc530128060
_Toc530128060
Ontvanger

<saml:AudienceRestriction> <!-- Root en extensie van de ZIM en het patiëntenportaal -->
<saml:Audience>urn:IIroot:2.16.840.1.113883.2.4.6.6:IIext:1</saml:Audience> </saml:AudienceRestriction>
In de AudienceRestriction wordt beschreven aan welke ontvangende partijen (service providers) de SAML assertion is gericht. De waarden in de elementen zijn (voorlopig) vaste waarden. Voor de <Audience> parameter is (ook) gekozen voor URN, zie voor de opbouw van de URN paragraaf 2.3.4 Afzender.
Vooralsnog staat DigiD niet toe dat er meerdere audiences in het token worden teruggegeven. De root en extensie van de ZIM zullen niet zijn opgenomen in de assertion. Het LSP zal zo geconfigureerd moeten worden dat tokens waarbij als audience het patiëntenportaal is opgenomen ook toegelaten worden.

Anchor
_Ref272398667
_Ref272398667
Anchor
_Ref272398670
_Ref272398670
Anchor
_Toc298159909
_Toc298159909
Anchor
_Toc304817225
_Toc304817225
Anchor
_Toc530128061
_Toc530128061
Authenticatie

<saml:AuthnStatement
SessionIndex="17"
AuthnInstant="2012-12-20T18:50:27Z">
</saml:AuthnStatement>
Op de plaats van de drie punten (…) worden de <SubjectLocality> en de <AuthnContext> toegevoegd zoals hieronder beschreven.
Het onderwerp (Subject), een patiënt, in de SAML assertion is geauthenticeerd doormiddel van een authenticatiemiddel op een gegeven moment.
<saml:SubjectLocality Address="127.0.0.1"/>
De SubjectLocality is gevuld met het IP-adres (Address attribuut) van de PC van de gebruiker en is onderdeel van het AuthnStatement. Deze wordt gebruikt om te verifiëren of de patiënt een vervolg verzoek vanaf hetzelfde IP-adres doet als zijn initiële verzoek tijdens het benaderen van het patiëntenportaal.

...

Het XML Signature blok is onderdeel van het SAML authenticatietoken. Het XML Signature blok komt na het <saml:Issuer> element van de <saml:Assertion>.
<ds:Signature> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/> <ds:Reference URI="#_b2728a3aa52c4779c4c77ab8dd8a7dda604c94c7"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> <ec:InclusiveNamespaces PrefixList="ds saml xs"/> </ds:Transform> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <ds:DigestValue>675ga8KqGFqJSGgSJHzoVU+kgrlWqYLpTxJ28gWLPkQ=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>ecXG...igg==</ds:SignatureValue> <ds:KeyInfo> <ds:KeyName>e37ee2522de410c633b3700835727ebf1834cd88</ds:KeyName>
<ds:X509Data>
<ds:X509Certificate>
…DATA…
</ds:X509Certificate>
</ds:X509Data> </ds:KeyInfo> </ds:Signature>
Het certificaat waarmee de assertion is getekend is opgenomen in het X509Data element.
Het in het metadatadocument gebruikte entity_id wordt gebruikt als Issuer in de Assertion.
Om van DigiD een ondertekende assertion te verkrijgen is het nodig dat de dienstaanbieder (het GBP) éénmalig in de uitwisseling van metadata van de dienstaanbieder met DigiD binnen het element <SPSSODescriptor> het attribuut WantAssertionsSigned op "true" zet.
<md:SPSSODescriptor WantAssertionsSigned="true"
protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">

Anchor
_Toc530128065
_Toc530128065
Plaats van het SAML token in het SOAP bericht.

...

Het gehele SAML authenticatietoken met daarin de digitale handtekening worden in het WS-Security SOAP Header gezet.
Op het <wss:Security> element moet een soap:mustUnderstand="1" vlag opgenomen worden, die aangeeft dat de ontvanger dit security element moet verwerken en een soap:actor="http://www.aortarelease.nl/actor/zim" die aangeeft dat de ZIM dit security element verwerkt.
<soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
...
<wss:Security xmlns:wss=
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
soap:actor="http://www.aortarelease.nl/actor/zim" soap:mustUnderstand="1">
<saml:Assertion ...>
<saml:Issuer>SamlIssuer</saml:Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
...
</ds:SignedInfo>
<ds:SignatureValue>Wuwn...5e4=</ds:SignatureValue>
<ds:KeyInfo>
<ds:KeyName>e37ee2522de410c633b3700835727ebf1834cd88</ds:KeyName>
</ds:KeyInfo>
</ds:Signature>
... Zie paragraaf 2.3 Inhoud ...
</saml:Assertion ...>
</wss:Security>
</soap:Header>
<soap:Body>
...
</soap:Body>