Plugin per le Credenziali Verificabili

Riepilogo: Utilizza Verifiable Credentials per concedere l’accesso a gruppi e badge in Discourse.

:link: GitHub: https://github.com/coopcreds/discourse-verifiable-credentials
:arrow_right: Installazione: Segui la guida all’installazione del plugin.

Demo

Puoi provare tu stesso questo plugin seguendo i passaggi nel link sottostante. Ti verrà rilasciato un “Cooperative Credential” di test che potrai quindi utilizzare per accedere a un gruppo e ottenere un badge sull’istanza Discourse di cooperative credentials. Tieni presente che la credenziale è solo a scopo di test e può essere revocata senza preavviso.

https://coopcreds.com/test/

Provider

Attualmente il plugin supporta i seguenti provider di credenziali verificabili.

Provider Tipo di verifica Supportato
MATTR OIDC
MATTR Callback
Verifiable Credentials Ltd - Parzialmente

Il plugin è costruito per supportare qualsiasi provider, ma l’aggiunta di provider aggiuntivi richiede un certo lavoro di implementazione. Se desideri aggiungere un altro provider, ti preghiamo di contattarci.

Configurazione

È necessaria una certa comprensione delle credenziali verificabili per utilizzare questo plugin. MATTR, il principale provider attualmente supportato dal plugin, ha realizzato alcuni video pertinenti alle attuali opzioni del plugin:


Questo plugin ti consente di verificare la credenziale di un utente per concedergli l’accesso a uno o più gruppi o badge in Discourse. Le sezioni seguenti illustrano la configurazione della verifica, dei gruppi e dei badge. Poiché il plugin attualmente supporta solo MATTR, le istruzioni presuppongono che tu stia utilizzando MATTR.

Verificatore

Il tipo di configurazione del verificatore che utilizzi dipenderà dal tipo di sistema con cui ti stai integrando. Se sei tu il verificatore e stai configurando un Discourse che controlli, potresti voler utilizzare una verifica tramite callback. Se fai parte di una rete che si basa su un singolo verificatore, ovvero sei una “Relying Party”, potresti voler utilizzare la verifica OIDC.

OIDC

Se stai utilizzando un verificatore OIDC (ad esempio, stai utilizzando l’Integrazione MATTR Auth0), devi impostare le seguenti impostazioni del sito:

  • verifiable credentials oidc: true
  • verifiable credentials mattr verifier id: L’ID (non il DID) del tuo verificatore OIDC
  • verifiable credentials mattr client id: L’ID client dell’applicazione client OIDC per il tuo Discourse (nota che questo non è l’ID client del tuo tenant MATTR)
  • verifiable credentials mattr client secret: Il segreto client dell’applicazione client OIDC per il tuo Discourse (nota che questo non è il segreto client del tuo tenant MATTR)

Callback

Se stai utilizzando una verifica standard tramite callback, devi impostare le seguenti impostazioni del sito:

  • verifiable credentials oidc: false
  • verifiable credentials mattr client id: ID client del tenant MATTR in cui è ospitato il verificatore
  • verifiable credentials mattr client secret: Segreto client del tenant MATTR in cui è ospitato il verificatore
  • verifiable credentials mattr messaging did: Un DID con keyType di ed25519

Gruppo

Puoi concedere l’accesso ai gruppi utilizzando le dichiarazioni nelle credenziali verificate. Ciò significa che puoi concedere selettivamente l’accesso a diversi gruppi nel tuo Discourse a seconda delle dichiarazioni nella credenziale di un utente. Per configurare un gruppo a cui accedere tramite credenziali verificabili, vai su “Gestisci” > “Appartenenza” e imposta quanto segue:

  • Consenti agli utenti di unirsi tramite credenziali verificabili: true

  • Mostra pulsante credenziali verificabili a questo gruppo per i non membri: (autoesplicativo)

  • Reindirizza gli utenti all'URL dopo la verifica.: Ad esempio, se stai utilizzando una credenziale per dare a un utente l’accesso a una categoria a cui il gruppo ha accesso, usa questo campo per inviare l’utente alla categoria al completamento del processo di verifica.

  • Elenco cumulativo di dichiarazioni che concedono l'accesso a questo gruppo. Formato: chiave:valore.: Nota che questo elenco è cumulativo, il che significa che un utente avrà bisogno di tutte le dichiarazioni presenti nella sua credenziale per ottenere l’accesso. Esempio

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

Callback

Se stai utilizzando il metodo di verifica Callback, devi anche impostare l’“Identifier of credential that grants access to this group” sull’ID del modello di presentazione che desideri utilizzare per quel gruppo. Puoi utilizzare diversi modelli di presentazione per gruppi diversi.

Badge

Puoi concedere badge agli utenti utilizzando le dichiarazioni nelle credenziali verificabili. Attualmente puoi farlo solo utilizzando il componente header (vedi sotto). L’impostazione del sito da utilizzare è verifiable credentials header badges che richiede voci in questo formato:

badge_id~~claim:value

Ad esempio

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

Puoi ottenere l’ID di un badge dall’URL della pagina del badge, ad esempio:

/badges/9/autobiographer ## l'ID del badge è 9

Header

Puoi utilizzare il menu a discesa dell’header del plugin per concedere agli utenti l’accesso a più gruppi contemporaneamente, o sia a badge che a gruppi contemporaneamente. Le impostazioni pertinenti sono:

  • verifiable credentials header: true
  • verifiable credentials header groups: un elenco di nomi di gruppi (ogni gruppo deve essere già configurato; vedi sopra)
  • verifiable credentials header badges: vedi sopra
  • verifiable credentials header info url: l’URL per un link “scopri di più” nell’angolo in basso a destra del menu a discesa.

L’icona dell’header apparirà se l’utente non è membro di un gruppo incluso nella presentazione dell’header, o non ha ottenuto un badge incluso nella presentazione dell’header. Quando l’utente fa clic su di essa, verranno visualizzate le risorse a cui può accedere verificando le proprie credenziali.

Supporto

Questo plugin è costruito come parte del Cooperative Credentials Project, supportato dall’ESSIF Lab finanziato dall’UE. Sarà utilizzato in produzione da più parti interessate nella rete Cooperative Credentials quando sarà operativo entro la fine dell’anno.

image              image

Da fare

  • Aggiungere il supporto per badge specifici per gruppo.
  • Supportare l’autenticazione utente tramite credenziali verificabili.
  • Aggiungere provider aggiuntivi come Evernym e Trinsic.
16 Mi Piace

Questa è una nota puramente tecnica, ma se siete interessati al dibattito sugli standard riguardo a ciò che questo plugin sta (in parte) facendo (cioè, integrare OIDC con Verifiable Credentials), allora questo recente thread dalla mailing list del gruppo W3C CCG è una buona lettura (in particolare la discussione tra Manu e Tobias (CTO di MATTR)).

(Vorrei che tali discussioni fossero su un’istanza di discourse…)

6 Mi Piace

Ho capito bene che questo plugin funziona solo come consumer?

Mi chiedo se un’istanza di Discourse possa essere un provider di credenziali per un’altra istanza di Discourse.

Sì, è corretto.

No, è necessario un provider esterno, ad esempio uno che utilizzi https://mattr.global/.

1 Mi Piace