2021/11/17(水)

飯をそれなりちゃんと食っていたら頭の回転はまともになったけど、集中力が続かない。課題に対する気分の問題な気がするけど、気分ってどうすればいいんだ?


onelogin/php-samlでいろいろ実験していた。

SAMLってユーザーデータの受け渡しとかどうやってるの?というのが気になって処理の流れを追っていたのだが、データが一旦完全にクライアント側に握られるところがあることが分かった。

  1. SPからidPへ、GETで遷移
  2. idPがログインページを表示
  3. idPにログイン
  4. idPのページでユーザーデータをクライアントに渡す
  5. クライアントはそのデータを持ってSP側のページへPOSTで遷移

この4,5の間で完全にデータがクライアントに握られる。このときクライアント側で書き換えれば、偽のユーザーデータをSPに渡せてしまうんじゃ?と思って実験してみた。

手順は面倒なので省くが、実際に途中でデータを書き換えたところ、Reference validation failedというエラーが出た。ちゃんとセキュリティ対策があるようで感心した。すごい。

Categories: