Riepilogo: Utilizza Verifiable Credentials per concedere l’accesso a gruppi e badge in Discourse.
GitHub: https://github.com/coopcreds/discourse-verifiable-credentials
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.
Provider
Attualmente il plugin supporta i seguenti provider di credenziali verificabili.
| Provider | Tipo di verifica | Supportato |
|---|---|---|
| MATTR | OIDC | Sì |
| MATTR | Callback | Sì |
| 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: trueverifiable credentials mattr verifier id: L’ID (non il DID) del tuo verificatore OIDCverifiable 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: falseverifiable credentials mattr client id: ID client del tenant MATTR in cui è ospitato il verificatoreverifiable credentials mattr client secret: Segreto client del tenant MATTR in cui è ospitato il verificatoreverifiable credentials mattr messaging did: Un DID conkeyTypedied25519
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. Esempiohttps://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: trueverifiable credentials header groups: un elenco di nomi di gruppi (ogni gruppo deve essere già configurato; vedi sopra)verifiable credentials header badges: vedi sopraverifiable 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.
