Skip to content

Latest commit

 

History

History
186 lines (117 loc) · 6.92 KB

File metadata and controls

186 lines (117 loc) · 6.92 KB

Attestation déléguée

L'environnement d'expérimentation du CQEN est basé sur AWS & OpenShift (OKD).

Pour reproduire l'expérimentation vous allez installer les composants suivants:

  • une chaîne de bloc (Blockchain)
  • un explorateur de bloc (Ledger Client)
  • une base de donnée (kms - key management service)
  • un agent de communication (Agent)
  • un site web comme controlleur (controller)

Configurer le registre distribué

Pour reproduire l'expérimentation, vous pouvez utiliser un registre distribué déjà installé comme le staging Net de sovrin ou vous pouvez vous installer un VON-Network. C'est un réseau de noeuds Indy de niveau développement comprenant un explorateur de bloc (Ledger Client).


Configurer l'agent de communication

[Optionel] Changement des libellés

Si vous souhaitez changer le nom des organismes utilisés dans la démo, vous pouvez spécifier le paramètre "AGENT_NAME" lors du lancement des gabarits de déploiement. Les valeurs par défauts sont "Registre Québec" et "Curateur public du Québec".

Créer un DID public sur votre chaîne de bloc

Pour que l'agent de communication puisse émettre des attestations, il est nécessaire de créer un DID public sur votre chaîne de bloc ou réutiliser celui de la démo '000000000000DirecteurEtatCivilQc'. Si vous avez installé un VON-Network de la Province de la Colombie Britannique et que vous avez configurer l'explorateur de bloc, vous pouvez utiliser son interface graphique pour créer un DID public. Si vous utilisez une autre chaîne de bloc que la votre, vous devrez utiliser les outils fournis pour le faire.


Création d'un DID


Créer le projet openshift

Vous pouvez procéder par votre interface graphique ou voici la procédure par ligne de commande.

  • Authentifiez-vous à OpenShift sur votre terminal, habituellement vous trouverez la ligne de commande à utiliser dans l'interface graphique
oc new-project exp-att-del --display-name="Expérimentation Attestation Déléguée" --description="Expérimentation sur l'Attestation Déléguée en verifiable credential"

Assurez-vous d'êtres sur le bon projet

oc project exp-att-del

Configurer clé d'accès github (optionel seulement si votre dépôt GitHub est privé)

Créer le répertoire des clés

Ce répertoire faisant partie du .gitignore vous permettra de ne pas divulger vos paires de clés cryptographiques.

mkdir .ssh
cd .ssh

Créer les clés de déploiment SSH

ssh-keygen -C "openshift-source-builder/exp-att-del@github" -f exp-att-del -N ''

Configurer la clé privée de déploiment dans le projet OpenShift

oc create secret generic exp-att-del --from-file=ssh-privatekey=exp-att-del --type=kubernetes.io/ssh-auth

oc delete secret exp-att-del

oc secrets link builder exp-att-del

Configurer la clé publique de déploiment dans le projet GitHub

Copier la clé sur Windows

xclip -sel c < exp-att-del.pub

Copier la clé sur Mac OSX

cat exp-att-del.pub | pbcopy

Ouvrir votre dépôt github, le notre est: https://github.com/CQEN-QDCE/Attestation-Deleguee

  • Dans l'onglet 'Settings',
  • sous onglet 'Deploy keys',
    • supprimer la clé nommée 'openshift-source-builder' si elle existe
  • Ajouter une clé nommée 'openshift-source-builder'
  • et coller le contenu de la clé publique récupérée avec la commande xclip ou pbcopy (CTRL-V) ou (CMD-V)

Supprimer les fichiers de clés

rm exp-att-del && rm exp-att-del.pub

NOTE: Cette étape sert à ne pas laisser inutilement trainer des informations sensibiles sur votre poste.


Démarrer l'installation des contrôleurs

oc process -f openshift/templates/dec-template.yml -p GITHUB_WEBHOOK_SECRET='$(cat .ssh/exp-att-del)' | oc apply -f -
oc process -f openshift/templates/mfa-template.yml | oc apply -f -

Générer le schéma et la définition de l'attestation sur la chaîne de bloc

Créer le schéma.

NOTE: Changer l'url de l'agent selon votre installation. Les valeurs "schema_name" et "schema_version" peuvent être modifiées selon vos besoins.

curl -i -X POST "http://dec-agent-admin.apps.exp.lab.pocquebec.org/schemas" -H "accept: application/json" -H "X-Api-Key: " -H "Content-Type: application/json-patch+json" -d "{\"schema_name\": \"IQNIDENTITE\",\"schema_version\":\"1.0\",\"attributes\":[\"holder.id\",\"holder.type\",\"issuanceDate\",\"expirationDate\",\"credentialSubject.id\",\"credentialSubject.firstNames\",\"credentialSubject.lastName\",\"credentialSubject.gender\",\"credentialSubject.birthplace\",\"credentialSubject.birthDate\",\"credentialSubject.fatherFullName\",\"credentialSubject.motherFullName\",\"credentialSubject.registrationNumber\",\"credentialSubject.photo\"]}"

Créer la définition de l'attestation.

NOTE: La valeur "schema_id" doit être remplacée par celle obtenue à la sortie de l'étape précédente.

curl -i -X POST "http://dec-agent-admin.apps.exp.lab.pocquebec.org/credential-definitions" -H "accept: application/json" -H "X-Api-Key: " -H "Content-Type: application/json-patch+json" -d "{\"support_revocation\": false,\"tag\": \"Identite-IQN\",\"schema_id\": "Ep31SvFAetugFPe5CGzJxt:2:IQNIDENTITE:1.0"}"

NOTE: Conserver la valeur "credential_definition_id"

Ajustements post déploiment

Certains ajustements supplémentaires sont nécessaires après le premier déploiement. Pour ce faire:

  1. Accéder à votre console OpenShift;

  2. Sélectionner le projet que vous venez de déployer;

Ajuster la configuration de l'application

  1. Dans le menu de navigation, ouvrer l'option "Workloads";

  2. Sélectionner l'option 'Config Maps';

  3. Ouvrer 'dec-controller' en édition;

  4. Modifier les valeurs de la clé 'config.js' avec celles générées aux étapes précédentes.

Ajuster les variables d'environnement

  1. Dans le menu de navigation, dans la section 'Workloads', sélectionner 'Deployment Configs';

  2. Sélectionner 'dec-agent';

  3. Dans l'onglet 'Environment', ajuster les valeurs suivantes:

    • AGENT_DID_SEED -> Valeur d'initialisation de l'identitifiant décentralisé public de l'agent (ex: 000000000000DirecteurEtatCivilQc)

    • AGENT_DID -> Identitifiant décentralisé public de l'agent (ex: Ep31SvFAetugFPe5CGzJxt)

    • GENESIS_FILE_URL -> URL de téléchargement du fichier genesis

    • AGENT_ENDPOINT -> Point de terminaison entrant de l'agent

    • AGENT_ADMIN_ENDPOINT -> Point de terminaison de l'agent

  4. Sauvegarder;

  5. Sélectionner 'dec-controller';

  6. Dans l'onglet 'Environment', modifier les valeurs suivantes:

    • REACT_APP_ISSUER_HOST_URL -> Url de l'agent;
  7. Sauvegarder;

  8. Effectuer les mêmes ajustements pour le 'mfa-agent' et le 'mfa-controller';