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 juiste: https://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;
Label | Value | Description |
---|---|---|
ID | SAML2 Module eherkenning | |
Description | Voorbeeld 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
Feedback verzonden
We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren