Referentieimplementaties in .NET Core en .NET 4.x voor enable-u authN
.NET Core en/of .NET 4.x
Public facing website/api Windows of Linux (VM) met een Fully Qualified Domain Name (FQDN) om authN af te handelen.
Installeer openssl via chocolatey: https://chocolatey.org/packages/openssl
De referentieimplementatie gebruikt self signed certificates. Voer in powershell (of commandline) het volgende (unattended) commando uit (na het wijzigen van de FQDN's en IP nummers):
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout app.key -out app.crt -subj "/C=NL/ST=Zuid-Holland/L=Den Haag/O=wigo4it/OU=Org/CN=appname.azurewebsites.net" -addext "subjectAltName=DNS:appname1.azurewebsites.net,DNS:appname2.azurewebsites.net,IP:10.0.0.1"
Het creëert een certificaat dat
- geldig is voor de domeinen appname1.azurewebsites.net en appname2.azurewebsites.net (SAN),
- ook geldig is voor het IP-adres 10.0.0.1 (SAN),
- relatief sterk is (vanaf 2020) en
- geldig is voor 3650 dagen (~ 10 jaar).
Het creëert de volgende bestanden:
- Privésleutel: app.key
- Certificaat: app.crt
In het kader van SSD beproeven of een bestaand .NET auth framework (zoals openIdConnect) ingezet kan worden in de referentieimplementatie. Deze zorgen tevens voor login/logout flow/sliding expiration.
- Aanpassen applicatie voor koppeling Enable-u DigiD
- Relatieve hyperlinks/verwijzingen gebruiken i.p.v absoluut, zodat de browserurl gedurende de DigiD sessie gelijk blijft.
Bijvoorbeeld:
belastingsloket/formulier/inkomensbelasting = goed
/belastingsloket/formulier/inkomensbelasting = fout bij routering op resourcePath, Goed bij routering op basis van (sub)domein
https://externeCloudUrl.nl/formulier/inkomensbelasting = fout
Claims (scope) in de applicatie toevoegen voor:
- DigiD claim (BSN) uit http-headers/parameters
- Betrouwbaarheidsniveau Claim (Digid) uit http-headers/parameters
- Optioneel: Gemeente claim (naam gemeente/gemeentecode)
- Login flow (login url)
- Logout flow (logout url)
- Toevoegen van claims
- Lezen van claims voor attestatie/applicatie logica
- Logout knop op alle protected webpagina’s, die verwijzen naar een logout url uit punt 2.
- Pagina's (requirements uit Logius/DigiD):
- Landingspage/homepage
- ‘Inloggen is geannuleerd’
- Url:
- 'Errorpagina’
- ‘Opnieuwinloggen’ pagina (sessie verlopen)
- Overige openbare pagina’s (bijvoorbeeld static content)
- Protected webpagina Url’s (bijv. alles beginnend met het path belastingsloket/formulieren/* of belastingsloket/protected/*). Om deze pagina’s te benaderen is een DigiD sessie vereist.
- Aanleveren protected API Url’s voor die bijvoorbeeld gebruikt worden voor asynchrone (bijv. ajax) http requests (bijv. alles beginnend met het path belastingsloket/api/*). Om deze pagina’s te benaderen is een DigiD sessie vereist. Url: