Solicitação de recurso: Permitir acesso seguro à API das configurações do site sem uma chave de nível administrador

Como eu entendo, exigir acesso de administrador para /site/settings.json e algumas informações em /site.json é um comportamento esperado do Discourse.

A Discussion Bridge e integrações semelhantes precisam de um conjunto limitado de informações de configuração do site para diagnósticos de rotina, planejamento e sincronização. Atualmente, isso pode exigir o uso de uma chave de API associada a um administrador. Uma chave de administrador de somente leitura impede gravações, mas ainda pode expor tudo o que o administrador pode ler. Uma chave de administrador global carrega um risco desnecessariamente grande para operações diárias de máquinas.

O Discourse poderia fornecer:

  • Um escopo de chave de API granular que dê aos usuários de integração não administradores acesso de leitura a um subconjunto apropriado e seguro de /site.json e /site/settings.json; ou
  • Um endpoint separado contendo as informações de configuração não sensíveis que as integrações normalmente precisam?

O Discourse já suporta chaves de API de usuário para usuários comuns, mas isso não resolve este caso: uma chave só pode exercer permissões que o usuário associado já possui. Portanto, a solicitação é especificamente por autorização não administradora segura para os dados limitados de configuração do site que as integrações precisam — não simplesmente outra maneira de gerar uma chave.

O objetivo não é expor configurações administrativas privadas. É permitir que uma conta de integração não administradora autorizada inspecione a estrutura do site e as configurações operacionais de que precisa sem exigir credenciais de nível de administrador de rotina.

Isso reduziria o risco de credenciais, apoiaria integrações de menor privilégio e facilitaria a operação segura de ferramentas duradouras de máquina para máquina.

Contexto: Confirming API Access to Authoring Limit Site Settings

3 curtidas

+1 enorme para isso!

Nossa organização tem membros que adorariam poder ajudar, mas para implementar o que eles se ofereceram para ajudar, seria necessário que eles tivessem acesso de administrador. Isso torna muito difícil fornecer todos os recursos e serviços que poderíamos muito bem implementar se apenas tivéssemos uma maneira de delimitar permissões e acessos de forma mais granular. Precisamos ser muito restritivos sobre como concedemos acesso por uma série de razões, o que aumenta a pressão sobre os administradores para “fazerem todas as coisas”, quando existem configurações de site não destrutivas que alguns de nossos membros poderiam facilmente ajudar a gerenciar… mas eles não podem.

Obrigado por postar isso!

2 curtidas

Você poderia ser mais específico sobre quais configurações exatas do site?

O acesso irrestrito somente para leitura a todas as configurações do site parece um pouco uma solução bruta e incluiria algumas muito sensíveis, incluindo as chaves SaaS.

Você poderia criar um plugin com acesso somente para leitura por grupo a um conjunto específico nomeado de configurações do site?

Isso seria um plugin relativamente pequeno.

Você está me perguntando ou à @jenmck?

É exatamente o que a falta de acesso para usuários não administradores faz com que o método normal não funcione, daí minha solicitação. :slight_smile:

A você.

Não entendi o que você quis dizer :confused: poderia reformular?

1 curtida

O objetivo é realizar o trabalho de integração, acessando e configurando as definições necessárias sem usar uma chave de escopo global utilizada por um usuário administrador ou uma chave de escopo granular usada por um usuário administrador.
A chave de escopo granular é menos útil para limitar o acesso se eu ainda tiver que vinculá-la a um usuário administrador. Espero que isso ajude.

Sua sugestão de usar um plugin é uma boa, no entanto, não quero um plugin com o conjunto de funcionalidades atual. Não quero que o usuário do Astro precise instalar um plugin para se conectar ao Discourse.

O que é isso e a quais configurações ele precisa de acesso exatamente?

O que é um usuário Astro?