问题标签 [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 回答
4788 浏览

java - com.nimbusds.jose.RemoteKeySourceException:无法检索远程 JWK 集:主机名验证失败

我正在使用 Nimbus-JOSE-JWT 库(版本 4.39)。使用这个库,我正在尝试进行本地 JWT 令牌验证,该验证从 OAuth 授权服务器中拉下 JWK 集。

我的代码在 JSE 应用程序中运行时运行良好,但是,当我在 WebLogic 12.1.3 中运行完全相同的代码(作为 JEE 应用程序的一部分)时,它无法运行,但出现以下异常:

下面是我在代码中的 Maven 依赖项:

任何帮助都感激不尽。

谢谢。

0 投票
1 回答
751 浏览

jwt - 如何使用 JWSVerifier 验证字符串

新手JWT 我想验证我的字符串令牌,生成如下

String productkey:这是签名和编码的格式。

String publickey:从模拟器生成密钥并存储为字符串

请建议我必须使用哪种合适的方法。

0 投票
1 回答
156 浏览

openssl - 从 RSA 密钥对中获取参数

我想生成一个 RSA 密钥对并记录公钥参数(模数和指数,n 和 e),从现有的一组密钥(以 der 格式)中获取参数,或者从我自己的参数生成一个公钥对。

试图用 Crypto++ 做第一个,但它吐出的 ders 被 openssl 报告为无效。今晚没有帮助 Crypto++ wiki 和文档页面也关闭了!

然后,我尝试通过使用 Crypto++ 制作的一些随机密钥参数来研究在 openssl 中生成密钥对的方法,但几个小时后,我仍然无法破解所有命令行参数。

这并不意味着是一个安全的密钥,它只是一个适用于我的项目中的一些单元测试的工作,它从 JWK 获取公钥作为 (n,e) 对,并且需要验证它实际上可以正确验证签名。但要做到这一点,我需要私有 der 和公共(n,e),并且必须有一种比尝试使用其中一个 openssl 包装器库更简单的方法来仅在生成密钥对时记录密钥参数。

0 投票
1 回答
1382 浏览

python-3.x - Python 3.6 - 导入 RSA 密钥时出现 JWCrypto 错误

虽然这个问题之前已经被问过并在(JWT encrypting payload in python? (JWE))中被问过,但我似乎无法让 JWK 工作——我尝试导入我的纯文本 RSA 密钥并得到一个错误(在下面添加堆栈跟踪)。谁能告诉我我做错了什么?

我的代码如下:(如果没有提供现有密钥,这是用于初始化新 RSA 密钥的模块)

0 投票
1 回答
2246 浏览

jwt - OIDC - 如何阻止某人欺骗 JWT access_token?

当您向 OIDC 提供者进行身份验证时,您将获得一个 id 令牌,如果您为 API 指定了范围,您将获得一个访问令牌,以便客​​户端应用程序可以代表最终用户向受保护的资源发出请求。通常,访问令牌也是 JWT。

但是如何阻止某人欺骗这些访问令牌之一,并创建一个并将其传递给 API?我知道有防止修改的保护措施,因为签名将不同于任何验证逻辑的预期,但是如果恶意用户手动创建了一个全新的签名呢?特别是因为这些令牌可以通过任何需要访问令牌的 API 进行“就地”验证(并非所有 API 都使用自省端点……尤其是使用 JWT)。我确实了解 OpenID Connect 提供商的 JWT 签名密钥周围有元数据,并且它在 OIDC 发现文档中可用。例如,这里是Google 的 JWK 元数据. 鉴于您拥有公开可用的签名信息,并且无需向 OIDC 提供商提出任何请求即可验证 JWT 访问令牌,那么 JWT 的安全性如何?是什么阻止了人们创建一个令牌并将其作为不记名令牌传递给需要访问令牌的 API?

0 投票
3 回答
15451 浏览

c# - 如何在 C# 中正确使用 OpenID Connect jwks_uri 元数据?

OpenID Connect 发现文档通常包含一个jwks_uri属性。从返回的数据jwks_uri似乎至少有两种不同的形式。x5c一种形式包含称为和的字段x5t。这方面的一个示例如下所示:

我看到的另一个版本省略了 x5c 和 x5t 属性,但包含eand n。这方面的一个例子是:

我正在使用 C# Microsoft.IdentityModel.Tokens.TokenValidationParameters,我正在尝试弄清楚如何提供该属性IssuerSigningKey。此类的示例用法是

鉴于这两种不同的 JWK 格式,我如何使用它们来提供 ,IssuerSigningKey以便TokenValidationParameter我可以验证访问令牌?

0 投票
0 回答
43 浏览

javascript - 使用 JWK 下载文件进行身份验证

这篇文章指出:

使用 cookie 时,您可以触发文件下载并轻松流式传输内容。但是,在令牌世界中,请求是通过 XHR 完成的,你不能依赖它。

使用 XHR 从需要 JWK 令牌进行授权的 URL 下载文件有什么棘手的问题吗?

0 投票
1 回答
1085 浏览

authentication - 你应该如何保存一个jwk?

我希望这不是一个幼稚的问题,而是从 .well-known/jwks.json 域获取 jwk 时应该如何保存它。

目前我对模数和指数进行硬编码,但这似乎不是一个很好的解决方案。

将其添加到数据库似乎毫无意义,因为这将是一个不合理的调用,因为 e & n 值不会改变。

存储在缓存中似乎是最好的解决方案之一。

为每个请求调用 .well-known/jwks.json 似乎也没有必要。

其他人的做法是什么?

0 投票
1 回答
1142 浏览

.net - 从 Json Web Key 获取公钥字节数组

我有一个包含公钥信息的 Json Web Key,我想将公钥作为字节数组获取。我的目标是最终使用 Keccak 哈希从中派生出以太坊地址。我了解从公钥字节数组中获取地址的过程,但是我不知道如何获取这个字节数组。我的场景是,使用 Azure Key Vault API 生成 EC 密钥,检索密钥(JWK 格式),然后找到地址。JWK 具有以下格式。

我正在使用 Azure .NET SDK,并且可以选择使用 Bouncy Castle for .NET 或任何 JS 库,因为项目也可以在 Node.js 环境中运行。如何获取公钥的字节数组?谢谢

0 投票
1 回答
6386 浏览

node.js - 如何使用 node-jose 生成加密的 JWE

我将 node-jose v0.11.0 ( https://www.npmjs.com/package/node-jose ) 用于 JWK 和 JWE 操作。我有一个 JWK 格式的 RSA 密钥,我可以将其加载到 JWK 密钥存储中并再次提取。但是,当我尝试加密任何东西时,我会进入“error2”、“不支持的算法”。RSA怎么可能是不受支持的算法?

输出如下:

更新我在实际代码中挖掘了一下,发现在“basekey.js”中抛出了错误,因为库的算法是空的。

这里的输出是: