NOTE: This repository is a work in progress. If you plan to make non-trivial changes, we recommend to open an issue beforehand where we can discuss your planned changes.*
This system is basicaly some openID glue between the citizen apps and the DICTU Toegangs Verlenings Service.
Note that internally the systems used the names 'Inge-##'; where ## was some sequal number. As the course of the pandemic was unpredictable and often changed - some of those numbers never saw the light of day. For the DCC and Domestic certificates the two key systems (in addition to the website, the RIVM/GGD systems relied on, etc, etc) are the signing service (nl-covid-19-coronacheck-backend-bizrules-signing-service - internally known as inge number 4) and the nl-covid-19-coronacheck-access-holder-glue-service (build number 6).
To run this service make sure you have the following files in place:
saml/certs/sp.crt
saml/certs/sp.key
- Create a
saml/settings.json
from thesaml/settings-dist.json
having:- Attribute value as expected by the IdP
- An assertionConsumerService URL representing your service url with a reference to the ACS
- For RSA signing of the OIDC cookies we need an RSA keypair. For now generate one, and put into the folder: secrets/private_unencrypted.pem
- Add your domain to the response_uris list in the clients.json.
- Have ssl certificates in your secrets/ssl/private and /certs folder, and point to them in the config file.
Setup a redis server, and set the host and port in inge-6/config.py
.
Next, with the appropriate host and port, run in your environment:
$ sh run_server.sh
Make sure you followed the steps for the regular Setup, then run:
$ make fresh
...
$ sh run_server.sh
To make use of our custom stubs when running mypy make sure you have correctly exported the env variable
$ export MYPYPATH=~/work/myproject/stubs
The development team works on the repository in a private fork (for reasons of compliance with existing processes) and shares its work as often as possible.
If you plan to make non-trivial changes, we recommend to open an issue beforehand where we can discuss your planned changes. This increases the chance that we might be able to use your contribution (or it avoids doing work if there are reasons why we wouldn't be able to use it).
Note that all commits should be signed using a gpg key.
Security issues can be reported through a github issue, at https://coronacheck.nl/nl/kwetsbaarheid-melden or confidentially through the https://www.ncsc.nl/contact/kwetsbaarheid-melden.