/
(v1) SSO (profiel, verificatie, meldingen)

(v1) SSO (profiel, verificatie, meldingen)

Bijlage B Het SSO profiel

Het Single Sign-On profiel (SSO) is een SAML profiel dat aangeeft hoe gebruik te maken van het SAML authenticatie vraag en antwoord protocol in combinatie met verschillende SAML-bindings, zoals SOAP en HTTP. De communicatie bij authenticatie gaat tussen een Identity Provider (partij die verantwoordelijk is voor de waarmerking van de gebruiker) en een Service Provider (partij die een applicatie of bron beschikbaar stelt voor de gebruiker).


Noot: Het patiëntenportaal (GBP) vervult de rol van de Service Provider. De Identity Provider (IdP) wordt vervuld door DigiD.


Het volgende figuur illustreert het proces (stappen 1 t/m 8) voor de verwezenlijking van het SSO profiel. De stappen zijn in deze bijlage uitgewerkt.


 

Voorbeeld van configuratie waarden voor een fictieve testomgeving:

Noot: Omdat niet alle internet browsers een ongelimiteerde URL ondersteunen, wordt er gebruik gemaakt van HTTP artefact binding (zie de pijlen 6 en 7 in bovenstaand figuur).


Stap 1: Het HTTP Request voor het patiëntenportaal

Een patiënt verzoekt via een cliënt (internet) browser toegang tot het patiëntenportaal (GBP). Dit is een standaard HTTP/TLS verzoek, hiervoor worden geen beperkingen opgelegd.


Stap 2: Het afgeven van een <AuthnRequest>

De 2e stap is implementatie afhankelijk. Voor het authenticeren van burgers is DigiD de aangewezen authenticatie-autoriteit. Het patiëntenportaal stuurt de gebruiker via een HTTP-Redirect door naar een voorgedefinieerde Identity Provider waar de gebruiker wordt geauthenticeerd. Voor dit geval geeft het patiëntenportaal een <AuthnRequest> door. De <AuthnRequest> is van het complexe type AuthnRequestType dat afgeleid is van het abstracte complexe type RequestAbstractType. Zie voor alle SAML elementen en types [SAML Assertion Protocol].


De locatie van de "SSO Service", die binnen het Identity Provider domein actief is, wordt out-of-band doorgegeven met behulp van een SAML Metadata bestand. Dit bestand bevat tevens de publieke X509-certificaten voor de ondertekening en eventuele encryptie. Encryptie wordt vooralsnog niet gebruikt.



<md:IDPSSODescriptor ... >




<!-- Metadata van de SSO Service als onderdeel van de Identity Provider -->

   <md:SingleSignOnService WantAssertionsSigned="true"

   Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"

  Location="https://federatie.overheid.nl/aselectserver/server/saml20_sso"/>

  ...

</md:IDPSSODescriptor>



Het <SingleSignOnService> element is van het complexe type IndexedEndpointType en onderdeel van het <IDPSSODescriptor> element uit het metadata bestand dat een specifiek profiel (dienstverlening) reflecteert ter ondersteuning van het SSO profiel van de Identity Provider.

Het <SingleSignOnService> metadata element bestaat uit de volgende attributen:


Naam (@=attribuut)

Omschrijving

Vereist

@WantAssertionsSigned

Geeft aan dat, naast het gehele ArtefactResonse bericht, de assertion zelf ook ondertekend moet zijn

Ja

@Binding

Specificeert de binding dat door de "SSO Service" wordt ondersteund. De binding wordt via een URI geïdentificeerd. Bijvoorbeeld: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect".

Ja

@Location

De locatie van de "SSO Service". Ook een URI attribuut.

Ja

 

Het patiëntenportaal initieert de SAML binding. In antwoord op het authenticatie verzoek wordt een antwoord aan het patiëntenportaal geleverd als onderdeel van de "SSO Service".



<?xml version="1.0" encoding="UTF-8"?>

<!-- Authenticatie verzoek via HTTP Redirect -->

<samlp:AuthnRequest AssertionConsumerServiceURL="https://testportal.aorta-zorg.nl:443/topa-prototype/saml/SSO"

 Destination="https://federatie.overheid.nl/aselectserver/server/saml20_sso"

 ID="authntoken_2.16.528.1.1007.3.3.1234567.1_0123456789"

 IssueInstant="2009-06-24T11:46:53Z"

 ProviderName="testportal.aorta-zorg.nl"

 Version="2.0"

 xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">

<!-- Aanvrager van het authenticatie verzoek -->

 <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">https://testportal.aorta-zorg.nl:443/topa-prototype/saml/SSO</saml:Issuer>

 <!-- Authenticatie-context -->

 <samlp:RequestedAuthnContext Comparison="exact">

  <saml:AuthnContextClassRef

xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract</saml:AuthnContextClassRef>

 </samlp:RequestedAuthnContext>

 <!-- Partijen waar toegang voor gevraagd wordt -->

 <saml:Conditions>

  <saml:AudienceRestriction>

   <saml:Audience>urn:IIroot:2.16.840.1.113883.2.4.6.6:IIext:1</saml:Audience>

<!-- Root en extensie van de ZIM -->

   <saml:Audience>urn:IIroot:?:IIext:?</saml:Audience>

  </saml:AudienceRestriction>

 </saml:Conditions>

</samlp:AuthnRequest>



Het SAML authenticatie verzoek <AuthnRequest> bestaat uit verschillende attributen en elementen. De elementen worden in hiërarchische (top-down) volgorde beschreven en hebben de volgende betekenis:


Naam (@=attribuut)

Omschrijving

Vereist

@ID

Unieke identificatie van het (authenticatie) verzoek. De waarden van de ID-attribuut in een verzoek en de InResponseTo attribuut in het bijbehorende antwoord moeten overeenkomen.

Ja

@Version

De SAML versie van dit (authenticatie) verzoek. De aanduiding voor de versie van SAML gedefinieerd in deze specificatie wordt "2.0".

Ja

@IssueInstant

Tijdsmoment van uitgifte van het (authenticatie) verzoek. De tijdswaarde is gecodeerd in UTC.

Ja

@Destination

Een URI referentie waarnaar het (authenticatie) verzoek wordt verzonden, dit om malafide activiteiten te voorkomen. De ontvangende partij dient de URI verwijzing te controleren met de locatie waar het bericht is ontvangen. Indien dit niet overeenkomt, moet het bericht genegeerd en verwijderd worden.

Nee

@AssertionConsumerServiceURL

Hiermee wordt aangegeven waar het antwoord van het (authenticatie) verzoek heen gestuurd moet worden, De responder moet ervoor zorgen dat de opgegeven waarde in feite verbonden is aan het verzoek.

Nee

@ProviderName

Leesbare naam van de aanvrager van het (authenticatie) verzoek. Wordt gebruikt door de gebruiker van de Identity Provider.

Ja

saml:Issuer

Geeft de entiteit die het (authenticatie) verzoek heeft gegenereerd.

Ja

saml:Conditions

Via de condities kan de aanvrager van het (authenticatie) verzoek de geldigheid en/of gebruik van de verkregen assertion beperken. De responder kan wijzigingen of aanvullingen in de assertion invoeren als zij dit nodig acht aan de hand van de gegeven condities. Paragraaf 2.3.3 Geldigheid

Geldigheid beschrijft kaders van de SAML condities waaraan het (authenticatie) verzoek moet voldoen

Ja

saml:Subject

De entiteit die het (authenticatie) verzoek genereert kan een <Subject> element toevoegen waarin het onderwerp van de verklaring(en) staat voor de ontvangende assertion. Dit element mag geen <SubjectConfirmation> elementen in het verzoek bevatten.

Nee

samlp:RequestedAuthnContext

Specificeert in welke context de authenticatie statement wordt afgegeven, in antwoord op het (authenticatie) verzoek.

Indien dit element aanwezig is, moet het antwoord een <AuthnContext> bevatten.

Nee


<AuthnContext> (authenticatie-context) wordt gedefinieerd als de informatie, naast de authenticatie assertion zelf, dat een vertrouwde partij kan eisen voordat zij een besluit neemt over het afgeven van een assertion. De authenticatie-context kan informatie bevatten over de actuele authenticatie methode (de "sterkte" van het gebruikte authenticatiemiddel) die gebruikt wordt.


Binnen de SAML specificatie zijn verschillende mogelijke authenticatie-contexten gespecificeerd die gebruikt kunnen worden als referentiekader voor de communicatie tussen de aanvrager en uitvoerder van het authenticatieverzoek. Dit moet met de software leverancier verder afgestemd worden, zie ook AuthnContextClassRef. Het <RequestedAuthnContext> element is van het complexe type RequestedAuthnContextType en bevat één of meerdere elementen en attributen. Zie ook [SAML Assertion Protocol] en [SAML Authn Context] voor de verschillende voorgedefinieerde context klassen voor authenticatie.


Naam (@=attribuut)

Omschrijving

Vereist

@Comparison

Specificeert welke vergelijkingsmethode gebruikt wordt om de gevraagde context klasse te evalueren. Standaard is de waarde "exact". Dit houdt in dat de inhoud van de authenticatie assertion exact moet matchen met tenminste een van de opgegeven authenticatie-context klassen. Andere mogelijke waarden zijn: "minimum", "maximum", of "better".

Nee

saml:AuthnContextClassRef

Is een URI naar een voorgedefinieerde context klasse voor authenticatie, zie [SAML Authn Context]. De URI waarde die nu bij DigiD als voorbeeld wordt gebruikt is "urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport". De PasswordProtectedTransport klasse is van toepassing wanneer een opdrachtgever een authenticatie autoriteit een gebruiker laat verifiëren met een wachtwoord dialoog via een beveiligde sessie.

Nee

 

Noot: DigiD kan verschillende authenticatiemiddelen hanteren om de identiteit van een gebruiker vast te stellen. Bij wijziging van de SAML contexten (saml:AuthnContextClassRef) kan de authenticatiesterkte wijzigen.


Noot: De huidige PasswordProtectedTransport heeft een te lage authenticatiesterkte en (AORTA) niveau voor patiënten die gebruik willen maken van het patiëntenportaal. In het [PvE VZVZ Portaal] staan de vereiste authenticatieniveau’s benoemd.



Mogelijke authenticatieniveau’s zijn hieronder opgenomen:

Authenticatieniveau (AORTA)

AuthnContextClassRef

(SAML)

Comparison (SAML)

Authenticatiesterkte (DigiD)

Midden, waarbij een burger aan de hand van een wachtwoord en een tijdelijk eenmalige code, die hij per SMS ontvangt (per authenticatiepoging), authenticeert;

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

exact

20

AORTA vertrouwensniveau midden [1], gelijk aan het vorige niveau waarbij de burger eenmalig op zijn fysieke verschijning tegen zijn WID is geverifieerd (een zogeheten face2face controle)

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

better

22

Substantieel; gebruikers kunnen met de DigiD app een eenmalige controle uitvoeren op een paspoort, rijbewijs of identiteitskaart. Hierna is zijn of haar DigiD app geschikt om in te loggen op het niveau substantieel.

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

exact

25

 

Authenticatieniveau basis en hoog worden momenteel nog niet ondersteund.


Stap 3 en 4: Identificeren van een Gebruiker door de Identity Provider

De authenticatie-autoriteit bij de Identity Provider moet de identiteit van de gebruiker vast stellen. Het authenticatieverzoek hiertoe wordt gedaan door het patiëntenportaal die het element <RequestedAuthnContext> in het verzoek toevoegt. De authenticatie-autoriteit start een dialoog op met de gebruiker om deze te identificeren aan de hand van het <RequestedAuthnContext>, zie [SAML Authn Context] .


Eis: Voor bepaalde patiëntenportaalfunctionaliteit moet het authenticatieniveau of betrouwbaarheidsniveau door de authenticatie-autoriteit worden afgegeven zoals is opgenomen in de [PvE VZVZ portaal].


Stap 5: Het antwoord van de Identity Provider

Ongeacht of de identificatie van een patiënt door de Identity Provider wel of niet lukt, wordt er een antwoord naar het patiëntenportaal gestuurd in de vorm van een artefact. Het patiëntenportaal maakt gebruik van het artefact resolution profiel. Het patiëntenportaal maakt hierbij gebruik van een callback aanroep naar de Identity Provider, om het <Response> bericht met behulp van een SOAP binding over authenticatie op te halen. De locatie van de "Assertion Consumer Service" kan met behulp van metadata van het patiëntenportaal worden bepaald. De Identity Provider moet middelen hebben om vast te stellen dat deze locatie wordt gecontroleerd door het patiëntenportaal.


Het patiëntenportaal geeft aan welke SAML binding en specifieke "Assertion Consumer Service” gebruikt wordt voor het <AuthnRequest> bericht. De Identity Provider moet deze instellingen volgen.


Wanneer de authenticatie via de "SSO Service" van de Identity Provider succesvol verlopen is, wordt de gebruiker terug naar het patiëntenportaal gedirigeerd.




Redirect to https://aselectserver/server/saml20_assertion?

SAMLart=AAQAABhQELuXX%3D



Bovenstand voorbeeld toont en SAML artefact referentie afgegeven door de "SSO Service" voor de "Assertion Consumer Service".


Stap 6: Het opvragen van een Artefact

Het patiëntenportaal maakt gebruik van het artefact resolution profiel, zie [SAML Profiles], om via een callback de <AuthnRequest> bericht te achterhalen waarin het uiteindelijke SAML authenticatie antwoord staat. Het artefact resolution profiel maakt gebruik van SOAP binding, wat ook in het SAML metadata bestand van de Identity Provider voor het patiëntenportaal is vastgelegd.



<md:IDPSSODescriptor ... >

  <md:ArtifactResolutionService

   xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"

   Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"    Location="https://federatie.overheid.nl/aselectserver/server/saml20_artifact"

   index="0"

   isDefault="true" />

  ...

</md:IDPSSODescriptor>



Het <ArtifactResolutionService> element is van het complexe type IndexedEndpointType en onderdeel van het <IDPSSODescriptor> element uit het SAML metadata bestand dat weer een specifiek profiel (dienstverlening) reflecteert ter ondersteuning van het SSO profiel van de Identity Provider.


Het <ArtifactResolutionService> element bestaat uit de volgende attributen en elementen:


Naam (@=attribuut)

Omschrijving

Vereist

@Binding

Specificeert de binding dat door de "Artefact Resolution Service" wordt ondersteund. De binding wordt via een URI geïdentificeerd. Bijvoorbeeld: "urn:oasis:names:tc:SAML:2.0:bindings:SOAP".

Ja

@Location

De locatie van de "Artefact Resolution Service". Ook een URI attribuut.

Ja

@index

Een unieke integer waarde die aan de "Artefact Resolution Service" wordt toegekend, waarnaar in het protocol bericht wordt verwezen.

Ja

@isDefault

Wordt gebruikt om een standaard (Artefact Resolution) Service aan te wijzen uit een geïndexeerde set van diensten.

Nee


Het patiëntenportaal stuur een <ArtifactResolve> bericht met het gegeven <Artifact> referentie naar een "Artefact Resolution Service". De locatie van deze service kan weer met behulp van het SAML metadata bestand worden bepaald. Het opvragen van het artefact gebeurd via een beveiligde sessie met behulp van SOAP over HTTP.




<?xml version="1.0" encoding="UTF-8"?>

<soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"

         xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"

         xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">

   <soap11:Body>

     <samlp:ArtifactResolve

      ID="samlart_2.16.528.1.1007.3.3.1234567.1_0123456789"

      IssueInstant="2009-06-24T11:47:01Z"

      Version="2.0">

      <saml:Issuer

        Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://testportal.aorta-zorg.nl:443/topa-prototype/saml/SSO</saml:Issuer>

      <samlp:Artifact>AAQAABhQELuXX=</samlp:Artifact>

     </samlp:ArtifactResolve>

   </soap11:Body>

</soap11:Envelope>


 




Het <ArtifactResolve> element is van het complexe type ArtifactResolveType dat is afgeleid van RequestAbstractType en bestaat uit de volgende attributen en elementen:


Naam (@=attribuut)

Omschrijving

Vereist

@ID

Unieke identificatie van het Artefact verzoek. De waarde van het ID-attribuut in een verzoek en het InResponseTo attribuut in het bijbehorende antwoord moeten overeenkomen.

Ja

@IssueInstant

Tijdsmoment van uitgifte van het Artefact verzoek. De tijdswaarde is gecodeerd in UTC.

Ja

@Version

De versie van dit SAML Artefact verzoek. De aanduiding voor de versie van SAML gedefinieerd in deze specificatie wordt "2.0".

Ja

saml:Issuer

Geeft de entiteit die het Artefact verzoek doet.

Ja

samlp:Artifact

Artefact (referentie) waarde die de aanvrager heeft ontvangen en deze wenst te vertalen in het protocol boodschap die zij vertegenwoordigd. In dit geval is dat het antwoord op een authenticatie verzoek.

Ja

 

Eis: Er wordt bij een unieke artefact verzoek, maximaal één en eenmalig een artefact response bericht gegeven door de "Artefact Resolution Service", in antwoord op het verzoek.


Stap 7: De ArtifactResponse met de SAML assertion

Het uiteindelijke antwoord betreffende de authenticatie van een gebruiker staat in het <ArtifactResponse>. De "Artefact Resolution Service" geeft altijd een <Status> terug over de <ArtifactResponse>. De <ArtifactResponse> bevat de <Response> van de Identity Provider, of de identificatie en authenticatie van een gebruiker wel of niet gelukt is. Dit wordt ook weer met een <Status> aangegeven, maar dan voor de <Response>. Verder bevat de <Response> het uiteindelijke SAML assertion element <Assertion>.



<?xml version="1.0" encoding="UTF-8"?>

<soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"

         xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"

         xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">

  <soap11:Body>

   <samlp:ArtifactResponse

    Destination="Destination unknown"

    ID="_b2d765569da660eff830c352d5bb4da2"

    InResponseTo="samlart_2.16.528.1.1007.3.3.1234567.1_0123456789"

    IssueInstant="2009-06-24T11:47:05Z" Version="2.0">

     <saml:Issuer

      Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://testportal.aorta-zorg.nl:443/topa-prototype/saml/SSO</saml:Issuer>

     <samlp:Status>

      <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>

     </samlp:Status>

     <samlp:Response ID="EE7E3DF7EBC86438"

      InResponseTo="authntoken_2.16.528.1.1007.3.3.1234567.1_0123456789"

      IssueInstant="2009-06-24T11:46:59Z" Version="2.0">

      <saml:Issuer

       Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://testportal.aorta-zorg.nl:443/topa-prototype/saml/SSO</saml:Issuer>

      <samlp:Status>

        <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>

      </samlp:Status>

      <saml:Assertion

       ID="__2c81606885bf79c716eb2c082a2249a5"

       IssueInstant="2009-06-24T11:46:59Z"

       Version="2.0"

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

        ...

      </saml:Assertion>

     </samlp:Response>

   </samlp:ArtifactResponse>

  </soap11:Body>

</soap11:Envelope>



Het <ArtifactResponse> element is van het complexe type ArtifactResonseType dat een uitbreiding is van StatusResponseType en bestaat uit de volgende attributen en elementen:


Naam (@=attribuut)

Omschrijving

Vereist

@ID

Unieke identificatie van het antwoord van de "Artefact Resolution Service".

Ja

@Version

De aanduiding voor de SAML versie gedefinieerd in deze specificatie wordt "2.0".

Ja

@IssueInstant

Tijdsmoment van uitgifte van het antwoord. De tijdswaarde is gecodeerd in UTC.

Ja

@InResponseTo

Moet de waarde bevatten die overeen komt met het ArtifactResolve@ID bericht.

Nee

saml:Issuer

Geeft de entiteit die het artefact verzoek heeft ingediend.

Nee

samlp:Status

Een code die de status van het desbetreffende verzoek weergeeft. Dit element heeft weer verplicht het samlp:Statuscode element in zich. Als het opvragen van het artefact geslaagd is, wordt de waarde "urn:oasis:names:tc:SAML:2.0:status:Success" teruggeven. Als het opvragen van het artefact niet geslaagd is wordt een foutcode gegenereerd, zie verder SSO meldingen voor de verschillende foutcodes.

Ja

samlp:Response

Het bericht element dat bestaat uit 0 of meerdere assertions die aan een (authenticatie) verzoek voldoen.

Nee

 

Het <Response> element is van het complexe type ResponseType en bevat de volgende elementen en attributen:


Naam (@=attribuut)

Omschrijving

Vereist

@ID

Unieke identificatie van het antwoord op het authenticatie verzoek.

Ja

@Version

De aanduiding voor de SAML versie gedefinieerd in deze specificatie wordt "2.0".

Ja

@IssueInstant

Tijdsmoment van uitgifte van het antwoord. De tijdswaarde is gecodeerd in UTC.

Ja

@InResponseTo

Moet de waarde bevatten die overeen komt met het AuthnRequest@ID bericht.

Ja

saml:Issuer

Geeft de entiteit die het authenticatie verzoek heeft gegenereerd.

Ja

samlp:Status

Een code die de status van het desbetreffende verzoek weergeeft. Dit element heeft weer verplicht het samlp:Statuscode element in zich. Als het authenticatie verzoek geslaagd is, wordt de waarde "urn:oasis:names:tc:SAML:2.0:status:Success" teruggeven. Als het authenticatie verzoek niet geslaagd is wordt een foutcode gegenereerd, zie verder SSO meldingen voor de verschillende foutcodes.

Ja

saml:Assertion

Dit type specificeert de basis informatie die gemeenschappelijk is voor alle afgegeven beweringen (assertion) door een vertrouwde partij of autoriteit.

Nee

 

Eis: Indien de samlp:Status <> "urn:oasis:names:tc:SAML:2.0:status:Success" moet er geen saml:Assertion element teruggegeven worden.


Het <Assertion> element is van het complexe type AssertionType. De opbouw en inhoud van het <Assertion> element wordt in paragraaf 2 Het SAML authenticatietoken besproken.

 

Het <Assertion> element valt in de gedeclareerde namespace van “urn:oasis:names:tc:SAML:2.0:assertion”.

 

Eis: Indien er een Assertion wordt afgegeven moet de Identity Provider deze Assertion signeren in het daarvoor aangewezen Signature veld, zie paragraaf 2.4 Algoritmes.


Stap 8: Toegang verlening

Ter voltooiing van het SSO profiel, verwerkt het patiëntenportaal de <Response> en de daarbij behorende <Assertion>, en verleent of weigert hij de gebruiker of patiënt toegang tot het patiëntenportaal door antwoord te geven op het HTTP Request waarmee bij stap 1 werd begonnen.


De verleende <Assertion> is het locaal geldig toegangsbewijs voor de patiënt om bepaalde handelingen te mogen uitvoeren op het patiëntenportaal, die in verbinding staat met de ZIM, die als (web)service fungeert waartussen beveiligde SOAP berichten worden uitgewisseld met behulp van SAML authenticatietokens.


Eis: De verleende assertion moet door het patiëntenportaal verwijderd worden na afloop van een TLS-sessie met het LSP respectievelijk na afloop van gebruik van de sessie door een patiënt of na het verstrijken van 15 minuten gerekend vanaf het afgiftemoment door DigiD.


Bijlage C SSO verificatie

Het goedbeheerde patiëntenportaal (GBP) moet voor elk bericht dat naar de ZIM doorgestuurd wordt een bijbehorende SAML authenticatietoken hebben. Deze tokens worden opgevraagd bij de Identity Provider (IdP) met behulp van een artefact referentie, zie stap 6 van Het SSO profiel. Het uiteindelijke antwoord van de IdP, een artefact response, bevat een SAML assertion over een patiënt, zie stap 7 van Het SSO profiel.


Voordat het GBP de assertion als SAML authenticatietoken gebruikt, moeten onderstaande controles uitgevoerd worden. Als het uiteindelijke antwoord van de IdP hieraan niet voldoet, mag de assertion niet gebruikt worden als SAML authenticatietoken tussen het GBP en het LSP.

 

De volgende controles moeten door het patiëntenportaal uitgevoerd worden:

  • Controleer of het attribuut "InResponseTo" van het <ArtifactReponse> gelijk is aan de ID van het oorspronkelijke <ArtifactResolve> bericht;
  • Controleer of het attribuut "InResponseTo" van het <Response> gelijk is aan de ID van het oorspronkelijke <AuthnRequest> bericht;
  • Verifieer het attribuut "Issuer" van het <ArtifactResponse> element of die overeenkomt met de Assertion Consumer Service URL;
  • Verifieer het attribuut "Status" van het <ArtifactResponse> element of die overeenkomt met de waarde "urn:oasis:names:tc:SAML:2.0:status:Success";
  • Verifieer het attribuut "Issuer" van het <Response> element of die overeenkomt met de Assertion Consumer Service URL;
  • Verifieer het attribuut "Status" van het <Response> element of die overeenkomt met de waarde "urn:oasis:names:tc:SAML:2.0:status:Success".

 

Bijlage D SSO meldingen

De volgende statuscodes (URI referenties) worden door SAML onderkend en geretourneerd binnen het SSO profiel waar van toepassing (De volgende tabel is deels overgenomen uit [SAML Assertion Protocol]).


De SAML meldingen worden alleen binnen het SSO profiel gebruikt. Dat wil zeggen dat de meldingen alleen voorkomen tussen het patiëntenportaal (GBP) en de Identity Provider (IdP).


Een statuscode is een Uniforme Resource Name (URN) en is als volgt opgebouwd:

"urn:"<Namespace Identifier>":"<Name Specific String>

Voorbeeld: “urn:oasis:names:tc:SAML:2.0:status:Success”

In de statuscode tabel wordt alleen de omschrijving en de specifieke string getoond.

Omschrijving

Namespace Specific String

The request could not be performed due to an error on the part of the requester.

Requester

The request could not be performed due to an error on the part of the SAML responder or SAML

Responder

The SAML responder could not process the request because the version of the request message was incorrect.

VersionMismatch

The responding provider was unable to successfully authenticate the principal.

AuthnFailed

The specified authentication context requirements cannot be met by the responder.

NoAuthnContext

The SAML responder or SAML authority is able to process the request but has chosen not to respond.

RequestDenied

The SAML responder or SAML authority does not support the request.

RequestUnsupported

The SAML responder cannot process any requests with the protocol version specified in the request.

RequestVersionDeprecated

The SAML responder cannot process the request because the protocol version specified in the request message is a major upgrade from the highest protocol version supported by the responder.

RequestVersionTooHigh

The SAML responder cannot process the request because the protocol version specified in the request message is too low.

RequestVersionTooLow

The resource value provided in the request message is invalid or unrecognized.

ResourceNotRecognized

The response message would contain more elements than the SAML responder is able to return.

TooManyResponses

The responding provider does not recognize the principal specified or implied by the request.

UnknownPrincipal

The SAML responder cannot properly fulfill the request using the protocol binding specified in the

request.

UnsupportedBinding

 


[1] De AuthnContextClassRef is niet te onderscheiden van Authenticatieniveau midden. Hier dient rekening mee te worden gehouden bij de verwerking van het token. De service die dit authenticatieniveau vereist dient zodanig geconfigureerd te worden dat het de aanvullende maatregelen (F2F-token) ook controleert.

Related content

(v2) SSO (profiel, verificatie, meldingen)
(v2) SSO (profiel, verificatie, meldingen)
More like this
(v3) SSO (profiel, verificatie, meldingen)
(v3) SSO (profiel, verificatie, meldingen)
More like this
(v4) SSO (profiel, verificatie, meldingen)
(v4) SSO (profiel, verificatie, meldingen)
More like this
(current) SSO (profiel, verificatie, meldingen)
(current) SSO (profiel, verificatie, meldingen)
More like this
SSO (profiel, verificatie, meldingen)
SSO (profiel, verificatie, meldingen)
More like this
(v1) Token afhandeling berichtauthenticatie DigiD
(v1) Token afhandeling berichtauthenticatie DigiD
More like this