例を挙げて説明するために、まずJSONの例に戻って考えてみましょう。jq(JSON変換ユーティリティー)を使って、ドキュメントの中から持ってきた何かを計算してみましょう。 $ cat assertion.json { "signed_in_user": "Joonas" } $ cat assertion.json | jq . { "signed_in_user": "Joonas" } (jq. は、ドキュメント全体を再印刷することを意味します。) ファイルを jq に通すと、スペースが削除されることに気付きましたか?これは、JSONレベルではスペースが重要ではないからです。一見、面白くなさそうですが、私たちは危険な領域に向かっています。 計算された値に署名してみましょう。 $ cat assertion.json | jq . | sha1sum e58dc03a7491f9e5fb
![設計上、安全ではないSAML](https://cdn-ak-scissors.b.st-hatena.com/image/square/1629d9a076e1f90b25671278a2fc2fb92f94c8e7/height=288;version=1;width=512/https%3A%2F%2Fs3-ap-northeast-1.amazonaws.com%2Fraptor-photo-production%2Fuploads%2Fckeditor%2Fpictures%2F3272%2Fcontent_fly-d-art-photographer-OQptsc4P3NM-unsplash.jpg)