You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Moodle LTI Advantage自动注册:如何配置RSA公钥相关参数

Moodle LTI自动注册:设置RSA公钥并自动填充

要在Moodle LTI动态注册中指定「Public key type」为RSA key,并自动填充「Public key」字段,你需要在注册请求的JSON payload中添加public_jwk字段,该字段是符合JWK(JSON Web Key)规范的RSA公钥对象。

核心参数说明

public_jwk字段的结构必须包含以下RSA密钥属性:

  • kty: 固定为RSA,用于告诉Moodle这是RSA类型的公钥,对应界面上的「Public key type」设置。
  • e: RSA公钥的指数,通常取值为AQAB(对应十进制65537,是LTI标准推荐的默认值)。
  • n: RSA公钥的模值,需要以base64url编码(注意:不是普通Base64,需去掉=填充字符,替换+为-、/为_)。
  • alg: 指定签名算法,推荐使用RS256(SHA-256 with RSA),兼容Moodle的LTI 1.3验证机制。
  • use: 固定为sig,表示该密钥用于签名验证,符合LTI身份验证的用途。

完整注册请求示例

将public_jwk嵌入到动态注册的JSON请求体中,示例如下:

{
  "client_name": "你的LTI工具名称",
  "response_types": ["id_token"],
  "grant_types": ["client_credentials", "authorization_code"],
  "redirect_uris": ["https://your-tool-domain.com/lti/callback"],
  "public_jwk": {
    "kty": "RSA",
    "e": "AQAB",
    "n": "mZtXt8...(你的RSA公钥模值base64url编码)",
    "alg": "RS256",
    "use": "sig"
  },
  "scope": "openid",
  "token_endpoint_auth_method": "private_key_jwt"
}

传递方式

  1. 将上述JSON作为请求体,发送POST请求到Moodle的LTI动态注册端点(通常路径为/mod/lti/callback.php)。
  2. 请求头必须设置Content-Type: application/json。
  3. 确保请求使用HTTPS协议,Moodle默认会拒绝HTTP的动态注册请求。

注意事项

  • 推荐使用2048位或更长的RSA密钥对,避免因密钥长度不足被Moodle拒绝。
  • 如果你的公钥是PEM格式,可以通过OpenSSL命令转换为JWK格式,例如生成n值的base64url编码:
    openssl rsa -in public_key.pem -pubout -outform PEM | openssl rsa -pubin -outform DER | base64url
    
  • 确认token_endpoint_auth_method设置为private_key_jwt,这是LTI 1.3要求的验证方式,与RSA密钥搭配使用。

内容的提问来源于stack exchange,提问作者saladukha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 17:11:09