摘要: 使用 可验证凭证 为 Discourse 中的群组和徽章授予访问权限。
GitHub: https://github.com/coopcreds/discourse-verifiable-credentials
安装: 遵循 插件安装指南。
演示
您可以按照下面的链接中的步骤自行试用此插件。您将获得一个测试“合作凭证”,然后可以使用它来获得群组访问权限,并在合作凭证 Discourse 实例上获得徽章。请注意,凭证仅供测试之用,可能会在恕不另行通知的情况下被撤销。
提供商
该插件目前支持以下可验证凭证提供商。
| 提供商 | 验证类型 | 支持 |
|---|---|---|
| MATTR | OIDC | 是 |
| MATTR | 回调 | 是 |
| Verifiable Credentials Ltd | - | 部分 |
该插件旨在支持任何提供商,但添加其他提供商确实需要一些实现工作。如果您想添加其他提供商,请联系我们。
配置
使用此插件需要对可验证凭证有一定的了解。MATTR 是该插件目前支持的主要提供商,他们制作了一些与当前插件选项相关的视频:
此插件允许您验证用户的凭证,以便让他们在 Discourse 中访问群组或徽章。以下各节将介绍验证、群组和徽章的配置。由于该插件目前仅支持 MATTR,因此说明假定您正在使用 MATTR。
验证器
您使用的验证器配置类型将取决于您所集成的系统类型。如果您是验证者并正在设置您自己控制的 Discourse,那么您可能希望使用 回调验证。如果您是依赖于单个验证器的网络的一部分,即您是“依赖方”,那么您可能希望使用 OIDC 验证。
OIDC
如果您正在使用 OIDC 验证器(例如,您正在使用 MATTR Auth0 集成),则需要设置以下站点设置:
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 租户客户端密钥)
回调
如果您正在使用标准的 callback 验证,则需要设置以下站点设置:
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
回调
如果您正在使用回调验证方法,那么您还必须将“Identifier of credential that grants access to this group”设置为您要用于该群组的演示模板的 ID。您可以为不同的群组使用不同的演示模板。
徽章
您可以使用已验证凭证中的声明向用户授予徽章。目前,您只能使用标题组件(见下文)来执行此操作。要使用的站点设置是 verifiable credentials header badges,它需要以下格式的条目:
badge_id~~claim:value
例如
34~~https://coopcreds.com/cooperativeMembershipType:member
您可以从徽章页面的 URL 中获取徽章的 ID,例如:
/badges/9/autobiographer ## 徽章 ID 为 9
标题
您可以使用插件的标题下拉菜单一次授予用户对多个群组的访问权限,或者同时授予徽章和群组的访问权限。相关设置是:
verifiable credentials header: trueverifiable credentials header groups: 群组名称列表(每个群组必须已配置;见上文)verifiable credentials header badges: 见上文verifiable credentials header info url: 下拉菜单右下角“了解更多”链接的 URL。
如果用户不是包含在标题演示中的群组的成员,或者尚未获得包含在标题演示中的徽章,则标题图标将显示出来。当用户单击它时,它将显示他们可以通过验证其凭证来访问的资源。
支持
此插件是 Cooperative Credentials Project 的一部分,该项目由欧盟资助的 ESSIF Lab 支持。今年晚些时候,当合作凭证网络上线时,它将被多个依赖方投入生产使用。