Dit document geeft een gedetailleerde beschrijving van iDIN van de Nederlandse banken. Het document is bedoeld voor degenen die gedetailleerde informatie behoeven ten aanzien van deze oplossing. Dit document is bedoeld voor Acceptanten die aan willen sluiten op het iDIN platform van hun bank. Het behandelt het berichtenverkeer tussen Acceptanten en hun bank. Voor Acceptanten is het berichtenverkeer tussen Acquirer en Issuer niet van belang. Dit deel van de iDIN Standaard wordt daarom in dit document niet behandeld, tenzij de berichten van belang zijn voor de implementatie van de Acceptant worden deze beschreven. Dit document is niet bank-specifiek; dit wil zeggen dat alleen generieke iDIN zaken in dit document worden behandeld. Informatie over non-standaard aansluitvormen bij specifieke Acquirers en de hulp-(middelen) die een Acquirer verstrekt om aan te sluiten op iDIN zijn geen onderdeel van dit document. Voor informatie over deze onderwerpen verwijzen wij u naar de door uw Acquirer verstrekte (aanvullende) documentatie.
Om updates van dit document te ontvangen kunt u zich wijzigingen op deze pagina op Confluence abonneren.
Om Acceptanten en Digital Identity Service Providers (DISPs) verder te ondersteunen, zijn er Software Libraries ontwikkeld in .NET, PHP en Java. De software libraries staan gepubliceerd op github.com (via https://www.idin.nl/softwarelibraries/) of neem contact op met uw Acquirer voor meer informatie betreffende deze Software Libraries. Om updates van de software libraries te ontvangen kunt u zich abonneren op github.com.
1.2 Document opzet
Dit document heeft de volgende structuur:
Hoofdstuk 1: Inleiding
Hoofdstuk 2: Introductie van iDIN en de betrokken partijen;
Hoofdstuk 3: Introductie in de verschillende berichten binnen iDIN en de algemene structuur van de uitgewisselde berichten;
Hoofdstuk 4: Algemene berichtgevingsstandaard;
Hoofdstuk 5: Data catalogus; Alle parameters die relevant zijn voor de Acceptant in de iDIN omgeving;
Hoofdstuk 6: Directory protocol: Ontvangen van de lijst van Issuers die iDIN aanbieden;
Hoofdstuk 7: Transaction protocol: Aanvragen van Gebruikersattributen, identificatie of leeftijdsverificatie;
Hoofdstuk 8: Status protocol: Ontvangen van de Gebruikersattributen;
Hoofdstuk 9: Error handling;
Hoofdstuk 10: Beveiliging en certificaten;
Hoofdstuk 11: Presentatie van iDIN op de website van de Acceptant;
Berichten en redirects worden geschreven als dit, en data elementen worden geschreven als dit.
1.5 Definities van online bankieren
In dit document worden de termen 'internet bankieren' en 'online bankieren' gebruikt. Voor banken van de Gebruiker die iDIN mobiel implementeren, zouden deze termen geïnterpreteerd moeten worden als 'internet bankieren' en/of 'mobiel bankieren'. Waar internet of online gerelateerde terminologie gebruikt wordt, moet dit altijd gelezen worden als ook betrekking hebbende op het mobiele kanaal. In geval het mobiele gebruik van iDIN tot aanvullende vereisten (requirements) leidt, zullen deze specifiek benoemd worden in onderhavige Implementatie Gids.
1.6 Revisies
Versie
Beschrijving
Release datum
1.00
Initiële versie
1 September 2015
1.04
Toevoeging foutafhandeling als de Issuer niet kan voldoen aan de minimale set van Consumentenattributen
Toevoeging apart kunnen aanvragen/terugsturen van het geslacht van de Consument
Toelichting op het formaat van DateTimestamp
Note
title
Let op
Er zijn geen andere versies gepubliceerd tussen v1.00 en v1.04. Dit is gedaan om de versie-nummering gelijk te trekken met andere documentatie.
23 Oktober 2015
1.041
Toevoeging aanbeveling teksten Acceptantschermen
Aanscherping standaard Consumentberichten
Enkele kleine verduidelijkingen toegevoegd
22 januari 2016
1.05
Herindeling van de Requested- and DeliveredServiceID bits
Toevoeging telefoon- en email aan de set van opvraagbare attributen
Verbetering en update van de Issuer front-end teksten
Verwijdering Appendix B die alle mogelijke waardes bevatte van het RequestedServiceID
Wijziging, van de door de Acceptant gebruikte TLS versie, naar minimaal 1.2
Kleine correcties en verduidelijkingen
30 september 2016
1.053
Voorbeelden en verduidelijkingen zijn toegevoegd aan de gebruikersattributen
Toevoeging van Appendix D, met hierin de beschrijving van de mogelijke diversiteit in Gebruikersattributen
27 januari 2017
1.06
Toevoeging van §2.5.1 met hierin de beschrijving hoe DISP hun Acceptanten dienen aan te sluiten
Toevoeging van §5.5.1 met hierin de beschrijving hoe Gebruikers hun telefoonnummer en emailadres kunnen de-selecteren en wijzigen
Maart 2017
1.07
Het gebruik van LoA2 wordt uitgefaseerd. Wijzigingen zijn naangebracht in §3.2.2.
Consumer initialen mogen ligaturen en diakrieten bevatten (e.g. á, ç, Æ). Wijzigingen zijn aangebracht in §5.4 voetnoot 6. Correcties:
Out of scope is verwijderd uit §2.2.
Use case is changewijzigd In product type.
De definitie van level of assurance "substantial" is toegevoegd aan §2.2
Maart 2018
1.08
DISP/ondertekendienst (Signing Service Provider) rol is toegevoegd
2./wiki/spaces/MRR/pages/1398964229e mogelijkheid toegevoegd om een mobiele transactie af te wikkelen in Chrome Custom Tabs of Safari View Controler
september 2020
1.1
Beschrijving toegevoegd over weergavevereisten voor Issuerlijst voor iDIN Ondertekenen
November 2020
Tabel 2: Revisie tabel
1.7 Wijzigingen in vergelijking met eerdere versies
Veranderingen ten opzichte van versie 1.00
Toevoeging foutafhandeling als de Issuer niet kan voldoen aan de minimale set van Consumentenattributen: Twee elementen zijn toegevoegd in het AcquirerStatusRes (DeliveredServiceID en een tweede SAML status code). Deze geven informatie aan de Acceptant als de Issuer niet alle attributen kan leveren conform de gedefinieerde minimale set (zie Sectie 5.5). De foutafhandeling staat beschreven in Sectie 12.4;
Toevoeging apart kunnen aanvragen/terugsturen van het geslacht van de Consument: De Acceptant kan nu het geslacht van de Consument apart aanvragen met het RequestedServiceID, waar dit attribuut voorheen onderdeel was van de attribuutgroep naam.;
Toelichting op het formaat van DateTimestamp (in alle varianten, zoals de createDateTimestamp): Acceptanten mogen nul tot drie decimalen achter de seconde gebruiken in de DateTimestamp van de berichten die ze naar de Routing Service sturen. De berichten die de Acceptant vanuit de Routing Service ontvangt bevatten wel altijd drie decimalen achter de seconde. Zie Tabel 11.
Veranderingen ten opzichte van versie 1.04
Toevoeging aanbeveling teksten Acceptantschermen: Dit is beschreven in hoofdstuk 11.8;
Aanscherping standaard Consumentberichten: Dit wordt beschreven in hoofdstuk 12.5.
Enkele kleine verduidelijkingen toegevoegd:
In het formaat van DateTimestamp in Tabel 10 is toelichting toegevoegd dat YYYY staat voor het kalenderjaar, en dat 24-uurs notatie gebruikt moet worden;
In de beschrijving van het formaat van TransactionID in Tabel 10 is toegevoegd dat de eerste vier cijfers zijn opgemaakt uit het AcquirerID;
In de beschrijving van het tonen van de laatste inlog door de Acceptant in Sectie 11.8.1 is toegevoegd dat de datum en tijd getoond moeten worden (i.p.v. het tijdstip). Daarnaast is de reden voor deze eis toegevoegd, namelijk dat de Consument dan zelf kan controleren of dit tijdstip overeenkomst met zijn/haar laatste bezoek)
In Appendix B is de kolom 'product type' toegevoegd die aangeeft welk ServiceID hoort bij welke product type;
Toevoeging aanbeveling op het gebruik van TLS in hoofdstuk 10.1: Acceptanten worden geadviseerd om TLS versie 1.1 of hoger te gebruiken. Het gebruik van TLS versie 1.0 wordt afgeraden, omdat deze versie is verouderd.
Veranderingen ten opzichte van versie 1.041
De bit-structuur van het RequestedServiceID en DeliveredServiceID zijn heringedeeld (zie sectie 5.3.1) om het telefoon- en emailattribuut toe te voegen. De herindeling heeft geen impact op de integere waardes van het ServicesID en is daardoor backwards compatible;
Het telefoon- en emailattribuut zijn toegevoegd in Tabel 13;
Update van de Issuer front-end teksten die aan de Gebruiker worden getoond afhankelijk van de attributen die zijn aangevraagd door de Acceptant (zie Sectie 11.9.1)
Appendix B is verwijderd. Deze Appendix bevatte alle mogelijke integere waardes van het RequestedServiceID. Door de toevoeging van het telefoon- en emailattribuut zou deze tabel te groot zijn geworden. De Excel '160529A_ServiceID_Calculator' die samen met deze implementatie Gids wordt verstrekt biedt de mogelijkheid om gemakkelijk het ServiceID te berekenen;
In de toekomst zullen verouderde TLS versies niet langer worden ondersteund door de Routing Service. Daarom moet de Acceptant minimaal TLS versie 1.2 gebruiken (zie Sectie 10.1);
Kleine correcties en verduidelijkingen:
In Sectie 10.2.1 is toegevoegd dat het X509SubjectName element mag worden inbegrepen door de Validation Service in het Signature element binnen de Assertion;
In Sectie 10.3 is toegevoegd dat xsi type definities mogen worden gebruikt binnen het AttributeValue element door de Validation Service;
Toevoeging van het Issuer.x509 data element in Tabel 11. De beschrijving van dit element ontbrak;
Verwijdering van errorcode SE2000 en wijziging van errorcode SE2100 naar SE2700 (Invalid electronic signature). SE2000 en SE2100 worden niet gebruikt in iDIN;
Update van de versleuteling voorbeelden en versleutelde voorbeeld berichten met de volledige namespace declaraties. De namespace declaraties stonden niet in de voorbeelden;
Enkele namespace prefixen en de afsluitende tag van het eerste StatusCode element zijn toegevoegd in het voorbeeld in Sectie 12.2. Enkele namespace prefixen en de afsluitende tag ontbraken;
Het tonen van de laatste login aan de Gebruiker in Sectie 11.8.1 is veranderd van verplicht naar sterk aangeraden;
Update van de Merchant.LegalIDs in de voorbeeld berichten met geldige controle getallen.
Veranderingen ten opzichte van versie 1.05
Voorbeelden en verduidelijkingen zijn toegevoegd aan de gebruikersattributen
Annex diversiteit in gebruikersattributen toegevoegd
Veranderingen ten opzichte van versie 1.053
Toevoeging van §2.5.1 met hierin de beschrijving hoe DISP hun Acceptanten dienen aan te sluiten
Toevoeging van §5.5.1 met hierin de beschrijving hoe Gebruikers hun telefoonnummer en emailadres kunnen de-selecteren en wijzigen
Veranderingen ten opzichte van versie 1.06
Het gebruik van LoA2 voor iDIN wordt per 1 mei 2018 gestopt Alle referenties aan LoA2 zijn verwijderd uit het document.
2./wiki/spaces/MRR/pages/1398964229e mogelijkheid toegevoegd om een mobiele transactie af te wikkelen in Chrome Custom Tabs of Safari View Controler
Veranderingen ten opzichte van versie 1.09
Beschrijving toegevoegd over weergavevereisten voor Issuerlijst voor iDIN Ondertekenen
...
2.5 Acceptant registratie
Als de Acceptant zich registreert voor iDIN verkrijgt deze van zijn Acquirer een Merchant.MerchantID en een Merchant.LegalID dat geassocieerd is met een Merchant.Name. Indien het nodig is krijgt de Acceptant ook een Merchant.SubID voor registratie van één of meer Merchant.TradeName. Dit komt voor als de Acceptant iDIN services gebruikt onder een andere handelsnaam. Alleen de Merchant.MerchantID en Merchant.SubID zijn voor de Acceptant relevant bij het uitvoeren van het iDIN protocol, omdat alleen deze twee waardes nodig voor een succesvolle iDIN-transactie. De andere identificatie elementen worden toegevoegd door de Acquirer en worden alleen in hetAcquirer – Issuerdomein gebruikt.
Expand
title
2.5.1 Registratie van Acceptanten door Digital Identity Service Providers (DISP) & Signing Service Providers (SSP)
Een DISP/SSP moet zijn Acceptanten op een bepaalde manier registreren. Onderstaand beschreven methode is vereist vanwege de volgende vier redenen:
Ter voorkoming van het verschijnen van de naam van de DISP in de Issuerschermen;
Zodat de SSP zijn naam al dan niet in de Issuerschermen kan tonen aan de Gebruiker;
Om ervoor te zorgen dat het BIN verschillend is voor elke Acceptant. Dit is vanwege veiligheidsredenen en verbeterde privacy voor de Gebruiker.
Om ervoor te zorgen dat de SSP de enige entiteit is die het ServiceID gereserveerd voor signeren kan aanvragen.
De DISP/SSP moet zichzelf en zijn Acceptanten op de volgende manier registreren:
Het MerchantID is geregistreerd op de naam van de SSP/DISP;
Normaal gesproken zijn de MerchantName en het LegalID geregistreerd per MerchantID. Echter in geval van een DISP/SSP, wiens naam niet getoond wordt tijdens de transactie in de Issuerschermen, zijn deze geregistreerd per SubID;
De DISP/SSP moet elke Acceptant een nieuw SubID toekennen. Per SubID moet de MerchantName, LegalID en optioneel de TradeName van de Acceptant worden opgevoerd;
De MerchantName wordt geregistreerd op het MerchantiD van de SSP die wel zichtbaar is voor de Gebruiker tijdens de transactie in de Issuerschermen. De TradeName en het LegalID worden gebruikt door de Acceptant.
Als de DISP een contracterende DISP is (i.e. de DISP voorziet niet in de technische aansluiting), dan tekent de Acceptant zijn eigen iDx berichten. Een contracterende DISP moet daarom ook het certificaat van de Acceptant per SubID opvoeren.
Een registratievoorbeeld is hieronder gegeven. Voor SubID 1 tot en met 4 is het MerchantID geregistreerd op de DISP, de andere parameters (LegalID, MerchantName en eventueel de TradeName) worden geregistreerd bij het SubID. Voor SubID 5 en 6 is het MerchantID geregistreerd op de SSP die niet zichtbaar is in de Issuerschermen tijdens de transactie, de andere parameters (LegalID, MerchantName en eventueel de TradeName) worden geregistreerd bij het SubID. Voor SubID 7 en 8 is het MerchantID en de MerchantName geregistreerd op de SSP die wel zichtbaar is in de Issuerschermen tijdens de transactie, de andere parameters (LegalID en eventueel de TradeName) worden geregistreerd bij het SubID.
3.2.2.2. Specifieke eiseniDIN Mobiel: Redirect naar de Issuer (geen in-app browser)
Het transactie proces op een mobiel apparaat is nagenoeg identiek aan het reguliere Transaction Protocol. Het enige verschil is dat er een redirect plaatsvindt naar of de mobiele applicatie van de Issuer of een 'landing page' (gebruik makend van issuerAuthenticationURL) waar de Gebruiker, gebruik makend van zijn mobiele apparaat, kan kiezen om naar de mobiele webpagina of mobiele app van zijn/haar Issuer te worden gestuurd. De issuerAuthenticationURL moet daarom altijd voor uitvoering aan het mobiele OS worden aangeboden of geopend worden met behulp van SafariViewController of Chrome Custom Tabs.
...
Naam
Beschrijving
Berichten
Format regel
BankID. MerchantReference
Unieke iDIN-transactie referentie gegenereerd door de Acceptant (e.g. voor administratieve doeleinden) Gegenereerd door de Acceptant
B, F', F'(X)
Max 35 text en moet beginnen met een letter (kleine- of hoofdletter)
BankID. expirationPeriod
Tijd waarbinnen de totale iDIN-transactie moet worden voltooid voordat de status is verlopen. Minimaal 60 seconden en maximaal 300 seconden (dit is de standaard waarde mocht dit veld niet zijn ingevuld). Gegenereerd door de Acceptant
B
ISO 8601 e.g. PT300S or PT5M
BankID.LOA
Voor een request: de minimum vereiste level of assurance Voor een response: de level of assurance waarmee de iDIN-transactie is voltooid. Gegenereerd door de Acceptant
B, F'
Moet zijn: "nl:bvn:bankid:1.0:loa3"
NB: Het gebruik van "nl:bvn:bankid:1.0:loa2" wordt per 01-05-2018 gestopt..
BankID.RequestedServiceID
Het nummer dat gebruikt wordt om een bepaalde set van services van iDIN aan te vragen, zie Sectie 5.3.1 voor meer informatie. Gegenereerd door de Acceptant
B
Integer zoals gespecificeerd in Sectie 5.3.1.
BankID. DeliveredServiceID
Volgt dezelfde structuur als het RequestedServiceID, maar wordt door de Issuer in het teruggestuurde bericht gezet om aan te geven welke aangevraagde attributen daadwerkelijk zijn geleverd volgens de minimale set (zei Sectie 5.5 en Sectie 12.4). Als de Issuer het DeliveredServiceID niet kan achterhalen wordt de waarde '0' gebruikt
F'
Integer zoals gespecificeerd in Sectie 5.3.1.
consumer.bin
BIN is een afkorting voor Bank Identificatie Nummer. Het is een unieke aanduiding voor de Gebruiker en is per Gebruiker-Acceptant-Issuer combinatie uniek
F'
Max 256 1026 karakters. BIN bevat twee delen: 1) Prefix: Twee-letter land code van de bank (ISO 3166-1) gevolgd door vier-letter (alfabetisch) bank aanduiding (ISO 9362 standaard) 2) Bank specifiek nummer (max 1020 karakters)
consumer.transientid
Kan worden aangevraagd in plaats van Consumer.BIN. Geeft aan dat de waarde een transient nummer is en moet als zodanig worden behandelt bij de Acceptant.
F'
Begint met de prefix 'TRANS' en is maximaal 256 karakters
Issuer.x509
Gebruikt in de SAML Response binnen het Signature element (zie Sectie 10.6), zodat de Acceptant de handtekening op de Assertion kan verifiëren.
F'
Base64 encoding
Merchant.LegalID
Het Merchant.LegalID is het creditorID van de Acceptant. Dit nummer is in Nederland gebaseerd op het KvK. Het wordt door de Issuer gebruikt en wordt in de AcquirerStatusRes teruggestuurd om SAML compliance redenen. De Acceptant heeft dit nummer niet nodig voor het voltooien van een iDIN-transactie. Zie voor meer informatie de EPC richtlijnen voor landspecifieke informatie over de uitgifte van het CreditorID; dezelfde legal identifier als het LegalID.(https://www.europeanpaymentscouncil.eu/document-library/guidance-documents/creditor-identifier-overview).
F'
Expand
title
Toevoeging voor Signing Service Providers (SSPs): tabel 3
Name
Description
Messages
Formatting rules
Merchant.DocumentID
Een SHA256 hash van de document(en) waarover de elektronische handtekening wordt geplaatst.
Gegenereerd door de Acceptant
B, F'
Maximaal 256 karakters
Dit data element wordt alleen verwerkt door Issuers die het product type Ondertekenen hebben geïmplementeerd. Zie 5.3.1. voor meer informatie.
...
Expand
title
Toevoeging voor Signing Service Providers (SSPs): tabel 12
Bit Number
Category
Description
Values
13
Categorie 6: Elektronische handtekening
Geeft aan dat het product type voor ondertekenen wordt gebruikt.
Mag alleen gebruikt worden door een Signing Service Provider.
0 Geen product type ondertekenen
1 Product type ondertekenen
Een RequestedServiceID met bit nummer 13 voor het product type Ondertekenen mag alleen worden aangevraagd bij een Issuer die het product type Ondertekenen heeft geïmplementeerd. De SSP mag alleen een ServiceID aanvragen voor het product type Ondertekenen minimaal bevattende het data attribuut voor BIN (bitnummer 2) en naam (bitnummer 4) om compliance met Verordening (EU) No 910/2014 (eIDAS) te verzekeren.
Tabel 12: Overzicht van binaire waardes van Requested- en DeliveredServiceID Het RequestedServiceID zit in het SAML request bericht om aan te geven welke attributen de Acceptant aanvraagt. Bijvoorbeeld, als de Acceptant alleen authenticatie wilt doen en de Gebruiker wil inloggen, dan moeten alle binaire waardes nul blijven behalve bit twee, waardoor de waarde van het RequestedServiceID 16384 wordt.
...
Element/attribuut (in het container element)
Verplicht
Inhoud
AuthnRequest
Ja
Root van het bericht (gezien vanuit het container element)
@ID
Ja
Bevat BankID.MerchantReference
@Version
Ja
Moet zijn: "2.0"
@IssueInstant
Ja
Bevat DateTime (tijd) waarop dit bericht is gegenereerd
@Destination
Zal niet aanwezig zijn
@Consent
Nee
Mag aanwezig zijn. Wordt genegeerd. Welk toestemming ook wordt gevraagd door de Acceptant, de Issuer is altijd verantwoordelijk voor het verkrijgen van toestemming van de Gebruiker
@ForceAuthn
Nee
Mag aanwezig zijn. Moet zijn: "true" (als aanwezig). Expliciete authenticatie wordt geforceerd voor elke iDIN service
@IsPassive
Nee
Mag aanwezig zijn. Moet zijn: "false" (als aanwezig). Omdat expliciete authenticatie wordt geforceerd kan de Issuer niet passief zijn
@ProtocolBinding
Ja
Moet zijn: "nl:bvn:bankid:1.0:protocol:iDx"
@AssertionConsumer- ServiceIndex
Zal niet aanwezig zijn
@AssertionConsumer- ServiceURL
Ja
Bevat Merchant.MerchantReturnURL
@AttributeConsuming- ServiceIndex
Ja
Bevat BankID.RequestedServiceID
@ProviderName
Zal niet aanwezig zijn
+ Issuer
Ja
Bevat Merchant.MerchantID
+ @NameQualifier
Zal niet aanwezig zijn
+ @SPNameQualifier
Zal niet aanwezig zijn
+ @Format
Zal niet aanwezig zijn
+ @SPProviderID
Zal niet aanwezig zijn
+ Signature
Zal niet aanwezig zijn. De digitale handtekening zal worden geplaats op iDx niveau (Signature element in Tabel 17)
Expand
title
Toevoeging voor Signing Service Providers (SSPs): tabel 18
+Extensions
Nee
Moet aanwezig zijn als het serviceID aangeeft dat de transactie wordt gebruikt om een elektronische handtekening te plaatsen. In andere gevallen zal het niet aanwezig zijn.
++ Attribute
Nee
Bevat Attribuut sub-elementen
++ @Name
Nee
Moet zijn: “urn:nl:bvn:bankid:1.0:merchant.documentID”
+++ AttributeValue
Nee
Bevat Merchant.DocumentID
Dit element/attribuut kan alleen worden verwerkt door Issuers die het product type Ondertekenen hebben geïmplementeerd. Zie 5.3.1. voor meer informatie.
+ Subject
Zal niet aanwezig zijn
+ NameIDPolicy
Zal niet aanwezig zijn
+ Conditions
Nee
Mag niet aanwezig zijn
+ RequestedAuthnContext
Ja
Bevat RequestedAuthnContext sub-elementen
++ @Comparison
Ja
Moet zijn: "minimum"
++ AuthnContextClassRef
Ja
Bevat BankID.LOA
++ AuthnContextDecIRef
Zal niet aanwezig zijn
+ Scoping
Nee
Mag niet aanwezig zijn
Tabel 18: Elementen/attributen in de container van het AcquirerTrxReq