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 |
...
Bij het gebruik van de namespace-prefixes is het van belang deze na het ondertekenen niet meer te veranderen, dit maakt de digitale handtekening ongeldig. |
Anchor | ||||
---|---|---|---|---|
|
De volgende paragrafen beschrijven de verschillende kenmerken en beveiligingsgerelateerde gegevens die het SAML transactietoken onderscheiden, zoals in [IH tokens generiek] beschreven is.
...
Het SAML transactietoken begint met het Assertion element en een verwijzing naar de XML SAML namespace voor SAML 2.0 assertions. De attributen behorende bij het Assertion element wordt in paragraaf 2.3.1 Uniekheid beschreven.
Anchor | ||||
---|---|---|---|---|
|
Code Block |
---|
ID="token_ dd1c1f96-f0b0-4026-a978-4d724c0a0a4f" IssueInstant="2009-06-24T11:47:34Z" Version="2.0"> |
...
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 | ||||
---|---|---|---|---|
|
Code Block |
---|
<saml:Issuer> <!-- De Issuer verwijst naar de organisatie van waaruit het totale bericht verstuurd wordt.--> urn:IIroot:2.16.528.1.1007.3.3:IIext:12345678 </saml:Issuer> |
...
Het inperken van bepaalde partijen (AudienceRestriction) waarvoor de assertion bedoeld is wordt beschreven in paragraaf 2.3.5 Ontvanger.
De subelementen OneTimeUse en ProxyRestriction worden niet gebruikt binnen het <Conditions> element bij berichtauthenticatie met behulp van de UZI-pas.
Anchor | ||||
---|---|---|---|---|
|
Code Block |
---|
<saml:AudienceRestriction> <!-- Root en extensie van de ZIM --> <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 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.
Authenticatie
Code Block |
---|
<saml:AuthnStatement AuthnInstant="2009-06-24T11:47:34" SessionIndex="token_2.16.528.1.1007.3.3.1234567.1_0123456789"> |
...
- Voor het berekenen van de hashwaarde wordt SHA-256 gebruikt.
- Voor de digitale handtekening in AORTA wordt gebruik gemaakt van een RSA handtekening over een SHA-256 digest.
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). |
Opbouw
De headers
Eerst wordt het SAML transactietoken – het <saml:Assertion ...> element aangemaakt en gevuld met die elementen, zoals beschreven in paragraaf 2.3 Inhoud.
Code Block |
---|
<saml:Assertion ID="token_2.16.528.1.1007.3.3.1234567.1_0123456789" IssueInstant="2009-06-24T11:47:34Z" Version="2.0" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"> ... Zie paragraaf 2.3 Inhoud ... </saml:Assertion> |
...