概要: Discourse でグループやバッジへのアクセスを許可するために Verifiable Credentials を使用します。
GitHub: https://github.com/coopcreds/discourse-verifiable-credentials
インストール: プラグインのインストールガイドに従ってください。
デモ
以下のリンクの手順に従って、このプラグインを自分で試すことができます。「Cooperative Credential」が発行され、それを使用してグループへのアクセス権を取得し、cooperative credentials Discourse インスタンスでバッジを付与されます。この認証情報はテスト目的のみであり、予告なく取り消される可能性があることに注意してください。
プロバイダー
現在、このプラグインは以下の検証可能な認証情報プロバイダーをサポートしています。
| プロバイダー | 検証タイプ | サポート |
|---|---|---|
| MATTR | OIDC | はい |
| MATTR | コールバック | はい |
| Verifiable Credentials Ltd | - | 部分的 |
このプラグインは、あらゆるプロバイダーをサポートするように構築されていますが、追加のプロバイダーを追加するには実装作業が必要です。別のプロバイダーを追加したい場合は、お問い合わせください。
設定
このプラグインを使用するには、検証可能な認証情報に関するいくつかの理解が必要です。MATTR は、現在プラグインでサポートされている主要なプロバイダーであり、関連するビデオがいくつかあります。
このプラグインを使用すると、ユーザーの認証情報を検証して、Discourse のグループまたはバッジへのアクセス権を付与できます。以下のセクションでは、検証、グループ、バッジの設定について説明します。このプラグインは現在 MATTR のみをサポートしているため、手順は MATTR を使用することを前提としています。
検証者
使用する検証者設定の種類は、統合するシステムの種類によって異なります。検証者であり、自身が管理する Discourse を設定している場合は、コールバック検証を使用したい場合があります。単一の検証者に依存するネットワークの一部である場合、つまり「信頼できる当事者」である場合は、OIDC 検証を使用したい場合があります。
OIDC
OIDC 検証者を使用する場合(たとえば、MATTR Auth0 Integration を使用している場合)、次のサイト設定を設定する必要があります。
verifiable credentials oidc: trueverifiable credentials mattr verifier id: OIDC 検証者の ID(DID ではない)verifiable credentials mattr client id: Discourse 用の OIDC クライアントアプリケーションのクライアント ID(MATTR テナントのクライアント ID ではないことに注意)verifiable credentials mattr client secret: Discourse 用の OIDC クライアントアプリケーションのクライアントシークレット(MATTR テナントのクライアントシークレットではないことに注意)
コールバック
標準のコールバック検証を使用する場合は、次のサイト設定を設定する必要があります。
verifiable credentials oidc: falseverifiable credentials mattr client id: 検証者がホストされている MATTR テナントのクライアント IDverifiable credentials mattr client secret: MATTR テナントのクライアントシークレットverifiable credentials mattr messaging did:keyTypeがed25519の DID
グループ
検証可能な認証情報内のクレームを使用してグループへのアクセスを許可できます。これは、ユーザーの認証情報内のクレームに応じて、Discourse のさまざまなグループへのアクセスを選択的に許可できることを意味します。グループに検証可能な認証情報経由でアクセスできるように設定するには、「管理」 > 「メンバーシップ」に移動し、以下を設定します。
-
Allow users to join by verifiable credentials: true -
Show verifiable credentials button on this group to non members: (説明不要) -
Redirect users to url upon verification.: たとえば、認証情報を使用してユーザーにカテゴリへのアクセス権を付与する場合、このフィールドを使用して、検証プロセスが完了したときにユーザーをカテゴリにリダイレクトします。 -
Cumulative list of claim(s) that grants access to this group. Format: key:value.: このリストは累積的であることに注意してください。つまり、ユーザーはアクセス権を取得するために、認証情報に存在するすべてのクレームを必要とします。例https://coopcreds.com/cooperativeMembershipType:member https://coopcreds.com/cooperative:pavilion
コールバック
コールバック検証方法を使用している場合は、そのグループに使用したいプレゼンテーションテンプレートの ID を Identifier of credential that grants access to this group に設定する必要があります。グループごとに異なるプレゼンテーションテンプレートを使用できます。
バッジ
検証可能な認証情報内のクレームを使用して、ユーザーにバッジを付与できます。現在、ヘッダーコンポーネント(下記参照)を使用してのみこれを行うことができます。使用するサイト設定は verifiable credentials header badges で、次の形式のエントリが必要です。
badge_id~~claim:value
例
34~~https://coopcreds.com/cooperativeMembershipType:member
バッジの ID は、バッジのページの URL から取得できます。例:
/badges/9/autobiographer ## バッジ ID は 9
ヘッダー
プラグインのヘッダードロップダウンを使用して、複数のグループに一度にアクセスを許可したり、バッジとグループの両方に同時にアクセスを許可したりできます。関連する設定は次のとおりです。
verifiable credentials header: trueverifiable credentials header groups: グループ名のリスト(各グループは既に設定されている必要があります。上記参照)verifiable credentials header badges: 上記参照verifiable credentials header info url: ドロップダウンの右下にある「詳細はこちら」リンクの URL。
ヘッダーアイコンは、ユーザーがヘッダープレゼンテーションに含まれるグループのメンバーでない場合、またはヘッダープレゼンテーションに含まれるバッジを付与されていない場合に表示されます。ユーザーがそれをクリックすると、認証情報を検証することでアクセスできるリソースが表示されます。
サポート
このプラグインは、EU 資金による ESSIF Lab によってサポートされている Cooperative Credentials Project の一部として構築されています。今年後半に稼働する Cooperative Credentials ネットワークの複数の信頼できる当事者によって本番環境で使用されます。
Cooperative Credentials Project
ESSIF Lab