Plugin de certificats vérifiables

Résumé: Utilisez les Identifiants Vérifiables pour accorder l’accès aux groupes et aux badges dans Discourse.

:link: GitHub: https://github.com/coopcreds/discourse-verifiable-credentials
:arrow_right: Installer: Suivez le guide d’installation du plugin.

Démo

Vous pouvez essayer ce plugin vous-même en suivant les étapes du lien ci-dessous. Vous recevrez un “Identifiant Coopératif” de test que vous pourrez ensuite utiliser pour accéder à un groupe et obtenir un badge sur l’instance Discourse des identifiants coopératifs. Notez que l’identifiant est uniquement à des fins de test et peut être révoqué sans préavis.

https://coopcreds.com/test/

Fournisseurs

Le plugin prend actuellement en charge les fournisseurs d’identifiants vérifiables suivants.

Fournisseur Type de Vérification Supporté
MATTR OIDC Oui
MATTR Callback Oui
Verifiable Credentials Ltd - Partiellement

Le plugin est conçu pour prendre en charge n’importe quel fournisseur, mais l’ajout de fournisseurs supplémentaires nécessite un certain travail d’implémentation. Si vous souhaitez ajouter un autre fournisseur, veuillez nous contacter.

Configuration

Une certaine compréhension des identifiants vérifiables est nécessaire pour utiliser ce plugin. MATTR, le principal fournisseur pris en charge par le plugin actuellement, a réalisé quelques vidéos pertinentes pour les options actuelles du plugin :


Ce plugin vous permet de vérifier l’identifiant d’un utilisateur afin de lui donner accès à un ou plusieurs groupes ou badges dans Discourse. Les sections ci-dessous expliquent la configuration de la vérification, des groupes et des badges. Comme le plugin ne prend actuellement en charge que MATTR, les instructions supposent que vous utilisez MATTR.

Vérificateur

Le type de configuration de vérificateur que vous utilisez dépendra du type de système avec lequel vous vous intégrez. Si vous êtes le vérificateur et que vous configurez un Discourse que vous contrôlez, vous voudrez peut-être utiliser une vérification par rappel. Si vous faites partie d’un réseau qui repose sur un vérificateur unique, c’est-à-dire que vous êtes une “Partie Bénéficiaire”, alors vous voudrez peut-être utiliser la vérification OIDC.

OIDC

Si vous utilisez un Vérificateur OIDC (par exemple, vous utilisez l’Intégration MATTR Auth0), vous devez définir les paramètres du site suivants :

  • verifiable credentials oidc : true
  • verifiable credentials mattr verifier id : L’identifiant (pas le DID) de votre Vérificateur OIDC
  • verifiable credentials mattr client id : L’identifiant client de l’Application Client OIDC pour votre Discourse (notez qu’il ne s’agit pas de l’identifiant client de votre locataire MATTR)
  • verifiable credentials mattr client secret : Le secret client de l’Application Client OIDC pour votre Discourse (notez qu’il ne s’agit pas du secret client de votre locataire MATTR)

Rappel

Si vous utilisez une vérification par rappel standard, vous devez définir les paramètres du site suivants :

  • verifiable credentials oidc : false
  • verifiable credentials mattr client id : Identifiant client du locataire MATTR où est hébergé le vérificateur
  • verifiable credentials mattr client secret : Secret client du locataire MATTR où est hébergé le vérificateur
  • verifiable credentials mattr messaging did : Un DID utilisant keyType de ed25519

Groupe

Vous pouvez accorder l’accès aux groupes en utilisant des revendications dans les identifiants vérifiés. Cela signifie que vous pouvez accorder sélectivement l’accès à différents groupes dans votre Discourse en fonction des revendications de l’identifiant d’un utilisateur. Pour configurer un groupe accessible via des identifiants vérifiables, allez dans “Gérer” > “Adhésion” et définissez les éléments suivants :

  • Permettre aux utilisateurs de rejoindre par identifiants vérifiables : true

  • Afficher le bouton d'identifiants vérifiables sur ce groupe aux non-membres : (auto-explicatif)

  • Rediriger les utilisateurs vers l'URL après vérification. : Par exemple, si vous utilisez un identifiant pour donner à un utilisateur accès à une catégorie à laquelle le groupe a accès, utilisez ce champ pour envoyer l’utilisateur à la catégorie une fois le processus de vérification terminé.

  • Liste cumulative de revendication(s) qui accorde(nt) l'accès à ce groupe. Format : clé:valeur. : Notez que cette liste est cumulative, ce qui signifie qu’un utilisateur devra avoir toutes les revendications présentes dans son identifiant pour obtenir l’accès. Exemple

    https://coopcreds.com/cooperativeMembershipType:member
    https://coopcreds.com/cooperative:pavilion
    

Rappel

Si vous utilisez la méthode de vérification par rappel, vous devez également définir l’“Identifiant de l’identifiant qui accorde l’accès à ce groupe” sur l’identifiant du modèle de présentation que vous souhaitez utiliser pour ce groupe. Vous pouvez utiliser différents modèles de présentation pour différents groupes.

Badge

Vous pouvez accorder des badges aux utilisateurs en utilisant des revendications dans les identifiants vérifiés. Actuellement, vous ne pouvez le faire qu’en utilisant le composant d’en-tête (voir ci-dessous). Le paramètre du site à utiliser est verifiable credentials header badges, qui nécessite des entrées dans ce format :

badge_id~~claim:value

Par exemple

34~~https://coopcreds.com/cooperativeMembershipType:member

Vous pouvez obtenir l’identifiant d’un badge à partir de l’URL de la page du badge, par exemple :

/badges/9/autobiographer ## l'identifiant du badge est 9

En-tête

Vous pouvez utiliser le menu déroulant d’en-tête du plugin pour accorder aux utilisateurs l’accès à plusieurs groupes à la fois, ou à la fois des badges et des groupes. Les paramètres pertinents sont :

  • verifiable credentials header : true
  • verifiable credentials header groups : une liste de noms de groupes (chaque groupe doit déjà être configuré ; voir ci-dessus)
  • verifiable credentials header badges : voir ci-dessus
  • verifiable credentials header info url : l’URL d’un lien “en savoir plus” en bas à droite du menu déroulant.

L’icône d’en-tête apparaîtra si l’utilisateur n’est membre d’aucun groupe inclus dans la présentation de l’en-tête, ou n’a reçu aucun badge inclus dans la présentation de l’en-tête. Lorsque l’utilisateur clique dessus, il affichera les ressources auxquelles il peut accéder en vérifiant ses identifiants.

Support

Ce plugin est construit dans le cadre du Projet Cooperative Credentials, soutenu par ESSIF Lab financé par l’UE. Il sera utilisé en production par plusieurs parties prenantes dans le réseau Cooperative Credentials lors de son lancement plus tard cette année.

image|690x98,50% image|200x50

À faire

  • Ajouter la prise en charge des badges spécifiques aux groupes.
  • Prise en charge de l’authentification des utilisateurs via des identifiants vérifiables.
  • Ajouter des fournisseurs supplémentaires tels que Evernym et Trinsic.
16 « J'aime »

Ceci est une note purement technique, mais si vous vous intéressez au débat sur les normes concernant ce que ce plugin fait (en partie) (c’est-à-dire l’intégration d’OIDC avec des identifiants vérifiables), alors ce fil de discussion récent de la liste de diffusion du groupe W3C CCG est une bonne lecture (en particulier la discussion entre Manu et Tobias (CTO de MATTR)).

(J’aimerais que de telles discussions aient lieu sur une instance de discourse…)

6 « J'aime »

Est-ce que je comprends bien que ce plugin fonctionne uniquement en tant que consommateur ?

Je me demande si une instance de Discourse pourrait être un fournisseur d’informations d’identification pour une autre instance de Discourse.

Oui, c’est exact.

Non, vous avez besoin d’un fournisseur externe, par exemple un qui utilise https://mattr.global/.

1 « J'aime »