Verifiable Credentials Plugin

Zusammenfassung: Verwenden Sie Verifiable Credentials, um den Zugriff auf Gruppen und Abzeichen in Discourse zu gewähren.

:link: GitHub: https://github.com/coopcreds/discourse-verifiable-credentials
:arrow_right: Installation: Befolgen Sie die Plugin-Installationsanleitung.

Demo

Sie können dieses Plugin selbst ausprobieren, indem Sie die Schritte im Link unten befolgen. Sie erhalten ein Test-„Cooperative Credential“, mit dem Sie dann Zugriff auf eine Gruppe erhalten und ein Abzeichen auf der Discourse-Instanz von Cooperative Credentials erhalten können. Beachten Sie, dass das Zertifikat nur zu Testzwecken dient und ohne Vorankündigung widerrufen werden kann.

https://coopcreds.com/test/

Anbieter

Das Plugin unterstützt derzeit die folgenden Anbieter von verifizierbaren Anmeldeinformationen.

Anbieter Verifizierungstyp Unterstützt
MATTR OIDC Ja
MATTR Callback Ja
Verifiable Credentials Ltd - Teilweise

Das Plugin ist so konzipiert, dass es jeden Anbieter unterstützt, aber das Hinzufügen weiterer Anbieter erfordert einige Implementierungsarbeiten. Wenn Sie einen weiteren Anbieter hinzufügen möchten, wenden Sie sich bitte an uns.

Konfiguration

Ein gewisses Verständnis von verifizierbaren Anmeldeinformationen ist für die Verwendung dieses Plugins erforderlich. MATTR, der derzeit vom Plugin unterstützte Hauptanbieter, hat einige Videos erstellt, die für die aktuellen Plugin-Optionen relevant sind:


Dieses Plugin ermöglicht es Ihnen, die Anmeldeinformationen eines Benutzers zu überprüfen, um ihm Zugriff auf Gruppen oder Abzeichen in Discourse zu gewähren. Die folgenden Abschnitte beschreiben die Konfiguration von Verifizierung, Gruppen und Abzeichen. Da das Plugin derzeit nur MATTR unterstützt, gehen die Anweisungen davon aus, dass Sie MATTR verwenden.

Verifizierer

Die Art der Verifizierer-Konfiguration, die Sie verwenden, hängt von der Art des Systems ab, mit dem Sie integrieren. Wenn Sie der Verifizierer sind und ein Discourse einrichten, das Sie kontrollieren, möchten Sie möglicherweise eine Callback-Verifizierung verwenden. Wenn Sie Teil eines Netzwerks sind, das auf einem einzigen Verifizierer basiert, d. h. Sie sind eine „Relying Party“, möchten Sie möglicherweise die OIDC-Verifizierung verwenden.

OIDC

Wenn Sie einen OIDC-Verifizierer verwenden (z. B. die MATTR Auth0 Integration), müssen Sie die folgenden Website-Einstellungen festlegen:

  • verifiable credentials oidc: true
  • verifiable credentials mattr verifier id: Die ID (nicht die DID) Ihres OIDC-Verifizierers
  • verifiable credentials mattr client id: Die Client-ID der OIDC-Client-Anwendung für Ihr Discourse (beachten Sie, dass dies nicht Ihre MATTR-Tenant-Client-ID ist)
  • verifiable credentials mattr client secret: Das Client-Geheimnis der OIDC-Client-Anwendung für Ihr Discourse (beachten Sie, dass dies nicht Ihr MATTR-Tenant-Client-Geheimnis ist)

Callback

Wenn Sie eine Standard-Callback-Verifizierung verwenden, müssen Sie die folgenden Website-Einstellungen festlegen:

  • verifiable credentials oidc: false
  • verifiable credentials mattr client id: Client-ID des MATTR-Tenants, auf dem der Verifizierer gehostet wird
  • verifiable credentials mattr client secret: Client-Geheimnis des MATTR-Tenants, auf dem der Verifizierer gehostet wird
  • verifiable credentials mattr messaging did: Eine DID mit keyType von ed25519

Gruppe

Sie können den Zugriff auf Gruppen über Claims in verifizierten Anmeldeinformationen gewähren. Das bedeutet, dass Sie den Zugriff auf verschiedene Gruppen in Ihrem Discourse selektiv gewähren können, abhängig von den Claims in den Anmeldeinformationen eines Benutzers. Um eine Gruppe für den Zugriff über verifizierbare Anmeldeinformationen einzurichten, gehen Sie zu „Verwalten“ > „Mitgliedschaft“ und legen Sie Folgendes fest:

  • Allow users to join by verifiable credentials: true

  • Show verifiable credentials button on this group to non members: (selbsterklärend)

  • Redirect users to url upon verification.: Wenn Sie beispielsweise eine Anmeldeinformation verwenden, um einem Benutzer den Zugriff auf eine Kategorie zu gewähren, auf die die Gruppe Zugriff hat, verwenden Sie dieses Feld, um den Benutzer nach Abschluss des Verifizierungsprozesses zur Kategorie zu leiten.

  • Cumulative list of claim(s) that grants access to this group. Format: key:value.: Beachten Sie, dass diese Liste kumulativ ist, d. h. ein Benutzer benötigt alle in seinen Anmeldeinformationen vorhandenen Claims, um Zugriff zu erhalten. Beispiel

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

Callback

Wenn Sie die Callback-Verifizierungsmethode verwenden, müssen Sie auch die Identifier of credential that grants access to this group auf die ID der Präsentationstemplate festlegen, die Sie für diese Gruppe verwenden möchten. Sie können für verschiedene Gruppen unterschiedliche Präsentationstemplates verwenden.

Abzeichen

Sie können Benutzern Abzeichen über Claims in verifizierten Anmeldeinformationen gewähren. Derzeit können Sie dies nur über die Header-Komponente tun (siehe unten). Die zu verwendende Website-Einstellung ist verifiable credentials header badges, die Einträge in diesem Format erfordert:

badge_id~~claim:value

Zum Beispiel

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

Sie können die ID eines Abzeichens aus der URL der Abzeichenseite abrufen, z. B.

/badges/9/autobiographer ## die Abzeichen-ID ist 9

Header

Sie können das Header-Dropdown des Plugins verwenden, um Benutzern den Zugriff auf mehrere Gruppen gleichzeitig zu gewähren oder sowohl Abzeichen als auch Gruppen gleichzeitig. Die relevanten Einstellungen sind:

  • verifiable credentials header: true
  • verifiable credentials header groups: eine Liste von Gruppennamen (jede Gruppe muss bereits konfiguriert sein; siehe oben)
  • verifiable credentials header badges: siehe oben
  • verifiable credentials header info url: die URL für einen „Weitere Informationen“-Link unten rechts im Dropdown.

Das Header-Symbol wird angezeigt, wenn der Benutzer kein Mitglied einer Gruppe ist, die in der Header-Präsentation enthalten ist, oder wenn ihm kein Abzeichen gewährt wurde, das in der Header-Präsentation enthalten ist. Wenn der Benutzer darauf klickt, werden die Ressourcen angezeigt, auf die er durch die Überprüfung seiner Anmeldeinformationen zugreifen kann.

Unterstützung

Dieses Plugin wird als Teil des Cooperative Credentials Project entwickelt und von ESSIF Lab im Rahmen der EU-Förderung unterstützt. Es wird später in diesem Jahr in der Produktion von mehreren Relying Parties im Cooperative Credentials-Netzwerk eingesetzt.

image              image

Zu erledigen

  • Unterstützung für gruppen-spezifische Abzeichen hinzufügen.
  • Benutzerauthentifizierung über verifizierbare Anmeldeinformationen unterstützen.
  • Zusätzliche Anbieter wie Evernym und Trinsic hinzufügen.
16 „Gefällt mir“

Dies ist eine rein technische Anmerkung, aber wenn Sie sich für die Standarddebatte darüber interessieren, was dieses Plugin (teilweise) tut (d. h. OIDC mit Verifiable Credentials integriert), dann ist dieser aktuelle Thread aus der Mailingliste der W3C CCG-Gruppe eine gute Lektüre (insbesondere die Diskussion zwischen Manu und Tobias (CTO von MATTR)).

(Ich wünschte, solche Diskussionen würden auf einer Discourse-Instanz stattfinden…)

6 „Gefällt mir“

Verstehe ich richtig, dass dieses Plugin nur als Konsument fungiert?

Ich frage mich, ob eine Instanz von Discourse als Anmeldeinformationsanbieter für eine andere Discourse-Instanz fungieren könnte.

Ja, das stimmt.

Nein, Sie benötigen einen externen Anbieter, z. B. einen, der https://mattr.global/ verwendet.

1 „Gefällt mir“