discipl / waardepapieren

project for consortium of municipalities digitizing PoE services
GNU General Public License v3.0
7 stars 3 forks source link

Waardepapieren

This project provides a full implementation example of how Discipl components can be used to issue and verify claims. In particular, how municipalities can issue

Preparation

In order to make everything functional, we need to generate valid certificates for demo NLX environments and ensure that the validation app can retrieve those. This is only needed for working with live NLX, when using docker-compose-travis.yml, these certificates are not needed.

  1. Generate certificates as described here, and place the org.key and org.crt files at ./mock-nlx/certs/
  2. Ensure the certificates are readable, for example by giving the following permissions chmod g+r org.key

Running

The easiest way to run is using docker-compose:

This will start 3 applications:

Also the network waardepapieren will be created and used by all Docker container.

This is done as follows:

  1. Set the environment variable CERT_HOST_IP is with an IP (or domain) that the validator app can use to reach the clerk-frontend container. Ensure that the validator app runs on the same (wifi) network as the clerk frontend.
  2. Run docker-compose -f docker-compose-travis.yml up

Alternatively, you can use a live NLX version (unmaintained configuration):

  1. Run docker-compose up --build

The --build flags ensures that the latest version of the application is build. Dockers build-in caching is still used, so only the modified parts of the application are rebuild. Optionally the --no-cache flag can be added to disable the caching. This may be required when changes to the package.json are made.

The clerk frontend will be available at https://localhost:443

Running with IPv8

Optionally IPv8 attestation can be used in extend with Ephemeral. This is done as follows:

  1. Create (or edit) the config files that are used by the application. These are located in clerk-frontend/public and waardepapieren-service/configuration. Set the ENABLE_IPV8_ATTESTATION to true
  2. Run docker-compose -f docker-compose-travis.yml -f docker-compose-ipv8.yml up --build

The docker-compose-ipv8.yml can be ran as a stand-alone application. However, it depends on the existence of the waardepapieren network. Run the complete application once as described above to create the network.

Integration instructions

The docker containers built using the instructions above can be used to deploy these services in a production environment. However, it is likely advantageous to integrate the waardepapieren-component in your frontend. In any case, this can be done as in haarlem-frontend which shows how to embed the waardepapieren-component in a website with existing content. If the surrounding website is hosted with TYPO3, you might want to use the plugin.

Running validator

The validator app is made with Expo, which is a free and open-source react-native framework for mobile development. to run this on a mobile device, the expo-cli tool is required. to install this, run:

$npm install -g expo-cli

connect to the same network without firewall restrictions (if all else fails, starting an hotspot on your mobile device and connecting to it usually works). In the folder "validator-frontend", issue the command:

$expo start

wait till the program has fully loaded and scan the QR code in the left bottom corner, with the Expo-app for Android or IOS.

Basic Flow (Main Succes Scenario)

Dit document heeft als doel om zowel het ontwikkelteam als de gemeente een duidelijk beeld te geven van de applicatie, middels een volledig implementatievoorbeeld van hoe Discipl-componenten kunnen worden gebruikt om claims af te geven en te verifiëren. In het bijzonder, hoe gemeenten die kunnen uitgeven.

Een live demo is beschikbaar via https://waardepapieren-demo.discipl.org/


  1. gemeentelijk ambtenaar klikt op https://waardepapieren-demo.discipl.org/ en opent de clerk-frontend

  1. Systeem laat hoofdscherm zien. hs1

  1. gemeentelijk abmtenaar tikt magisch nummer in (anders dan in screenshot: BSN=999994669) hs2 gemeenteambtenaar klikt op volgende

  1. Systeem laat doelbinding zien hs3 gemeentelijk ambtenaar klikt op volgende

  1. Systeem laat detailpagina zien van de ingevoerde BSN

hs4

(nb op IOS mobile (iphone/ipad) gebeurt dit nog niet ) gemeenteambtenaar klikt op dit klopt!


  1. systeem laat uittreksel zien hs5

  1. Gemeentelijk ambtenaar klikt op download

hs15


  1. Systeem laat downloadscherm zien

hs5

uittreksel


  1. Burgerkoppelt qr-code aan Wallet of neemt printje mee, gemeentelijk ambtenaar klikt op afronden

hs10 nb download apple-wallet werkt nog niet


  1. Systeem laat weer het hoofdscherm zien. Serving needs hs1

Er is nu een automatisch gegenereerd document en daarom niet met een fysieke handtekening ondertekend.
De gegevens zijn verkregen via NLX en geborgd in de QR code. De validatie_app is bedoeld om de echtheid te controleren.

Validatie waardepapieren_app met expo


Qr code

Met een standaard qr lezer kan bovenstaande QR code worden gescand, en de JSON code zichtbaar worden gemaakt.

c1


Met de Expo app kan het uittreksel gevalideerd worden. Deze kan gebouwd worden met deze code

https://apps.apple.com/nl/app/expo-client/id982107779 Expo

c1


c1

Scan [ ] nogmaals de QR code


c1


c1