技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

SAMLでのログイン情報はどこに保存されるのか?

SAML は SSO を実現するための仕組みなので、例えば、ユーザ(ブラウザ)が idP を経由して SP1 にログインしたら、SP2 にはログインなしでアクセスできる。

ネット上では、SP1 のログインまでの説明はたくさんあるのだが、その後の SP2 へのログインの説明があまりなく、どうやって SP2 へのログインを実現しているのか分からなかったが、幾つかのサイトを見たところ、たぶん以下だと推測している。

 

idP を通じで SP1 にログインすると、ブラウザの cookie にログイン情報 (セッション情報) が保存される。その後、ブラウザから SP2 にログインする際は、cookie に保存されているログイン情報を使うことで再ログインは必要ないのだろう。(idP と SP1 および SP2 は事前に連携設定をしていて、SP1 へのログイン情報は SP2 でも使用できる前提)

 

SAML では cookie は使用しない認識だったが、以下のサイト様によると使うらしい。

https://zenn.dev/ksrnnb/articles/36ba8dcc4f4c64

また、以下のサイト様でも、SAML 認証失敗の原因として cookie の有効期限切れを挙げており、やはり上述の理解であっていると思われる。

https://support.ta.kingoftime.jp/hc/ja/articles/11210087289113

 

もしかしたら、この辺は idP や SP 依存だったりするのだろうか?

ログイン情報を idP 上に保存して、SP1 へのログインの後に SP2 にログインする際、idP から 「ログイン済みだよ~」という情報をもらって、ログインを飛ばすとかあるのかな?しかし、この場合でも idP 側でユーザ(ブラウザ)の識別が必要なので、結局 cookie が必要になるような。。

となると、やはり、ブラウザの cookie にログイン情報を保存しているのだろうか。

 

2024/2/6 追記

SAMLではなくOIDCについてだが、以下のサイト様で分かりやすく説明されている。おそらくSAMLも同じだろう。

https://qiita.com/yuichi-nakamura/items/0707654d1b17761cb0eb