書籍「Solving Identity Management in Modern Applications - 2nd edition」を読みました

前回、SAML2のSP-initiated フローをためしてみました。
Python + Flask + pysaml2 でSP、KeycloakでIdPを構築し、SAML2 の SP-initiated フローでSAML認証してみた - メモ的な思考的な

書籍「SAML入門 - かなめりぜ」を読んだり手を動かしたりして、なんとなくSAML2への理解が進んだような気がしました。

 
ただ、もう少し理解を勧めたいと考えて書籍を探したところ、「Solving Identity Management in Modern Applications - 2nd edition」がありました。
Solving Identity Management in Modern Applications: Demystifying OAuth 2, OpenID Connect, and SAML 2 | SpringerLink

1st editionは2019年に出版され、今回読んだ 2nd edition は2022年に出版されたようでした。

SAML2について書かれた本は貴重なため、読んでみました。

 

書籍の概要

SAML2に特化した内容というよりは、目次にある通り

  • 認証認可まわりフレームワークO
    • Auth2やOIDC、SMAL2
  • 権限管理
  • セッション管理
  • ログイン
  • ログアウト
  • アカウント管理
  • アカウントの失効

など、IDまわりの開発~運用まで一通りふれられていました。

また、OAuth2.1 draft などについても書かれており、最新の状況に追随している印象を受けました。

 
一方、ID管理まわりの技術に対するサンプルコードやライブラリ・製品の紹介などがほとんどありませんでした。

そのため、もっと実装寄りのことを学ぶには

  1. この書籍でID管理まわりのキーワードを拾う
  2. 別の資料を読んだり、自分で実装を試してみる

という流れが必要そうと感じました。

 

SAML2 の記載について

この書籍を読む目的である、SAML2に関する情報については

  • 「7. SAML2」
  • 「Back Matter」の中の APPENDIX C SAML2 AUTHENTICATION REQUEST AND RESPONSE

に記載されていました。

以降では、それぞれの内容を軽くメモしておきます。

 

7. SAML2 について

SAML入門同様、SAML認証の各フローやシングルサインオンについて記載されていました。

また、SAMLに関係する内容として、

  • Identity Federation
  • Authentication Brokers

についてもふれられていました。

 
個人的には、 Authentication Brokers について知らなかったので、ためになりました。

ちなみに、読書後に Authentication Brokers についてWebで調べてみたところ、Keycloakの Identity Broker 機能のような印象を受けています。
KeycloakでSAMLログインをテストしたい #テスト - Qiita

 

APPENDIX Cについて

SAML入門と比較すると以下のような感じでした。

  • C1. SAML2 AUTHENTICATION REQUEST
    • SAML入門の「5章 やりとりする内容」あたり
  • C2. SAML2 AUTHENTICATION RESPONSE
    • SAML入門の「5章 やりとりする内容」あたり
  • C3. VALIDATION
    • SAML入門 p55 の 「署名以外にチェックする項目」あたり

 
そのため、「SAML入門でも十分だけど、補助的な資料としてここを読む」ような感じで良さそうでした。

 

おわりに

サンプルコードが無いこともあり、この本だけで各ID管理技術を実装するのは難しく感じる一方で、ID管理の全体像を知ることができて有意義でした。

今回はSAML2を知るために読みましたが、他のID管理技術の内容をざっくりつかみたい時は、また読んでみようと思いました。