问题标签 [jwe]

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 投票
0 回答
188 浏览

encryption - 当使用 Keycloak 作为身份代理时,如何将其配置为接收加密的身份令牌?

我正在尝试将 Keycloak 配置为 OIDC 提供者和另一个应用程序之间的身份代理。当 ID 令牌未加密时,我能够成功实现用户登录。

我正在尝试将 Keycloak 配置为能够接受加密的 ID 令牌。但是在“身份提供者”中的 Keycloak 中设置 OIDC 身份提供者时,没有选项可以明确指示 ID 令牌将被加密,也没有任何选项可以指示用于解密的密钥。

我尝试将自生成的 RSA 密钥添加到“领域设置 > 密钥”,并在 OIDC Provider 端进行配置以使用公钥进行加密。在加密 ID Token 的 JWE 表示中,JOSE 标头在“alg”中包含“RSA-OAEP-256”,在“enc”中包含“A256CBC-HS512”。但是,现在启用加密后,当我尝试从 OIDC Provider 登录时,RHSSO 现在会引发以下异常:

错误 [org.keycloak.broker.oidc.AbstractOAuth2IdentityProvider] (默认任务 94)无法使身份提供者 oauth 回调:org.keycloak.broker.provider.IdentityBrokerException:无效令牌

我已经单独测试以确认已正确生成加密的 ID 令牌。我一直在使用的 OIDC 提供商是这样的:https ://github.com/panva/node-oidc-provider

有什么我可能配置错误的吗?

编辑:更新以指示我尝试过的操作

0 投票
1 回答
1884 浏览

spring-boot - 如何在 KeyCloak 中的签名 JWT 中获取 client_assertion

我尝试使用签名的 JWT 登录,我遵循这个示例,https://github.com/thomasdarimont/spring-boot-keycloak-jwe-example

但是,当我尝试使用以下脚本获取带有 curl 的令牌时

总是抛出

{ “error”: “unauthorized_client”, “error_description”: “使用签名 JWT 的客户端身份验证失败:无法识别客户端。发行人缺少 JWT 令牌”} 我不知道如何获取 client_assertion,我尝试了不同的方法来做到这一点,但它不起作用。

0 投票
1 回答
1048 浏览

node.js - 在 golang 中解密 JWE 令牌

我有这个问题,我通过这种方式使用node-jose在 node.js 中创建了一个 JWE:

根据创建它的文档"alg": "PBES2-HS256+A128KW", "enc": "A128CBC-HS256",,如果我在 jwt.io 中检查它,它就是。

然后,我需要在 golang 中解密,所以我喜欢使用go-jose.v2

但它会恐慌“恐慌:square/go-jose:密码原语中的错误”您可以在此处查看:https: //play.golang.org/p/qB3QNtGwBsK

我已经尝试过https://github.com/lestrrat-go/jwx但是它不支持 PBES2-HS256+A128KW 算法

谢谢。

更新:这里有更多信息:

他们在节点中的键是用这个创建的:

然后输出保存在这个数组中:

我一直在尝试在 golang 中使用相同的 JWK 创建相同的 JWE,我可以在 golang 中解密,但在节点中都没有(我收到“找不到密钥”错误)......所以,交叉解密对我不起作用. 我究竟做错了什么?

0 投票
2 回答
1081 浏览

java - 使用 nimbus-jose 和 Java 6 的 ECDH + JWE 加密

我有一个问题,我想知道你是否可以帮助我。

我需要用椭圆曲线创建一个加密的 JWE。

我在用

jre 1.6.0、nimbus-jose-jwt-8.20-jdk6.jar、bcprov-jdk15to18-166.jar。

我用 EC 算法和椭圆曲线 P-512 创建了一个密钥库和一个密钥对。如果我使用私钥对 JWT 进行签名,然后尝试使用公钥对其进行验证,一切正常,但除了签名之外,我还需要加密以创建一个看不到有效负载的 JWE。

当尝试使用公钥加密 JWE 时,它会抛出以下异常

这是我用来加密的代码:

我在 ecipe 类路径中定义了库。

虽然我的要求是用椭圆曲线加密 JWE,但我创建了一个测试证书 RSA,通过这种方式,我能够毫无问题地生成一个带有所述证书的加密 JWE。

我还使用了他们放在https://connect2id.com/products/nimbus-jose-jwt/examples/jws-with-ec-signature页面上的一个非常简单的示例,它也不适用于我。创建密钥对时,我得到了同样的异常。

NoClassDefFoundError 异常表明负责动态类加载的类加载器找不到您尝试使用的类的 .class 文件,但正如我之前所说,我的所有库都很好地包含在类路径中。

难道是我错过了一些要包括的利比里亚吗?我不知道,我迷失了这个问题

0 投票
0 回答
71 浏览

c# - 如何使用 RSA 加密 JWT 令牌?

我有一个用于创建 RSA 对象的 OpenSSL 密钥对:

一旦它被创建,我就可以用它来签署 JWT 令牌没有问题。

但是,一旦我想创建加密的 JWT (JWE),我不确定如何使用它。

签署:

最后是 JWT 创建:

我认为应该是类似的:

我不确定如何使用 RSA 作为 EncryptingCredentials。

0 投票
1 回答
556 浏览

jwt - 修改自定义策略中的JwtIssuer ClaimsProvider,实现AD B2C中的JWE

我正在使用AD B2C service进行身份验证。

AD B2C 正在生成已签名的 JWT 令牌,但 JWT 令牌中的声明信息向公众公开。如果有人获得令牌,他们就可以看到索赔信息。

就我而言,我需要在 JWT 令牌中存储一些敏感信息。那么有没有什么办法可以在AD B2C中生成JWE token(加密token),这样只有预期的接收者才能读取。

是否有任何可能的解决方案来修改JwtIssuer ClaimsProvider自定义策略以实现 JWE。请建议

0 投票
0 回答
101 浏览

jwt - 如何将索赔和到期时间传递给 JWE?

我正在玩node-josehttps://github.com/cisco/node-jose),它没有多大帮助。

我应该将 JWE 包装在 JWT 有效负载(或相反)中吗?

这是我用来进行一些测试的示例代码:

生成这样的对象:

问题

1-我如何将索赔传递aud给这个生成的 JWE?

2-我如何让它在一段时间内有效,比如说一小时?

3-我应该传递给客户什么?recipients带有等的整个对象protected

0 投票
1 回答
67 浏览

webapi - 使用 JWE 保护我的 web api,以任意方式进行操作和其他选项

我有一个应用程序包含:

  • .net 核心 3.1
  • Microsoft .net 核心上的脚手架身份
  • ef 核心 3.x
  • Vue.js
  • 网络核心网络API

(重要信息:一切都在一台服务器上的一个解决方案中)

现在我正在考虑保护我的 Web API。此应用程序不必像银行一样安全,但我想实现比最低安全性更高的一点。

问题

我想保护我的 API

我做了什么

所以我已经获得了身份授权。所有允许用户输入数据的请求,我都在使用 [Authorize](使用 Idenitiy)。

我的问题

  1. 我已经阅读了多个地方,当我有一个 Rest API 时,我应该使用 JWE 加密。当我知道只有授权用户才能发送数据时,我是否也需要 JWE?没有敏感信息。(但我见过的所有地方,应用程序都会跟踪用户名/密码)
  2. 我有多个 GET 请求,不需要任何授权。我应该在那里使用 JWE 吗?当我没有关于用户的任何信息(如用户名/电子邮件)时,我应该使用什么用户信息来加密它?
  3. 是否有任何其他方法可以保护我的 Getcall,以便不是“每个人”都能够获取/调用信息?我已启用 (cors)

这三个问题相互关联,因此通过将它们分开,更容易回答我需要帮助的细节。

0 投票
0 回答
184 浏览

jwt - JWE nimbus-JOSE 真实性和 JavaScript 对应物

我偶然发现了这个用于使用 JSON Web 加密的java nimbus-JOSE库。这个库很简单,需要几行 JWE 加密和解密,如下所示 JWE 加密。

但是,即使在阅读了它的 javadocs 和文档之后,我仍然对这个库有一些疑问。特别是关于 JWE 和这个库,

  1. 解密 JWE 后,如何验证 JWE 的真实性?JWE 中没有“签名”,那么 JWE 的 5 个部分如何帮助检查有效性?图书馆对此有任何支持吗?
  2. 除了标题和声明之外,JWT 中的其他字段是由库随机生成的吗?(我无法找到明确的证据。)
  3. 如果我使用 alg:“RSA-OAEP”,enc:“A128GCM”,我应该在每次加密时得到不同的 JWE,但是,我得到的是相同的 JWE。RSA-OEAP-256 不应该防止这种情况发生吗?加解密流程的详细顺序是什么?
  4. 我一直在尝试在 Javascript 中找到一个类似的库,但找不到像 nimbus-jose 这样的用于 java 的库。如果有人有建议,请在下面提供帮助!我感谢任何可以帮助我解决问题的人。欢迎所有输入。:)
0 投票
1 回答
167 浏览

jwt - 我有模数和指数如何使用 JavaScript 为某些有效负载生成 JWE

我们有一个要求,我们将从服务调用中获取模数,用于在客户端加密(JWE)一些数据

模数和指数示例(不能更改格式)

我正在尝试使用 JavaScript Jose 库来生成 JWE,但没有运气。

我从互联网上关注以下示例,但我的问题是我使用的模数似乎是大整数(我猜)格式,但示例显示不同的格式。

如果我有如上所示的模数和指数,是否有更好的方法可以将 JOSE 用于 JWE?或者可以如下所示完成,但我收到一个错误: