Discourse LTI permite que o Discourse se integre a vários sistemas de gestão de aprendizagem (LMS) por meio do padrão LTI 1.3.
Guia de Instalação
Este plugin já vem incluído no núcleo do Discourse. Não é necessário instalá-lo separadamente.
Este plugin implementa o padrão LTI 1.3 para autenticação, que é suportado por vários sistemas de gestão de aprendizagem. O Discourse atua como uma “Ferramenta” dentro do padrão LTI. Após a configuração, os usuários poderão clicar em um botão/link no sistema de gestão de aprendizagem e serão logados instantaneamente no Discourse.
As instruções exatas de configuração variarão dependendo do seu Sistema de Gestão de Aprendizagem. Mas, em geral:
Crie uma nova entrada de “Ferramenta” no seu sistema de gestão de aprendizagem
Versão LTI: 1.3
URL de Inicialização: qualquer URL do seu site. Os usuários serão redirecionados para lá após o login
URL da Solicitação de Autenticação: https://<seu-site-discourse>/auth/lti/initiate
URL de Redirecionamento: https://<seu-site-discourse>/auth/lti/callback
Chave Pública da Ferramenta - deixe em branco. O Discourse nunca envia dados para o LMS
No seu LMS, localize o “endpoint de autorização”, “ID do cliente da ferramenta”, “ID do emissor da plataforma” e a “Chave Pública da Plataforma”, e adicione-os às configurações do site relevantes no Discourse. No Discourse, as configurações podem ser encontradas pesquisando por lti na interface de configurações do site.
Se o seu sistema de gestão de aprendizagem garantir que os e-mails dos usuários foram validados, ative a configuração do site lti email verified. Aviso: Se o seu LMS não verificar e-mails, ativar lti email verified representa um risco de segurança.
Ative a configuração do site lti enabled
Se estas instruções não fizerem sentido para o seu LMS, por favor, poste no tópico abaixo e faremos o nosso melhor para atualizar as instruções de acordo.
E se o meu site exigir convite?
Se você deseja que seus usuários passem pelo fluxo de resgate de convites do Discourse ao fazerem o primeiro login, você pode usar “Propriedades Personalizadas” do LTI para especificar um link de convite do Discourse. Novos usuários serão redirecionados para o convite, enquanto usuários existentes serão enviados para a URL de inicialização regular. Por exemplo:
Sou um dos nossos administradores e também um engenheiro de software. Acho que o problema que estou tendo tem a ver com cookies e o “estado” entre o Discourse e o Canvas não estarem correspondendo.
Este é o erro que estou recebendo nos logs do Discourse:
(lti) Falha na autenticação! state_mismatch: StandardError, O parâmetro State não correspondeu à sessão
Há uma seção “Launching without Cookies” que acho que é relevante aqui. Mas não tenho 100% de certeza. Qualquer ajuda ou insight seria muito apreciado.
Para a chave pública, você pode navegar até https://\u003cyour_canvas_url\u003e/api/lti/security/jwks e copiar a segunda chave. Em seguida, você pode ir para https://8gwifi.org/jwkconvertfunctions.jsp e colar lá e converter. Em seguida, copie o texto entre-----BEGIN/END PUBLIC KEY----- e cole isso na Chave pública da plataforma Lti nas configurações do LTI do Discourse. Em seguida, salve.
Aqui está a ressalva. Esses JWKs que o Canvas gera são rotacionados, aparentemente mensalmente. Assim que essa segunda chave mudar, o LTI quebrará e você precisará substituí-la pela nova, seguindo o Passo 3.
O plugin LTI do Discourse terá que suportar uma URL JWK Pública para se manter atualizado.
Este plugin agora está incluído no core do Discourse como parte de Bundling more popular plugins with Discourse core. Se você auto-hospeda e usa o plugin, precisa removê-lo do seu app.yml antes da sua próxima atualização.