前回、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管理まわりの技術に対するサンプルコードやライブラリ・製品の紹介などがほとんどありませんでした。
そのため、もっと実装寄りのことを学ぶには
- この書籍でID管理まわりのキーワードを拾う
- 別の資料を読んだり、自分で実装を試してみる
という流れが必要そうと感じました。
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管理技術の内容をざっくりつかみたい時は、また読んでみようと思いました。