首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为canvas创建jwk密钥?

如何为canvas创建jwk密钥?
EN

Stack Overflow用户
提问于 2020-11-17 00:58:59
回答 2查看 190关注 0票数 0

在canvas中,为了让LTI应用程序进行身份验证,站点管理员必须输入远程站点的JWK。JWK的格式定义良好:

代码语言:javascript
复制
{
"kty":"RSA",
"kid":"...",
"use":"sig",
"alg":"RS256",
"n":"u6gqiV...",
"e":"AQAB"
} 

首先,我们能否使用openssl这样的工具,创建一个密钥,并从中生成一个JWK?目前,我们正在使用jose4j编写代码来实现这一点,但甚至还不清楚这是否有必要。

其次,Canvas需要一些可选字段,如kid、alg和use。我们猜测use应该是"sig",我们构造了kid:"1“,并猜测了alg:"RS256”

有没有一个可以访问的地方(即不在IMSGlobal的付费墙后面)来定义这应该是什么?它是标准的还是特定于Canvas的?

EN

回答 2

Stack Overflow用户

发布于 2020-12-16 05:03:44

我们又见面了--几个月来我一直在倾注LTI规范,我想看看我是否能让其他人省去一些头疼的事情。

您可能熟悉验证模式,其中使用SSL工具同时生成相互纠缠的公钥和私钥。公钥用于对有效载荷进行签名,由于有效载荷本身是创建签名的一个因素,因此在不使其无效的情况下,无法对其进行拦截和恶意更改。接收者被给予公钥,用于验证有效负载是否干净。

JWK的作用与公钥相同。唯一的区别是,开发人员不需要提前通过电子邮件将其发送给接收方应用程序的it团队。JWT有效负载的接收者可以按需检索它,它所需要知道的就是询问什么URI。这意味着密钥实际上可以由发送者替换,而不会破坏任何功能。

正如我在其他地方提到的,在这个问题上更合适的是:

此安全步骤类似于从您的银行收到一封电子邮件,而不是单击其中的潜在垃圾邮件链接,而是直接致电您的银行,以确保电子邮件处于同一级别。

现在,发送方的JWKS端点并不真正提前知道谁将联系它,并且可能希望为多个其他实体提供服务,因此它实际上可能会提供一组公钥来覆盖所有基础。接收者当然只关心与它刚接收到的有效负载相关的那个,所以在JWK信号中是一个“孩子”,它可以与那些数组元素中的“孩子”相匹配,与相关的键相关联。

如何创建JWK?Go here。依赖项列在顶部,它们可能在幕后使用openssl。

票数 1
EN

Stack Overflow用户

发布于 2021-05-15 03:52:44

JWK是一种在工具和平台之间交换公钥的方法,并允许每一方控制其密钥的轮换。JWKs is a managed ietf standard.的格式

LTI1.3基于OIDC第三方启动流程,而OIDC第三方启动流程又基于OAuth2之上。但是,要将您的应用程序与LTI 1.3集成,并不需要具备这些规范的完整工作知识。IMS整理了一组code examples on github,可能会帮助您入门。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64862315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档