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

时间:2018-04-25 22:05:01

标签: json jwt json-web-signature

我阅读了here可以找到的JSON Web签名规范。该规范定义了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中有多个签名的用例是什么?

1 个答案:

答案 0 :(得分:3)

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

  1. 您使用几种签名算法(例如RS256,ES384和PS512)对令牌进行签名。根据观众的能力(仅支持ES384算法),它将能够验证令牌。

  2. 几个方面都同意一个共同的有效载荷。各方用其密钥对有效负载进行签名,并且签名合并为单个令牌。