Skip to end of banner
Go to start of banner

Het SAML contracttoken

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 3 Next »

Structuur

Het SAML concept-contracttoken is een afgegeven SAML assertion van partij B met betrekking tot het af te sluiten contract tussen beide partijen. Het concept-contracttoken wordt in zijn geheel Base64 geëncodeerd toegevoegd aan het contracttoken die gebruikt wordt bij berichtauthenticatie voor het landelijk EPD. Het SAML concept-contracttoken is ondertekend met behulp van het server-certificaat (UZI of EV/OV) van partij B. Het SAML contracttoken is ondertekend met behulp van het server-certificaat (UZI of EV/OV) van partij A. Het contracttoken is qua structuur en inhoud vrijwel identiek aan het concept-contracttoken. Enige verschillen zijn:

  • De issuer van het concept-contracttoken is de Subject Distinguished Name van partij B; de issuer van het contracttoken is de Subject Distinguished Name van partij A.

  • Het subject is de Subject Distinguished Name van de tegenpartij, dus: in het concept-contracttoken de Subject Distinguished Name van partij A; in het contracttoken de Subject Distinguished Name van partij B

  • Het contracttoken bevat (optioneel) een attribuut _CTR_locatie

  • Het contracttoken bevat een attribuut _Concept-contract_token

  • Het contracttoken bevat een attribuut _AC

  • Beide tokens bevatten een attribuut _FQDN. Hierin is de FQDN van de tegenpartij opgenomen.

Dientengevolge kan overal waar in de hiernavolgende tekst concept-contracttoken vermeld staat ook contracttoken gelezen worden tenzij in de paragraaf duidelijk onderscheid gemaakt wordt.

Het request

Het request is een simpel XML bericht aan de te contracteren organisatie en bevat de Subject Distinguished Name van de contractnemer.

Noot: alhoewel het geen authenticatieverzoek betreft is het wel een verzoek om een SAML assertion. Hiermee wordt dus afgeweken van het zuivere SAML protocol.

 Voorbeeld request:

<samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="identifier_1"
Version="2.0"
IssueInstant="2004-12-05T09:21:59Z"
AssertionConsumerServiceIndex="1">
<saml:Issuer>https://sp.example.com/SAML2</saml:Issuer>
<samlp:NameIDPolicy
AllowCreate="true"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
<samlp:Subject>
<value>
Subject Distiguished Name A
</value>
</samlp:Subject>
</samlp:AuthnRequest>

Assertion

De SAML assertion heeft de volgende structuur (de waarden die in het token gebruikt worden zijn fictief):

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

Concept-contracttoken: De Subject Distinguished Name van de te contracteren partij (partij B).

Contracttoken: De Subject Distinguished Name van de contractnemer (partij A)

       @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

Beide tokens kunnen ondertekend worden door zowel een UZI-servercertificaat als een EV/OV servercertificaat.

Concept-contracttoken: Bevat de handtekening over de assertion zoals gezet met behulp van het servercertificaat van partij B.

Contracttoken: Bevat de handtekening over de assertion zoals gezet met behulp van het servercertificaat van partij A.

Subject

1

Subject Distinguished Name van de tegenpartij: concept-cotracttoken: Subject Distinguished Name van partij A; contracttoken: Subject Distinguished Name van partij B.

       BaseID

0

Niet gebruiken

       NameID

1

Bevat de Subject Distinguished Name.

       EncryptedID

0

Niet gebruiken

       SubjectConfirmation

1

Moet aanwezig zijn.

              @Method

1

'urn:oasis:names:tc:SAML:2.0:cm:sender-vouches’

              SubjectConfirmationData

1

Bevat Keyinfo

            @Recipient

0

Niet gebruiken

                     @NotOnOrAfter

0

Niet gebruiken

                     @InResponseTo

0

Niet gebruiken

            @NotBefore

0

Niet gebruiken

                     @Address

0

Niet gebruiken

                     KeyInfo

1

Voor beide tokens: Bevat het publieke deel van het X509 servercertificaat

Conditions 

1

Moet aanwezig zijn.

    @NotBefore

1

Moet aanwezig zijn.

    @NotOnOrAfter

1

Moet aanwezig zijn. Mag maximaal 10  jaar na @NotBefore liggen.

       Condition

0

Niet gebruiken

       AudienceRestriction

1

Moet aanwezig zijn

              Audience

1..*

Minimaal 1 element: urn:IIroot:2.16.840.1.113883.2.4.6.6:IIext:1 (is de ZIM). Voor het concept-contracttoken tevens de urn naar de contractnemer (partij A). Meerdere audiences zijn toegestaan.

       ProxyRestriction

0

Niet gebruiken

Advice

0

Niet gebruiken

AuthnStatement

1

Moet aanwezig zijn

       @AuthnInstant

1

Tijdstip van aanmaak.

    @SessionIndex

0

Niet gebruiken

       AuthnContext

1

Moet aanwezig zijn

              AuthnContextClassRef

1

urn:oasis:names:tc:SAML:2.0:ac:classes:X509

AttributeStatement

1

Moet aanwezig zijn

    Attribute

0..1

Optioneel aanwezig; alleen in contracttoken.

        @Name

1

Vaste waarde: “_CTR_locatie”

    AttributeValue

0..1

De URL naar het Contracttokenregister

    Attribute

1

Moet aanwezig zijn alleen in contracttoken.

        @Name

1

Vaste waarde: “_Concept-contract_token”

    AttributeValue

1

Base64 representatie van het WID_token

    Attribute

1

Moet aanwezig zijn alleen in contracttoken.

        @Name

1

Vaste waarde: “_AC”

    AttributeValue

1

Bevat een X.509 Attribute certificate

    Attribute

1

Moet aanwezig zijn in beide tokens

        @Name

1

Vaste waarde: “_Scope”

    AttributeValue

1

Bevat de scope (dienst) van het contract

N.B.: bovenstaande tabel bevat de meest gebruikte elementen van SAML assertions en is derhalve niet volledig. Voor niet genoemde elementen geldt: Niet gebruiken.

Namespaces

Het SAML concept-contracttoken die gebruikt wordt bij berichtauthenticatie maakt gebruik van de volgende namespaces. De prefixen zijn niet normatief maar worden in dit document als voorbeelden gebruikt.

Tabel AORTA.STK.t3300 - Namespaces

Prefix

Namespace URI

ds

http://www.w3.org/2000/09/xmldsig#

saml

urn:oasis:names:tc:SAML:2.0:assertion

samlp

urn:oasis:names:tc:SAML:2.0:protocol

wss

http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd

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.

Inhoud

De volgende paragrafen beschrijven de verschillende kenmerken en beveiligingsgerelateerde gegevens die het SAML (concept-)contracttoken onderscheiden, zoals in [IH tokens generiek] beschreven is.

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

Het SAML (concept-)contracttoken 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.4.1 Uniekheid beschreven.

Uniekheid

ID="token_dd1c1f96-f0b0-4026-a978-4d724c0a0a4f"
IssueInstant="2009-06-24T11:47:34Z"
Version="2.0">

De volgende attributen van het SAML assertion element maken van de SAML assertion een uniek gegeven, uitgegeven door de verzender van het bericht. Het attribuut ID identificeert op een unieke wijze de assertion. De waarde moet mondiaal uniek zijn voor alle berichten, zodat bij samenvoegen van meerdere XML bestanden (in een HL7v3 batch of anderszins) de waarde uniek blijft.

 

Het wordt aanbevolen een UUID (Universally Unique Identifier) te gebruiken. Bij het gebruik van andere vormen is er een kans, hoe klein ook, dat een ID samenvalt met een ID gemaakt volgens een andere methode van een andere leverancier).

 Een ID in XML mag niet met een cijfer beginnen. Bij het gebruik van een UUID is het dus aan te raden een prefix te gebruiken, welke met een letter of underscore (‘_’) begint.

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".

  • No labels