Conectando Moodle ao LTI

@david David, você poderia compartilhar uma instância de configuração comigo? Tentei várias vezes integrar o Discourse com o Moodle 3.10, mas sem sucesso. Sempre aparece:

OpenSSL::PKey::RSAError (Neither PUB key nor PRIV key: nested asn1 error)
lib/middleware/omniauth_bypass_middleware.rb:50:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:355:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:187:in `call'

O que você inseriu na configuração “chave pública da plataforma”? Se eu me lembro bem, o Moodle fornece uma URL JWKS por padrão, que este plugin não suporta.

Deve ser possível encontrar o certificado bruto em algum lugar, que você pode copiar e colar no Discourse.

@david Obrigado por responder. Sim, no Moodle, foi exibido Public keyset URL: https://mysiet.com/mod/lti/certs.php.
Abri essa URL no navegador e ela apareceu conforme abaixo:

{
    "keys": [
        {
            "kty": "RSA",
            "alg": "RS256",
            "kid": "1371e22ce81f1dbb936a",
            "e": "AQAB",
            "n": "xXOfRS1UronVdVUEal0jyIhyNkAcbCRb6K2uzLsoQgRAaqA2ixbshCTWW_Yj-ZoJgg7UoruO65TB5EIldMyPJbYjYoMF0rB5a-wcvEhtWxfLs8FsDNLM9czjYXZUXBJ6sxIGNp-9Wp4c6PaecvXDfc4bJoHU8Ee5WzUk2XuX8dXX4jx8ipwzRa8qaQT-0cIPnZw4LmkPiTgn-gA-LuqjG2w9awwjnWTuZbTNPTphgPO9FD4lD_dAY3biURU_lEyJXflqFYwbrpja-b8y23qixwiHEYsM3_2F5D-DrI3Nsty219-ALDmJ0wY1hnr4p2NfwYZr_d2YjpIiJW_8iW3SRQ",
            "use": "sig"
        }
    ]
}

Copiei o valor de “n” no JSON (o mais longo) para o Discourse, mas o erro persiste.

Acho que copiar apenas o valor n não será suficiente — o Discourse precisa da chave no formato PEM. A longo prazo, talvez seja possível adicionar suporte a JWKs, mas, a curto prazo, você deve conseguir fazer funcionar convertendo a chave.

Existem algumas ferramentas online que convertem do formato JWK para PEM. Aqui está uma. (Obviamente, não posso garantir a segurança dessas ferramentas online, então certifique-se de inserir apenas informações públicas nelas.)

Depois que você tiver a chave no formato PEM (começando com -----BEGIN PUBLIC KEY-----), o Discourse deverá aceitá-la.