json - 在使用 JWS JSON 序列化的 JWS 中具有多个签名的用例是什么?

标签 json jwt json-web-signature

我阅读了可以找到的 JSON Web 签名规范 here .该规范为 JSON Web 签名定义了两种序列化表示。一种是 JWS Compact Serialization,另一种是 JWS JSON Serialization 方法。 JWS JSON 序列化表示允许一个人拥有多个签名。使用 JWS JSON 序列化的 JWS 示例是:

{
        "payload": "eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ",
        "signatures": [
            {
                "protected": "eyJhbGciOiJSUzI1NiJ9",
                "header": {
                    "kid": "2010-12-29"
                },
                "signature": "cC4hiUPoj9Eetdgtv3hF80EGrhuB__dzERat0XF9g2VtQgr9PJbu3XOiZj5RZmh7AAuHIm4Bh
                -0Qc_lF5YKt_O8W2Fp5jujGbds9uJdbF9CUAr7t1dnZcAcQjbKBYNX4BAynRFdiuB
                --f_nZLgrnbyTyWzO75vRK5h6xBArLIARNPvkSjtQBMHlb1L07Qe7K0GarZRmB_eSN9383LcOLn6_dO
                --xi12jzDwusC-eOkHWEsqtFZESc6BfI7noOPqvhJ1phCnvWh6IeYI2w9QOYEUipUTI8np6Lbg
                GY9Fs98rqVt5AXLIhWkWywlVmtVrBp0igcN_IoypGlUPQGe77Rw"
            },
            {
                "protected": "eyJhbGciOiJFUzI1NiJ9",
                "header": {
                    "kid": "e9bc097a-ce51-4036-9562-d2ade882db0d"
                },
                "signature": "DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q"
            }
        ]
    }

规范暗示有时拥有多个签名是有益的。但是,我想不出有什么理由需要不止一个。

那么,话虽如此,在 JWS 中拥有多个签名的用例是什么?

最佳答案

根据 Florent Morselli's comment ,至少有 2 个用例:

  1. 您使用多种签名算法(比如 RS256、ES384 和 PS512)对 token 进行签名。根据受众能力(仅支持 ES384 算法),它将能够验证 token 。

  2. 多方同意共同的有效负载。每一方都使用其 key 对有效负载进行签名,并将签名合并到一个 token 中。

关于json - 在使用 JWS JSON 序列化的 JWS 中具有多个签名的用例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50031985/

相关文章:

Python程序从FFPROBE生成的JSON文件中读取并提取特定信息

jwt - Keycloak - 如何请求具有自定义生命周期的 token ?

authentication - 无效的寄存器选项 "value"必须是一个对象hapi-auth-jwt2

django - 使用 django rest 框架进行单点登录服务的任何可能方式?

java - 如何验证 header 中包含 "crit"值的 JWSObject?

python - TimedJSONWebSignatureSerializer 与 URLSafeTimedSerializer : When should I use what?

java - 使用 Google 的 Gson 进行严格的 JSON 解析?

c# - 循环遍历 JObject c#

ruby-on-rails - ruby 中的破解如何访问转换为哈希的 JSON 中的数据?

jwt - 您何时会使用不 protected JWS header ?