MoodleとLTIの接続

@david David さん、設定インスタンスを共有していただけますか?Discourse と Moodle 3.10 の統合を試みましたが、まだ成功していません。常に以下のエラーが表示されます:

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'

「プラットフォーム公開鍵」設定に何を入力しましたか?私の記憶が正しければ、Moodle はデフォルトで JWKS URL を提供しますが、このプラグインはそれをサポートしていません。

どこかに生証明書が見つかるはずです。それをコピーして Discourse に貼り付けることができます。

@david 返信ありがとうございます。はい、Moodle で表示されたのは Public keyset URL: https://mysiet.com/mod/lti/certs.php です。
この URL をブラウザで開くと、以下のように表示されます。

{
    "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"
        }
    ]
}

JSON の値のうち「n」の項目(最も長いもの)をコピーして Discourse に貼り付けましたが、エラーは同じままです。

n 値をコピーするだけでは不十分だと思います。Discourse には PEM 形式のキーが必要です。長期的には JWKs のサポートを追加できる可能性がありますが、短期的にはキーを変換することで動作させることができます。

JWKs 形式から PEM 形式へ変換できるオンラインツールがいくつかあります。こちら がその一例です(もちろん、これらのオンラインツールの安全性を保証することはできませんので、公開情報だけを貼り付けるようにしてください)。

PEM(-----BEGIN PUBLIC KEY----- で始まる形式)を取得すれば、Discourse が受け付けるはずです。