In dit hoofdstuk wordt de inhoud van het SAML transactietoken besproken die bij berichtauthenticatie met behulp van de UZI-pas/servercertificaat wordt gebruikt. Het SAML transactietoken bevat informatie over de toegepaste authenticatie en identificatie van de zorgverlener/medewerker/organisatie. Het SAML transactietoken is een op XML gebaseerd SAML assertion en heeft tot doel de assertions (bewijs van een bewering) over te brengen tussen partijen.
...
Element/@Attribute | 0..1 | Omschrijving |
---|---|---|
@ID | 1 | Unieke identificatie van de Assertion |
@Version | 1 | Versie van het SAML Protocol. Vaste waarde moet zijn 2.0 |
@IssueInstant | 1 | Tijdstip van uitgifte van de Assertion. |
Issuer | 1 | Bevat het OrganisatieID van de zendende applicatie. |
@NameQualifier | 0 | Niet gebruiken |
@SPNameQualifier | 0 | Niet gebruiken |
@Format | 1 | Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity" |
@SPProviderID | 0 | Niet gebruiken |
Signature | 1 | Bevat de handtekening over de assertion zoals gezet met behulp van de UZI pas van de zorgverlener (Z) of de UZI medewerkerpas (N) van de medewerker. De handtekening dient geplaatst te zijn met behulp van het authenticatie certificaat op de pas. |
Subject | 1 | De zorgverlener/medewerker die zich authenticeert. |
BaseID | 0 | Niet gebruiken |
NameID | 1 | Bevat zowel de UZI van de geauthenticeerde zorgverlener/medewerker alsmede diens rolcode. |
EncryptedID | 0 | Niet gebruiken |
SubjectConfirmation | 1 | Moet aanwezig zijn |
@Method | 1 | 'urn:oasis:names:tc:SAML:2.0:cm:holder-of-key' |
SubjectConfirmationData | 0 | Niet gebruiken |
@Recipient | 0 | Niet gebruiken |
@NotOnOrAfter | 0 | Niet gebruiken |
@InResponseTo | 0 | Niet gebruiken |
@NotBefore | 0 | Niet gebruiken |
@Address | 0 | Niet gebruiken |
KeyInfo | 1 | Bevat de X509 Issuer.serial van de medewerkerspas of het servercertificaat |
Conditions | 1 | Moet aanwezig zijn |
@NotBefore | 1 | Moet aanwezig zijn. |
@NotOnOrAfter | 1 | Moet aanwezig zijn. Mag maximaal 90 minuten na @NotBefore liggen. |
Condition | 0 | Niet gebruiken |
AudienceRestriction | 1 | Moet aanwezig zijn |
Audience | 1 | urn:IIroot:2.16.840.1.113883.2.4.6.6:IIext:1 (is de ZIM) |
ProxyRestriction | 0 | Niet gebruiken |
Advice | 0 | Niet gebruiken |
AuthnStatement | 1 | Moet aanwezig zijn |
@AuthnInstant | 1 | Tijdstip van authenticatie van de gebruiker (Subject) of applicatie |
@SessionIndex | 0 | Niet gebruiken |
AuthnContext | 1 | Moet aanwezig zijn |
AuthnContextClassRef | 1 | Ingeval van ondertekening met pas: urn:oasis:names:tc:SAML:2.0:ac:classes:SmartcardPKI |
AttributeStatement | 1 | Moet aanwezig zijn |
Attribute | 0..1 | Moet aanwezig zijn indien bericht aan één patient is gerelateerd. |
@Name | 1 | Vaste waarde: "burgerServiceNummer" |
AttributeValue | 0..1 | Het BSN van de patient. . |
Attribute | 1 | Moet aanwezig zijn |
@Name | 1 | Vaste waarde: "messageIdRoot" |
AttributeValue | 1 | De waarde van de messageIdRoot bijvoorbeeld:2.16.528.1.1007.3.3.1234567.1 |
Attribute | 1 | Moet aanwezig zijn |
@Name | 1 | Vaste waarde: "messageIdExt" |
AttributeValue | 1 | Het MessageId van het bericht.. |
Attribute | 1 | Moet aanwezig zijn |
@Name | 1 | Vaste waarde: "InteractionId" |
AttributeValue | 1 | Het InteractionId van het Bericht (het extension-element). |
Attribute | 0..1 | Moet aanwezig zijn bij de Generieke Query |
@Name | 1 | Vaste waarde: "contextCodeSystem" |
AttributeValue | 0..1 | 2.16.840.1.113883.2.4.3.111.15.1 |
Attribute | 0..1 | Moet aanwezig zijn bij de Generieke Query |
@Name | 1 | Vaste waarde: "contextCode" |
AttributeValue | 0..1 | De contextcode uit de Generieke query. |
Attribute | 0..1 | Moet aanwezig zijn indien gebruik gemaakt is van een mandaat |
@Name | 1 | Vaste waarde: "autorisatieregel/context" |
AttributeValue | 0..1 | URI waar de autorisatieregel/context gevonden kan worden waarbinnen het mandaat gegeven wordt. |
Attribute | 0..1 | Moet aanwezig zijn indien gebruikt wordt binnen AORTA infrastructuur |
@Name | 1 | Vaste waarde: "applicationID" |
AttributeValue | 0..1 | ApplicatieID van de applicatie |
...
urn:IIroot:2.16.528.1.1007.3.3:IIext:12345678
Anchor | ||||
---|---|---|---|---|
|
Code Block |
---|
<saml:Subject> <saml:NameID> 123456789:01.015 </saml:NameID> <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:holder-of-key"> <saml:SubjectConfirmationData> <saml:KeyInfo> <ds:X509Data> <ds:X509IssuerSerial> <ds:X509IssuerName>CN=...,...,O=...,C=NL</ds:X509IssuerName> <ds:X509SerialNumber>...834756977854956...</ds:X509SerialNumber> </ds:X509IssuerSerial> </ds:X509Data> </saml:KeyInfo> </saml:SubjectConfirmationData> </saml:SubjectConfirmation> </saml:Subject> |
...
Voor een beschrijving van de opbouw van de KeyInfo wordt verwezen naar hoofdstuk 4.4.3 Certificaatverwijzingen in document [IH tokens generiek].
Anchor | ||||
---|---|---|---|---|
|
Code Block |
---|
saml:Conditions NotBefore="2009-06-24T11:47:34Z" NotOnOrAfter="2009-06-24T11:52:34Z"> |
...
In de AudienceRestriction wordt beschreven aan wie 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 opbouw paragraaf 2.3.2 Afzender.
Anchor | ||||
---|---|---|---|---|
|
Code Block |
---|
<saml:AuthnStatement AuthnInstant="2009-06-24T11:47:34" SessionIndex="token_2.16.528.1.1007.3.3.1234567.1_0123456789"> |
...
Afsluiting authentication statement.
Anchor | ||||
---|---|---|---|---|
|
Code Block |
---|
<saml:AttributeStatement> |
...
</saml:AttributeStatement>
Anchor | ||||
---|---|---|---|---|
|
Om de integriteit en onweerlegbaarheid van het SAML transactietoken te waarborgen wordt een XML Signature geplaatst, zoals beschreven in [IH tokens generiek]. Na plaatsen van de XML Signature kan de ontvanger, met gebruikmaking van het persoons- of organisatiegebonden PKIoverheid-certificaat van de verzender en de CA certificaten zoals verstrekt door PKIoverheid, onomstotelijk vaststellen dat het SAML transactietoken ondertekend is met de privé sleutel behorend bij het gebruikte certificaat van de zorgmedewerker of de organisatie.
...
Omdat de XML Signature onderdeel is van het SAML transactietoken en in het SAML transactietoken geplaatst wordt, moet er een "enveloped-signature" transformatie uitgevoerd worden die de Signature tags uit het SAML transactietoken verwijderd gevolgd door een “exc-c14n transformatie” (zie ook [SAML Core] §5.4.3 en §5.4.4). |
Anchor | ||||
---|---|---|---|---|
|
De headers
Eerst wordt het SAML transactietoken – het <saml:Assertion ...> element aangemaakt en gevuld met die elementen, zoals beschreven in paragraaf 2.3 Inhoud.
...