Resumo: Use Credenciais Verificáveis para conceder acesso a grupos e distintivos no Discourse.
GitHub: https://github.com/coopcreds/discourse-verifiable-credentials
Instalar: Siga o guia de instalação de plugins.
Demonstração
Você pode experimentar este plugin seguindo as etapas no link abaixo. Você receberá uma “Credencial Cooperativa” de teste que poderá usar para obter acesso a um grupo e receber um distintivo na instância do Discourse de credenciais cooperativas. Observe que a credencial é apenas para fins de teste e pode ser revogada sem aviso prévio.
Provedores
Atualmente, o plugin oferece suporte aos seguintes provedores de credenciais verificáveis.
| Provedor | Tipo de Verificação | Suportado |
|---|---|---|
| MATTR | OIDC | Sim |
| MATTR | Callback | Sim |
| Verifiable Credentials Ltd | - | Parcialmente |
O plugin é construído para suportar qualquer provedor, mas adicionar provedores adicionais requer algum trabalho de implementação. Se você quiser adicionar outro provedor, entre em contato.
Configuração
É necessário algum entendimento de credenciais verificáveis para usar este plugin. A MATTR, o principal provedor suportado pelo plugin atualmente, fez alguns vídeos que são relevantes para as opções atuais do plugin:
Este plugin permite verificar a credencial de um usuário para dar a ele acesso a um ou mais grupos ou distintivos no Discourse. As seções abaixo detalham a configuração de verificação, grupo e distintivo. Como o plugin atualmente suporta apenas MATTR, as instruções assumem que você está usando MATTR.
Verificador
O tipo de configuração de verificador que você usa dependerá do tipo de sistema com o qual você está integrando. Se você é o verificador e está configurando um Discourse que você controla, talvez queira usar uma verificação de callback. Se você faz parte de uma rede que depende de um único verificador, ou seja, você é uma “Parte Confiável”, talvez queira usar a verificação OIDC.
OIDC
Se você estiver usando um Verificador OIDC (por exemplo, você está usando a Integração MATTR Auth0), você precisa definir as seguintes configurações do site:
verifiable credentials oidc: trueverifiable credentials mattr verifier id: O ID (não o DID) do seu Verificador OIDCverifiable credentials mattr client id: O ID do cliente da Aplicação Cliente OIDC para o seu Discourse (observe que este não é o ID do cliente do seu tenant MATTR)verifiable credentials mattr client secret: O segredo do cliente da Aplicação Cliente OIDC para o seu Discourse (observe que este não é o segredo do cliente do seu tenant MATTR)
Callback
Se você estiver usando uma verificação de callback padrão, você precisa definir as seguintes configurações do site:
verifiable credentials oidc: falseverifiable credentials mattr client id: ID do cliente do tenant MATTR onde o verificador está hospedadoverifiable credentials mattr client secret: Segredo do cliente do tenant MATTR onde o verificador está hospedadoverifiable credentials mattr messaging did: Um DID usandokeyTypedeed25519
Grupo
Você pode conceder acesso a grupos usando declarações em credenciais verificadas. Isso significa que você pode conceder seletivamente acesso a diferentes grupos em seu Discourse, dependendo das declarações na credencial de um usuário. Para configurar um grupo para ser acessado via credenciais verificáveis, vá em “Gerenciar” > “Associação” e defina o seguinte:
-
Allow users to join by verifiable credentials: true -
Show verifiable credentials button on this group to non members: (autoexplicativo) -
Redirect users to url upon verification.: Por exemplo, se você estiver usando uma credencial para dar a um usuário acesso a uma categoria à qual o grupo tem acesso, use este campo para enviar o usuário para a categoria quando o processo de verificação for concluído. -
Cumulative list of claim(s) that grants access to this group. Format: key:value.: Observe que esta lista é cumulativa, o que significa que um usuário precisará de todas as declarações presentes em sua credencial para obter acesso. Exemplohttps://coopcreds.com/cooperativeMembershipType:member https://coopcreds.com/cooperative:pavilion
Callback
Se você estiver usando o método de verificação de Callback, você também deve definir o Identifier of credential that grants access to this group para o ID do template de apresentação que você deseja usar para esse grupo. Você pode usar diferentes templates de apresentação para diferentes grupos.
Distintivo
Você pode conceder distintivos a usuários usando declarações em credenciais verificáveis. Atualmente, você só pode fazer isso usando o componente de cabeçalho (veja abaixo). A configuração do site a ser usada é verifiable credentials header badges, que requer entradas neste formato:
badge_id~~claim:value
Por exemplo
34~~https://coopcreds.com/cooperativeMembershipType:member
Você pode obter o ID de um distintivo a partir do URL da página do distintivo, por exemplo:
/badges/9/autobiographer ## o ID do distintivo é 9
Cabeçalho
Você pode usar o menu suspenso de cabeçalho do plugin para conceder acesso a vários grupos de uma vez, ou distintivos e grupos ao mesmo tempo. As configurações relevantes são:
verifiable credentials header: trueverifiable credentials header groups: uma lista de nomes de grupos (cada grupo já deve estar configurado; veja acima)verifiable credentials header badges: veja acimaverifiable credentials header info url: o URL para um link “saiba mais” no canto inferior direito do menu suspenso.
O ícone do cabeçalho aparecerá se o usuário não for membro de um grupo incluído na apresentação do cabeçalho, ou não tiver recebido um distintivo incluído na apresentação do cabeçalho. Quando o usuário clicar nele, ele exibirá os recursos aos quais pode ter acesso verificando suas credenciais.
Suporte
Este plugin é construído como parte do Cooperative Credentials Project, que é apoiado pelo ESSIF Lab financiado pela UE. Ele será usado em produção por várias partes confiáveis na rede Cooperative Credentials quando for lançado no final deste ano.