Ga naar hoofdinhoud

WIP Gedetailleerde procesbeschrijvingen

Status: DRAFT

Actoren

  • Burger
  • Bronorganisatie
  • Stelselbeheerder
  • App manager

Processen

Voorbereiding APP MANAGER

  • App manager creëert private/public keypair (2048bits RSA) TODO
  • App manager installeert Blauwe Knop componenten
  • App manager installeert DigiD aansluiting
  • App manager registreert zich bij de Stelselbeheerder
  • Stelselbeheerder neemt App manager incl public key op in het stelselschema

Voorbereiding BRONORGANISATIE

  • Bronorganisatie installeert componenten
  • Bronorganisatie genereert private/public keypair (via management-ui, implementatie)
  • Bronorganisatie meldt zich aan bij stelselbeheerder implementatie
  • Stelselbeheerder registreert Bronorganisatie incl naam, discovery URL, public key, en welke documenttypen de bronorganisatie ondersteunt implementatie

STELSELBEHEER

  • Stelselbeheerder accepteert bronorganisatie (dit kan via de management-ui) implementatie
  • Stelselbeheerder publiceert schema met (organisaties, app managers)

ONBOARDING

  • Gebruiker installeert App
  • Gebruiker (App) genereert een te gebruiken handtekening
  • Gebruiker bekijkt onboarding/uitleg
  • Gebruiker start wizard

VERZOEK DOEN

  • ORGANISATIES SELECTEREN - verzoek samenstellen

    • Gebruiker (App) haalt SCHEME op
    • Gebruiker (App) bevat hardcoded de documenttypen waar het om draait
      • versie 1: informatie over financiële verplichtingen: FINANCIAL_CLAIMS_INFORMATION_REQUEST
    • Gebruiker (App) bepaalt welke organisaties in het schema dit documenttype kunnen leveren
    • Gebruiker (App) toont lijst van deze organisaties en de mogelijkheid om al die organisaties te bevragen
    • Gebruiker maakt keuze uit organisaties
    • App slaat zowel de gekozen instellingen (geselecteerde organisaties) als de resulterende DocumentBundel lokaal op, zodat deze kan worden hergebruikt
  • VERZOEK BEKIJKEN

    • App toont te geconfigureerde verzoek
      • Welke organisaties
      • Welk verzoek (verzoek om schuldinformatie)
    • Gebruiker bevestigt dat het verzoek is zoals gewenst
  • HANDTEKENING LEGALISEREN

    • App geeft aan dat verzoek ondertekend moet worden en dat daarvoor een gelegaliseerde handtekening vereist is
    • Gebruiker kiest legalisatiemethode
    • Gebruiker legaliseert handtekening (zie hieronder)
  • OPTIE A: HANDTEKENING LEGALISEREN MET App manager (implementatiekeuze: DigiD)

    • [OPTIONAL: per org keys] Gebruiker (App) genereert public/private keypair voor communicatie met App manager
    • Gebruiker (App) stuurt legalisatieverzoek naar app manager met bewijs bezit private key
    • Gebruiker (App) redirect naar App manager website
    • Gebruiker logt in bij App manager
    • App manager creëert legaliseert handtekening van de burger, plus diens BSN met de handtekening van de app manager
    • App manager creëert token en encrypt met eigen private key + public key Gebruiker
    • App manager redirect naar App met encrypted token
    • Gebruiker (App) gebruikt token om encrypted package op te halen
    • De Gebruiker (App) decrypt het package 1x (dmv private key gebruiker)
    • De Gebruiker (App) controleert de ondertekening door de App manager
  • OPTIE B: VERZOEK ONDERTEKENEN MET Digitale Identiteit (implementatiekeuze: IRMA)

    • Gebruiker (App) stelt legalisatieverzoek op (te legaliseren handtekening: de bij het installeren van de app gegenereerde eigen handtekening)
    • Gebruiker (App) start ondertekensessie via inter-app communicatie
    • De DI creëert handtekening met BSN op de te legaliseren handtekening
    • De gelegaliseerde handtekening wordt via inter-app communicatie aan de Gebruiker (App) geleverd
  • VERZOEK OPSTELLEN VOOR BRONORGANISATIE (DIT GEBEURT EENMALIG VOOR ELKE BRONORGANISATIE DIE GEKOZEN IS)

    • Opstellen verzoek
      • Gebruiker (App) stelt voor de betreffende organisatie een document op met verzoek om het gekozen documenttype
        • versie 1: documenttype: FINANCIAL_CLAIMS_INFORMATION_REQUEST
      • Gebruiker (App) ondertekent het document met de gekozen handtekening
      • Gebruiker (App) encrypt het document en de gebruikte gelegaliseerde handtekening met de public key van de betreffende bronorganisatie
  • VERBINDING MAKEN MET EEN BRONORGANISATIE

    • Verbinding maken met een bronorganisatie (alleen nodig als er nog geen session token is voor die organisatie)
      • [OPTIONAL: per org keys] De Gebruiker (App) genereert public/private keypair voor communicatie met de bronorganisatie
      • [OPTIONAL: per org keys] De Gebruiker stuurt een connectieverzoek inclusief public key aan de bronorganisatie
      • De bronorganisatie reageert met een challenge-token, encrypted met de private key van de organization (corresponderend met public key in het scheme)
      • De Gebruiker (App) decrypt het challenge token met de bijbehorende public key uit het scheme
      • De Gebruiker (App) encrypt het challenge token met de eigen private key die gegenereerd is bij het installeren van de app
      • Gebruiker (App) stuurt de encrypted challenge naar de bronorganisatie
      • Bronorganisatie decrypt de challenge en checkt deze. Indien juist slaat de bronorganisatie de public key van de Gebruiker (App) op, samen met een session token
      • De bronorganisatie retourneert het session token naar de Gebruiker (App)
      • De Gebruiker (App) slaat het session-token op in relatie tot de bronorganisatie en het verzoek
  • VERZOEK INDIENEN BIJ EEN BRONORGANISATIE

    • Insturen ondertekende DocumentBundel+BSN[package]
      • [OPTIONAL: De Gebruiker (App) vraagt een challenge token op bij de Bronorganisatie]
      • De Gebruiker (App) encrypt het Document[+challenge token] +GelegaliseerdeHandtekening met de private key van de gebruiker [OPTIONAL: per org keys: voor die organisatie]
      • De Gebruiker (App) encrypt het betreffende document met de public key van de betreffende bronorganisatie
      • De Gebruiker (App) stuurt dit resultaat naar de Bronorganisatie samen met de session token
    • Accepteren schuldinformatie-verzoek-registratie [TODO: financial-claims-configuration-request of financial-claims-registration-request]
      • De Bronorganisatie decrypt het ontvangen bericht met diens eigen private key
      • De Bronorganisatie controleert de ondertekening met de public key behorende bij de gebruiker (icm de session token)
      • De Bronorganisatie controleert de challengetoken
      • De Bronorganisatie controleert het documenttype in het Document, en of dat ondersteund wordt
      • De Bronorganisatie controleert de ondertekening van het Document
        • Optie A: Klopt de handtekening van de App manager? Wat is het BSN?
        • Optie B: Klopt de handtekening met Digitale Identiteit? Wat is het BSN?
      • De Bronorganisatie slaat het BSN op samen met het Document
      • De Bronorganisatie genereert een financial-claims-configuration-request ID (als het ware een referentie naar dit specifieke verzoek, een soort casenummer)
      • De Bronorganisatie retourneert het financial-claims-configuration-request ID naar de Gebruiker (App)
      • De Gebruiker (App) slaat het financial-claims-configuration-request ID op in relatie tot de bronorganisatie en het verzoek

VORDERINGENOVERZICHT BEKIJKEN

  • Gebruiker opent Vorderingenoverzicht
    • Openen of pull to refresh triggert het ophalen/verversen
  • VERBINDING MAKEN MET EEN BRONORGANISATIE (zie hierboven voor details)
  • App haalt schuldinformatie op bij alle geselecteerde bronorganisaties
    • De Gebruiker (App) zoekt het financial-claims-configuration-request ID op voor de betreffende organisatie
    • De Gebruiker (App) ondertekent het session-token en de financial-claims-configuration ID met de private key van de gebruiker [OPTIONAL: per org keys: behorende bij die organisatie].
    • De Gebruiker (App) encrypt het voorgaande met de public key van de betreffende bronorganisatie.
    • Gebruiker (App) stuurt het resultaat naar de bronorganisatie
  • Bronorganisatie verwerkt verzoek om actuele schuldinformatie
    • Bronorganisatie decrypt het bericht met diens private key
    • De bronorganisatie controleert het financial-claims-configuration ID icm de public key van de gebruiker
    • De bronorganisatie controleert de handtekening op het document (dmv de public key opgeslagen bij de financial-claims-configuration ID)
    • De bronorganisatie zoekt de schuldinformatie bij elkaar voor het betreffende BSN
    • De bronorganisatie stelt een FINANCIAL_CLAIMS_INFORMATION_DOCUMENT document op.
    • De bronorganisatie ondertekent dat document met de private key van de bronorganisatie.
    • De bronorganisatie encrypt het resultaat uit de vorige stap met de public key van de gebruiker(app).
    • De bronorganisatie retourneert het encrypted resultaat naar de Gebruiker (App)
    • De Gebruiker (App) decrypt de ontvangen gegevens met diens private key [OPTIONAL: per org keys] voor die organisatie.]
    • De Gebruiker (App) valideert de handtekening op het resultaat mbv de public key van de bronorganisatie
    • De Gebruiker (App) slaat het document lokaal op
  • Schuldinformatie wordt gepresenteerd per organisatie
    • De Gebruiker (App) leest de Documenttype 1 voor alle organisaties en geeft deze weer.
    • TBD, voor nu een lijst per organisatie

DELEN (TODO)

VERWIJDEREN (TODO)