问题标签 [jwk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3971 浏览

jakarta-ee - 如何使用 JWE 生成 JWT/JWS

我正在开发一个 j2ee 身份验证/授权系统。我想使用 JWT 令牌,使用 JWS 对有效负载进行签名并使用 JWE 对其进行加密。

我从 bitbuckets jose4j 找到了一个不错的教程

此示例显示他们使用 EllipticCurveJsonWebKey 生成 JWK。我不明白如何将其用于身份验证/授权。您不需要将密钥存储在属性文件或 JNDI 条目中,然后使用该密钥对 JWT 进行签名/加密吗?这样,当我收到一个 http 请求时,我可以使用相同的密钥来验证 JWT。我发现的大多数教程都使用了类似的示例。

这怎么能用相同的服务器端密钥来完成呢?

0 投票
1 回答
950 浏览

java - 如何使用 jose.4.j 输出 JWK 设置端点?

我可以看到如何使用jose.4.jKey创建新的 s,但我想知道如何获取它们的数组并输出可公开访问的 JSON 列表,以用作 OiDC 中发现端点的一部分。像IETF 草案示例之类的东西......

我想我缺少一些明显的东西toString(),比如不显示私钥的东西?

0 投票
1 回答
805 浏览

node.js - NODE.JS 中的 JWE(JSON Web 加密)

我正在尝试为我的 Rest API 实现 JWE。我遇到了以下实现 JWE 的 NODE 库。但是,该库缺少有关如何使用 JSON Web 密钥(JWK)(JSON 对象)的文档,这些文档有助于密钥管理模式。JWE文档内容如下:

一种确定要使用的内容加密密钥值的方法。用于确定 CEK 值的每种算法都使用特定的密钥管理模式。本规范采用的密钥管理模式是密钥加密、密钥包装、直接密钥协议、带密钥包装的密钥协议和直接加密。

所以我想知道我应该如何将 JWK 提供给这个库以实现 JWE ?我想知道我的 JSON 格式将如何决定密钥管理模式?任何人都可以为 JWK 提供这种 JSON 格式并告诉它如何提供密钥管理模式吗?

节点何塞

0 投票
5 回答
37754 浏览

openssl - 如何将 JWK 中的公钥转换为 OpenSSL 的 PEM?

RFC 中有一个 RSA 密钥:

https://www.rfc-editor.org/rfc/rfc7516#appendix-A.1

我试过了jwk-to-pem

https://stackoverflow.com/a/35995690/4742108

还必须将“RSA PUBLIC KEY”替换为“PUBLIC KEY”。

该命令openssl rsa -inform PEM -pubin给出:

如何获得可用的密钥?

0 投票
2 回答
1124 浏览

ecdsa - 如何对 JWK 进行指纹识别?

是否有为 JWK 创建指纹(又名指纹)的标准规范方法?

从我正在阅读的内容来看,该标准似乎没有定义kid应该如何指定 a ,我觉得这很奇怪。对我来说,最重要的是让它成为一个确定性值,而不是一个需要查找表的值,这样其他人就可以通过拥有公钥轻松地重新创建密钥 ID。

我知道 SSH 指纹和 X.509 指纹是标准化的,但对于使用 JWK 的所有环境(尤其是浏览器)来说,它们似乎并不是一个合适的解决方案,因为它们对于幼稚的实现和包括能够操作的库来说太复杂了这样(即伪造)会浪费大量内存、带宽和 vm 编译时间。

更新

官方称它为“指纹”而不是“指纹”。

0 投票
1 回答
1740 浏览

npm - 使用公共 PEM 或 SSLeay 密钥响应本机 RSA 加密

我正在尝试为 react-native 找到一个有效的 JavaScript 库,它将允许 PEM 格式的 RSA 公钥加密。

我不是加密专家,只是从 react-native 开始,所以如果我碰巧错过了一些明显的东西,请原谅。

到目前为止,我已经尝试 了本文推荐的react-native- rsareact-native-rsa-util

我无法让 react-native-rsa-util 工作,并且 react-native-rsa 似乎不接受公共 PEM 密钥,而只接受 JWK 格式的密钥。

我不愿意使用 JWK 格式的唯一原因是我找不到可以使用 JWK 密钥解密传入消息的 PHP 库。

我将非常感谢任何帮助/指示。

非常感谢

0 投票
1 回答
1135 浏览

node.js - 使用 njwt 针对 JWK 集验证 AWS Cognito JWT IDToken

我试图弄清楚如何验证从 AWS Cognito Identity authenticateUser 调用获得的用户 IDToken。

按照此处找到的步骤:https ://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html#amazon-cognito-identity- user-pools-using-id-and-access-tokens-in-web-api我能够达到我拥有用户 ID 令牌的地步,并且我已经解码了标题和正文。

给定一个 IDToken,这就是我的标题和正文的样子:

标题:

身体:

那么IDToken的第三部分就是签名:

我坚持的部分实际上是根据我的签名密钥验证签名。我似乎无法让这部分工作。现在我正在尝试使用njwt此处找到的节点模块:https ://www.npmjs.com/package/njwt 。

IDToken以 3 部分.分隔的 base64 编码字符串和secretKey以下 Javascript 对象的形式给出:

这是我用njwtnode 模块尝试过的:

当我以这种方式尝试时,我得到:

所以我想也许我需要通过secretKey.n而不是secretKey像这样:

当我以这种方式尝试时,我得到:

其次是我的console.log(err);

我应该如何通过secretKey?应该secretKey是什么,应该是什么样子?老实说,我什至不确定会发生什么njwt.verify

0 投票
2 回答
218 浏览

openid-connect - OpenID 连接提供者,支持 HMAC 而不是 RSA,如何在没有 jwks_uri 的情况下符合?

我正在实现一个 OpenID 连接提供程序,但我在规范中看不到任何要求特定签名算法的内容。这意味着我应该能够只实现 HMAC/HS256 而不必为使用证书而烦恼。那正确吗?

如果是这样,为什么 jwks_uri 在元数据中是强制性的?

0 投票
1 回答
206 浏览

jwt - JOSE4J 是否会通过 OpenID Connect 发现文档支持 JWKS 密钥验证

JOSE4J 将 jwks_uri 作为其 JWT 验证的起点,我想知道是否可以支持 Discovery Document 作为起点,JOSE4J 将从那里获取 jwks_uri,然后转到 JWKS 密钥文档以选择公钥通过孩子匹配智威汤逊。这样我只需要在我的代码中硬编码发现文档 uri,因为我有点担心 jwks_uri 是否会在没有通知的情况下更改,据我所知,wellknow 发现文档是固定的。

这就是它现在的工作方式:

也许让解析器识别发现文档 uri 是否被传入并相应地表现会很好。

谢谢!

0 投票
0 回答
639 浏览

python - 在 Python 中使用 JSON Web 密钥验证访问令牌

我们从客户的服务器获取 JSON 网络密钥,如下所示(密钥字段已更改):

在我们的 Web 应用程序中,我们收到一个类似这样的令牌,我们需要根据上面的密钥进行验证。该令牌是使用相同的 JSON Web 密钥从某个外部应用程序签署的。访问令牌如下所示:

我查看了 Python 的“jose”模块

http://python-jose.readthedocs.io/en/latest/jwk/index.html

但是,该示例在 Python 3 中失败(TypeError: Can't convert 'bytes' object to str implicitly)-> 提交错误报告。

是否有任何其他选项或模块可用于使用 RSA 针对 JSON Web 密钥验证此令牌?