fishfree
(Fishfree)
1
@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'
david
(David Taylor)
2
「プラットフォーム公開鍵」設定に何を入力しましたか?私の記憶が正しければ、Moodle はデフォルトで JWKS URL を提供しますが、このプラグインはそれをサポートしていません。
どこかに生証明書が見つかるはずです。それをコピーして Discourse に貼り付けることができます。
fishfree
(Fishfree)
3
@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 に貼り付けましたが、エラーは同じままです。
david
(David Taylor)
4
n 値をコピーするだけでは不十分だと思います。Discourse には PEM 形式のキーが必要です。長期的には JWKs のサポートを追加できる可能性がありますが、短期的にはキーを変換することで動作させることができます。
JWKs 形式から PEM 形式へ変換できるオンラインツールがいくつかあります。こちら がその一例です(もちろん、これらのオンラインツールの安全性を保証することはできませんので、公開情報だけを貼り付けるようにしてください)。
PEM(-----BEGIN PUBLIC KEY----- で始まる形式)を取得すれば、Discourse が受け付けるはずです。