问题标签 [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.
c# - 如何在 Startup.cs 文件的 ConfigureServices 方法中的 AddJwtBearer 选项中设置 Dynamic IssuerSigningKey 和 TokenDecryptionKey
我用和编写了一个身份验证web api
项目。DotNet core 3.1
Microsoft.IdentityModel.JsonWebTokens
我有 3 个客户app-android
,app-pwa
并且admin-panel
. 每个客户都有特定的SigningCredentials
和EncryptingCredentials
关键的数据库。
当我想生成访问令牌时,我使用这些客户端之一。
在Startup.cs
文件中我需要设置AddJwtBearer
选项
但我需要为每个客户端动态设置这些键
我怎样才能做到这一点?
谢谢
c# - 如何在 Angular 中解码 JWE 令牌
我有这个问题,我通过这种方式使用 EncryptingCredentials 在 .net 核心中创建了一个 JWE:
如何使用 Angular 读取令牌的数据?
security - JWE 和密钥管理模式
围绕 JWE 和密钥管理模式展开我的思考。JWE 的目的是防止第三方看到/更改令牌。只有令牌颁发者和资源服务器应该能够使用它。(这是正确的吗?)
要加密令牌的有效负载,我们需要生成 CEK(内容加密密钥)。此密钥提供给“enc”JOSE 字段中指定的对称算法。根据https://www.rfc-editor.org/rfc/rfc7516,我们有 5 种方法可以获得 CEK。
- 密钥加密。CEK 是随机生成的,负载使用 CEK 加密,CEK 使用非对称算法 - 公钥加密 - 根据“auth”JOSE 字段,并嵌入到令牌中。资源服务器可以发现-推断出对应的私钥,并使用非对称算法对 CEK 进行解密。资源服务器可以通过多种方式发现对应的公钥。其中之一是 JOSE 标头中的 jkw。jkw 表示对应的公钥。
- 密钥包装。CEK 是随机生成的,负载使用 CEK 加密,CEK 使用对称算法加密,并嵌入到令牌中。
在这种情况下,资源服务器如何破译 CEK? - 直接密钥协议。CEK 是根据密钥协商算法决定的。
在这种情况下,发行者和资源服务器是否一起工作以首先获得 CEK?他们是否会在生成 CEK 之前保持会话一段时间?这不规范吗? - 与密钥包装的密钥协议。CEK 是随机生成的。
那我们为什么要提到关键协议呢? - 直接加密。CEK 带外交换。
感谢您的任何反馈。
rsa - 如何使用 RSA 作为 kty jwk 参数(使用 jose4j)
我正在使用jose4j
JWE 加密字符串,遵循此文档https://bitbucket.org/b_c/jose4j/wiki/JWE%20Examples
在示例中,他们使用{\"kty\":\"oct\",\"k\":\"Fdh9u8rINxfivbrianbbVT1u232VQBZYKx1HGAGPt2I\"}
它运作良好,但如何使用 RSA 作为 kty ?我应该自己生成一个密钥并将其放入“k”参数中吗?
php - 找不到类 'phpseclib\Crypt\Random'
我想在 php 中做 JWE。我已经通过 composer 安装了 gree/jose 库和 phpseclib。但是,为什么我在下面不断收到错误?
致命错误:在第 106 行的 /export/vhost/onlinepayment.com.my/htdocs/NBepay/vendor/gree/jose/src/JOSE/JWE.php 中找不到类 'phpseclib\Crypt\Random'
下面是我安装的库。
- 作曲家需要格力/何塞
- 作曲家需要 phpseclib/phpseclib:~3.0
已经包括自动加载和 JOSE。
我应该怎么办?
c# - Private key in CngKey format using jose-jwt - EccKey.New(x, y, d, CngKeyUsages.KeyAgreement) not working in production but fine in local
I'm trying to read get the x, y and d parameter values from a pem file generated using https://mkjwk.org/ with P 256 curve, Encryption, ECDH-ES+A128KW with X509 set to true. The values for x, y , d are retrieved using below:
But the statement below is throwing exception when executed in remote server with Windows Server 2012 but running fine in local system running on Windows 10:
The exception found in remote is given below:
The requested operation is not supported at System.Security.Cryptography.NCryptNative.ImportKey(SafeNCryptProviderHandle provider, Byte[] keyBlob, String format) at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, String curveName, CngKeyBlobFormat format, CngProvider provider) at Jose.keys.EccKey.New(Byte[] x, Byte[] y, Byte[] d, CngKeyUsages usage)...
I am using the below library for my purpose: https://github.com/dvsekhvalnov/jose-jwt
node.js - JWT 解密加密令牌
我正在处理一些 oauth 身份验证,并且收到了以下格式的回复:
id_token 应该只是一个 jwt 令牌。但是,如果我将令牌放入 jwt.io,它会显示无效的 json 对象。
我已与我的供应商核实,他说 id_token 已在我为供应商创建的此链接上使用此公共 jwks 密钥 (enc) 加密。 http://singpasslogin.herokuapp.com/jwks
由于这个 id_token 已被加密,我现在如何解密它,我正在使用 jsonwebtoken 但不知何故我找不到任何可以用来解密它的相关方法。
通常我们会做这样的事情来获取有效载荷,但现在这不起作用。
现在 id_token 已加密,我现在应该如何读取这个 id_token?我的供应商说用户名在我收到的响应的 id_token 中,但不知何故我不知道如何阅读它。
任何帮助或解释将不胜感激。
jwe - 如何从 JSON 网络密钥生成 jose4j EllipticCurveJsonWebKey
我可以按照https://bitbucket.org/b_c/jose4j/wiki/JWT%20Examples创建 JWE 。 问题:无法使用 json web 密钥创建 JWE(如下所述的 EC 类型)。
要求:创建并验证以下类型的 JWE
我想避免EcJwkGenerator.generateJwk(EllipticCurves.P256);
我可以从 json 网络密钥创建 EllipticCurveJsonWebKey 吗?
这是 json 网络密钥:
jwt - 从 JWT 迁移到 Identity Server 4,部署后无需重新登录网站用户
我有一个当前使用JWT保护的 API 服务。我将用 Identity Server 4 替换 JWT,并用Identity Server 4保护我的 API。我有一种生成 JWT 令牌 (JWE) 的自定义方式。如何在当前登录到站点的用户无需重新登录的情况下将 JWT 替换为 Identity Server 4?
具体来说,我想使用Skoruba Identity Server 4项目模板。
json - 有没有办法使用 .Net 框架创建加密的 JWT,以替代使用 jose-jwt 之类的库?
我有一个 ASP.Net 应用程序,我正在使用这个库:https ://github.com/dvsekhvalnov/jose-jwt创建一个加密的 JWT,如下所示:
publicKey只是我从公共 JWK 创建的 RSA 密钥。
我想知道是否有一种方法可以通过使用普通的 .Net Framework 而不是这个库来生成相同格式的加密 JWT。我尝试使用Microsoft.IdentityModel.Tokens和System.IdentityModel.Tokens命名空间,例如:
但是我意识到这个方法的输出与 jose-jwt 库的Encode方法产生的输出格式不同。我是否遗漏了什么,或者这不是在.Net 中创建相同加密 JWT 的方法?
当我尝试使用相同的jose-jwt库来解密上面生成的 JWT 时,而不是获取解密的有效负载(“some_text_to_encrypt”),我得到另一个 JWT,其有效负载中的值:
Result after decrypting: eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJ2YWwiOiJzb21lX3RleHRfdG9fZW5jcnlwdCIsIm5iZiI6MTYxODkzNjk0NywiZXhwIjoxNjE4OTQwNTQyLCJpYXQiOjE2MTg5MzY5NDIsImlzcyI6Iklzc3VlciIsImF1ZCI6IkF1ZGllbmNlIn0.
然后我可以在jwt.io中解码以获得以下结果:
标题:{“alg”:“none”,“typ”:“JWT”}有效负载:{“val”:“some_text_to_encrypt”,“nbf”:1618936947,“exp”:1618940542,“iat”:1618936942,“iss ": "发行者", "aud": "受众" }