Complemento de Credenciales Verificables

Resumen: Utilice Credenciales Verificables para otorgar acceso a grupos e insignias en Discourse.

:link: GitHub: https://github.com/coopcreds/discourse-verifiable-credentials
:arrow_right: Instalar: Siga la guía de instalación de plugins.

Demostración

Puede probar este plugin usted mismo siguiendo los pasos del enlace a continuación. Se le emitirá una “Credencial Cooperativa” de prueba que luego podrá usar para obtener acceso a un grupo y recibir una insignia en la instancia de Discourse de credenciales cooperativas. Tenga en cuenta que la credencial es solo para fines de prueba y puede ser revocada sin previo aviso.

https://coopcreds.com/test/

Proveedores

Actualmente, el plugin admite los siguientes proveedores de credenciales verificables.

Proveedor Tipo de Verificación Compatible
MATTR OIDC
MATTR Callback
Verifiable Credentials Ltd - Parcialmente

El plugin está diseñado para admitir cualquier proveedor, pero agregar proveedores adicionales requiere algo de trabajo de implementación. Si desea agregar otro proveedor, póngase en contacto.

Configuración

Se necesita cierta comprensión de las credenciales verificables para usar este plugin. MATTR, el principal proveedor admitido actualmente por el plugin, ha creado algunos videos que son relevantes para las opciones actuales del plugin:


Este plugin le permite verificar la credencial de un usuario para darle acceso a uno o más grupos o insignias en Discourse. Las siguientes secciones detallan la configuración de verificación, grupos e insignias. Como el plugin solo admite MATTR actualmente, las instrucciones asumen que está utilizando MATTR.

Verificador

El tipo de configuración de verificador que utilice dependerá del tipo de sistema con el que se esté integrando. Si usted es el verificador y está configurando un Discourse que controla, es posible que desee utilizar una verificación de callback. Si forma parte de una red que depende de un único verificador, es decir, es una “Parte Confiable”, es posible que desee utilizar la verificación OIDC.

OIDC

Si está utilizando un Verificador OIDC (por ejemplo, está utilizando la Integración MATTR Auth0), debe configurar los siguientes ajustes del sitio:

  • verifiable credentials oidc: true
  • verifiable credentials mattr verifier id: El id (no el DID) de su Verificador OIDC
  • verifiable credentials mattr client id: El id del cliente de la Aplicación Cliente OIDC para su Discourse (tenga en cuenta que este no es el id del cliente de su tenant de MATTR)
  • verifiable credentials mattr client secret: El secreto del cliente de la Aplicación Cliente OIDC para su Discourse (tenga en cuenta que este no es el secreto del cliente de su tenant de MATTR)

Callback

Si está utilizando una verificación de callback estándar, debe configurar los siguientes ajustes del sitio:

  • verifiable credentials oidc: false
  • verifiable credentials mattr client id: Id del cliente del tenant de MATTR donde se aloja el verificador
  • verifiable credentials mattr client secret: Secreto del cliente del tenant de MATTR donde se aloja el verificador
  • verifiable credentials mattr messaging did: Un DID con keyType de ed25519

Grupo

Puede otorgar acceso a grupos utilizando reclamaciones en credenciales verificadas. Esto significa que puede otorgar selectivamente acceso a diferentes grupos en su Discourse según las reclamaciones en la credencial de un usuario. Para configurar un grupo al que se pueda acceder a través de credenciales verificables, vaya a “Gestionar” > “Membresía” y configure lo siguiente:

  • Allow users to join by verifiable credentials: true

  • Show verifiable credentials button on this group to non members: (autoexplicativo)

  • Redirect users to url upon verification.: Por ejemplo, si está utilizando una credencial para dar a un usuario acceso a una categoría a la que el grupo tiene acceso, use este campo para enviar al usuario a la categoría cuando el proceso de verificación esté completo.

  • Cumulative list of claim(s) that grants access to this group. Format: key:value.: Tenga en cuenta que esta lista es acumulativa, lo que significa que un usuario necesitará todas las reclamaciones presentes en su credencial para obtener acceso. Ejemplo

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

Callback

Si está utilizando el método de verificación de Callback, también debe establecer el Identifier of credential that grants access to this group en el id de la plantilla de presentación que desea utilizar para ese grupo. Puede utilizar diferentes plantillas de presentación para diferentes grupos.

Insignia

Puede otorgar insignias a los usuarios utilizando reclamaciones en credenciales verificables. Actualmente, solo puede hacerlo utilizando el componente de encabezado (ver más abajo). El ajuste del sitio a utilizar es verifiable credentials header badges, que requiere entradas en este formato:

badge_id~~claim:value

Por ejemplo

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

Puede obtener el id de una insignia desde la URL de la página de la insignia, por ejemplo:

/badges/9/autobiographer ## el id de la insignia es 9

Encabezado

Puede utilizar el menú desplegable del encabezado del plugin para otorgar a los usuarios acceso a varios grupos a la vez, o insignias y grupos al mismo tiempo. Los ajustes relevantes son:

  • verifiable credentials header: true
  • verifiable credentials header groups: una lista de nombres de grupos (cada grupo ya debe estar configurado; ver arriba)
  • verifiable credentials header badges: ver arriba
  • verifiable credentials header info url: la URL para un enlace de “más información” en la parte inferior derecha del menú desplegable.

El icono del encabezado aparecerá si el usuario no es miembro de un grupo incluido en la presentación del encabezado, o no se le ha otorgado una insignia incluida en la presentación del encabezado. Cuando el usuario haga clic en él, se mostrarán los recursos a los que puede acceder verificando sus credenciales.

Soporte

Este plugin se ha desarrollado como parte del Proyecto de Credenciales Cooperativas, que cuenta con el apoyo de ESSIF Lab, financiado por la UE. Será utilizado en producción por varias partes confiables en la red de Credenciales Cooperativas cuando se lance a finales de este año.

image              image

Por hacer

  • Añadir soporte de insignias específicas de grupo.
  • Soporte de autenticación de usuarios a través de credenciales verificables.
  • Añadir proveedores adicionales como Evernym y Trinsic.
16 Me gusta

Esta es una nota puramente técnica, pero si está interesado en el debate sobre los estándares en torno a lo que este plugin está haciendo (en parte) (es decir, integrar OIDC con credenciales verificables), entonces este hilo reciente de la lista de correo del grupo W3C CCG es una buena lectura (en particular, la discusión entre Manu y Tobias (CTO de MATTR)).

(Ojalá tales discusiones estuvieran en una instancia de Discourse…)

6 Me gusta

¿Entiendo bien que este plugin solo funciona como consumidor?

Me pregunto si una instancia de Discourse podría ser un proveedor de credenciales para otra instancia de Discourse.

Sí, es correcto.

No, necesitas un proveedor externo, por ejemplo, uno que use https://mattr.global/.

1 me gusta