Tripleforms 4.3: eHerkenning SAML authenticatie

Gemaakt door Mark Duijkers, Gewijzigd op Vr, 23 Sep, 2022 om 11:42 AM op Mark Duijkers

Introductie


Sinds tripleforms 4.3 is er een generieke SAML authenticatie module. Deze module kan gebruikt worden om bijvoorbeeld met DigiD, eherkenning, eIDAS of een andere IDP (identity provider) te koppelen.

In dit artikel beschrijven we hoe je de eherkenning module in het project moet inrichten en hoe deze in het scenario gebruikt kan worden.


We gebruiken connectis als voorbeeld provider voor de eherkenning koppeling


In dit artikel beschrijven wij hoe je een service toevoegt in de settings, de module toevoegt aan het project en hoe je het gebruikt in het scenario.


Inrichting Settings 


Voor de inrichting zullen we per tab de gegevens doorlopen


Maak in de settings een nieuwe authenticatie koppeling aan


TAB-General

Gebruik voor eherkenning onderstaande gegevens


TAB-Identity provider

In deze tab staan de gegevens van je provider(idp) bijvoorbeeld connectis. Wanneer zij bijvoorbeeld een certificaat update doen aan hun kant dien je de gegevens in deze tab bij te werken

Laadt de idp gegevens in

Connectis, Ga naar de site en kiest de juistehttps://eh01.connectis.nl/metadata/

Iwelcome, Ga naar de site en kiest de juiste: https://ehm01.iwelcome.nl/metadata/

KPN (1.11, pre-prod) https://eid-pp.kpn.com/metadata/brk9511.xml

KPN (1.11 prod) https://eid.kpn.com/metadata/brk0511.xml


Load de betreffende IDP gegevens in via de knop load IDP Metadata




Kopieer de metadata url van de provider in de URL



Krijg je onderstaande melding, dat komt omdat de computer niet voldoende rechten heeft, voeg dan zelf het certificaat toe (zie info na de afbeelding, Haal het certificaat uit de metadata)


.


Haal het certificaat uit de metadata


IDP certificaat installeren

Een IDP gebruikt een certificaat om de communicatie cryptografisch te ondertekenen (Signing). De details van (het publieke gedeelte van) dit certificaat zijn opgenomen in de metadata van de IDP. Deze metadata moet geïnstalleerd worden op de server waar TriplEforms draait.



Het juiste certificaat is te vinden in de metadata van de IDP binnen het element: <md:KeyDescriptor use="signing">, zie volgende afbeelding. Met behulp van deze details moet het certificaat geïnstalleerd worden op de server. Open het bestand met de metadata van de IDP in een editor voor tekst zonder opmaak, zoals bijvoorbeeld Windows Kladblok of Notepad++.



Onder element IDPSSODescriptor vindt u via elementen KeyDescriptor → KeyInfo → X509Data het element X509Certificate. De inhoud van dit element is de Base64-representatie van het door IDP gebruikte certificaat. Kopieer alle tekens tussen begin-element <ds:X509Certificate> en eind-element </ds:X509Certificate>, zonder de elementen zelf te kopiëren, en sla dit op in een nieuw bestand met extensie .crt. Mochten er meerdere certificaten in het metadata bestand staan, is het over het algemeen de eerste. Open vervolgens het nieuw aangemaakte crt-bestand en controleer de eigenschappen. Als het goed is, moet het duidelijk een signing-certificaat zijn, bijvoorbeeld met de naam signing.connectis.nl of saml-sign.pp1.digid.nl.



Vervolgens gebruik je Microsoft Management Console (mmc.exe) met de Certificates snap-in voor het Computer account om het certificaat te importeren. (Let op: Het IDP certificaat moet in de ‘Intermediate Certification Authorities’ store opgeslagen worden) Nadat u het certificaat heeft geïmporteerd, verschijnt het in de lijst.





Binding van IDP naar SP

Standaard staat de binding op artifact. Deze binding betekend dat je machine-2-machine verkeer hebt. Dit kan alleen wanneer de idp op de whitelist hebt staan voor inkomend verkeer.

Wil je het verkeer via de client browser laten lopen kies dan voor httppost of httpredirect




Voorbeeld Identiy provider TAB

Vink aan igone advice. Dit is alleen voor debugging.


LET OP: KPN ondersteund alleen artifact binding, ze ondersteunen de volgende ciphers die niet volgens de IISCrypto tool als best practices worden gezien;

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256


TAB-Service Provider

EntityID: Dit is het ID waarmee je authentiseert bij de IDP voor eherkenning is dat een kvk nummer

voorbeeld waarde: urn:etoegang:DV:00000000807943000000:entities:0001


Service provider ID: is het identificerende kenmerk waarmee identificeert, je kvk nummer 00000000807943000000 


Service Certificate Thumbprint: Hier geef  je  het certificaat op waarmee je het verkeer versleuteld. Bij voorkeur een Private server G1 certificaat.


Url to privary Policy: Url van je algemene website met het privacy statement


Assertion Consumer Service index: Welk index nummer dit moet zijn vind je in de metadata terug. Dit kan 0 of 1. Dan kies je tussen post of artificat.


Entity Concerned Types Allowed: Geef hier op dat je het kvk nummer nodig hebt voor de aansluiting. Je krijgt dan het kvk nummer terug van de gene die inlogt. 

Let op geef het ECTA nr urn:etoegang:1.9:EntityConcernedID:KvKnr op maar vanaf 1.13 krijg je in de mapping legalsubjectID terug (Zie ook eHerkenning informatie uitvraag (ondersteuning attributen)


Service Restrictions Allowed: Geeft hier op welke restrictie op het ingelogde account wil leggen, dat bijvoorbeeld vestigingsnummer verplicht is


NameIdFormat:  Dit is het NameIdFormat van de NameIdPolicy wat mee wordt gestuurd bij het Authnrequest (Voor eHerkenning en eIDAS moet de waarde Persistent gebruikt worden)


Allow Create (NameIdPolicy):  Dit is het Allow Create van de NameIdPolicy wat mee wordt gestuurd bij het Authnrequest (Voor eHerkenning en eIDAS moet deze aangevinkt worden)




TAB- Organization;

Vul hier je organisatie gegevens in



TAB- Contact Person

Vul minimaal 1 contactpersoon in



TAB-Services


Je hebt minimaal 1 service (dienst) nodig voor je aansluiting. De dienst stel je beschikbaar op de formulieren site. Bijvoorbeeld een dienst voor subsidieaanvragen of vergunningen. Je kan eventueel extra attributen uitvragen bij een service.


Gaat het om een nieuwe dienst, voeg deze dan toe. 

Pas je een bestaande dienst aan

controleer je configuratie in het eherkkening stelsel

acc: https://aggregator.etoegang.nl/test/1.13/servicecatalog.xml

prod: https://aggregator.etoegang.nl/1.13/servicecatalog.xml


Level of assurance: Het beveiligingsniveau van de verbinding. Naamgeving van de niveaus verschilt tussen de verschillende protocollen. 

Connectis hanteerd de volgende betrouwbaarheidsniveau's


Zie ook artikel https://afsprakenstelsel.etoegang.nl/display/as/Level+of+assurance 


EH1         urn:etoegang:core:assurance-class:loa1

EH2,        urn:etoegang:core:assurance-class:loa2

EH2+     urn:etoegang:core:assurance-class:loa2plus

EH3,        urn:etoegang:core:assurance-class:loa3

EH4        urn:etoegang:core:assurance-class:loa4




Request attributes


Voeg standaard het attribuut van de service toe, Dit is je Attribute Consuming Service Id plus het Service Index nummer(altijd 4 cijfers, 1 wordt 0001). Vink aan dat hij niet gebruikt mag worden in de servicecatalog en laat value leeg


urn:etoegang:DV:00000000807943000000:services:0001


Voeg eventueel extra attributen toe, voorbeeld vind je hier: https://afsprakenstelsel.etoegang.nl/display/as/Attribuutverstrekking


Name: Volledige attribuut name

Purpose Statement: omschrijving waarvoor het attribuut dient

Value: Eventueel waarde van het attribuut (niet nodig voor (eHerkenning en eIDAS attributen)

Is required: Of het attribuut verplicht is

Excluded from Service Catalog: Of het attribuut naast metadata ook in de service catalog moet verschijnen als attribuut, meeste gevallen wel.





Inrichting SAML module in het project

Deze stap is alleen nodig als dit nog nooit eerder is gebeurd.


De SAML module dient aanwezig te zijn in de website van TriplEforms  , controleer dit in de website van TriplEforms .



Als de module aanwezig is kan deze worden ingericht in het project, open de project file van de TriplEforms editor



Als de module niet aanwezig is in het project voegen we hem nu toe met de knop New.



Neem onderstaande configuratie over;


LabelValueDescription
IDSAML2 Module eherkenning

DescriptionVoorbeeld module saml2 in tripleforms 4.3

URL~/modulesaml2/saml2.ascx

Parameters

ConnectionID

Naam van de connector uit de settings

command

SignIn


AcsIndex
Indexnummer van de service(loa)

Results
isauthenticated

Geeft aan of de aanmelding is geslaagd (“true”) of niet (“false”). Gebruik deze waarde

urn_etoegang_1_9_EntityConcernedID_KvKnr
eherkenning kvknummer


Heb je meer attributen opgegeven bij de settings voeg deze dan ook hier toe, net zoals urn_etoegang_1_9_EntityConcernedID_KvKnr



Inrichting SAML module in het Scenario


Voeg de module toe aan het scenario





Vul de connector naam in dit kan via een parameter worden meegegeven. 


De naam van de connector dient overeen te komen met naam van de connector die ingericht is in de settings van tripleforms. Dit mag via een parameter worden gezet, Zorg ervoor dat het AcsIndex nummer overeenkomt met de service uit de settings. Heb je meerdere services dan is het handig om hier een parameter van te maken.





Mapped de Result parameter



Web.config


Controleer of het volgende in de web.config is opgenomen


<configSections>
<section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</configSections>




<system.web>
<httpModules>
<add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</httpModules>
</system.web>


<system.webServer>
<modules>
<add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</modules>
</system.webServer>


Was dit artikel nuttig?

Dat is fantastisch!

Hartelijk dank voor uw beoordeling

Sorry dat we u niet konden helpen

Hartelijk dank voor uw beoordeling

Laat ons weten hoe we dit artikel kunnen verbeteren!

Selecteer tenminste een van de redenen
CAPTCHA-verificatie is vereist.

Feedback verzonden

We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren