Подлинность и целостность события веб-перехватчика можно проверить, проверив подпись, указанную в заголовке: x-xyz-jws.
Эта подпись предоставляется в виде веб-подписи JSON (JWS), используя тело в качестве незакодированной полезной нагрузки, как описано в разделе https://www.rfc-editor.org/rfc/rfc7797.
Открытые ключи, используемые для проверки подписей, предоставляются в JWKS (набор веб-ключей JSON).
Чтобы проверить подпись полезных данных веб-перехватчика, необходимо выполнить следующие шаги:
- Когда запрос получен, преобразуйте http json в канонизированную форму: https://www.rfc-editor.org/rfc/rfc8785.
- Выберите правильный ключ из JWKS, соответствующий идентификатору ключа из заголовка x-xyz-jws.
Используйте заголовок x-xyz-jws и канонизированное тело для проверки подписи с выбранным ключом.
x-xyz-jws
eyJhbGciOiJFUzI1NiIsImtpZCI6IjEiLCJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdfQ..DF7F6zQz pe7ErWBd2-sG1QWS_pfRWO2Yo1iNUT1XW4CgUUjmK82K6Tk0HPz5x4JidvOW4LvibQMORH-56kg7Yg
JWKS
Код: Выделить всё
{ "keys": [ { "kty": "EC", "use": "sig", "crv": "P-256", "kid": "1", "x": "qkx4od6mtrz5xbSL8WgyODkFaP6CJcskigWpYbuP024", "y": "T9ul87OtlHYZAfXw8b36VRNIxnRzgNzBgJaR8dZfjbE", "alg": "ES256" } ] }
body (raw json)
Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-a-jwks