SAMLの規格と構成
SAMLはOASISという標準化団体が定めた仕様で、現在はSAML 2.0が主流です。ここでは、SAMLを支える規格のパーツをざっくり押さえます。
📜 SAMLの規格とバージョン
SAML 2.0が一般的で、メッセージ構造・送信方法・メタデータの書き方などが細かく決められています。
主なポイント
- ✅ SAML 2.0 が一般的(古い 1.1 とは互換性がない)
- ✅ 「Assertion」「Protocol」「Binding」「Metadata」など、役割ごとに仕様が分かれている
- ✅ Binding(送信方法)はHTTP-RedirectやHTTP-POSTなどが代表的
- ✅ Metadata ではIdP/SPのエンドポイントや証明書情報をXMLで共有する
🧩 規格の内訳をもう少しだけ詳しく
SAML 2.0 の仕様書は複数のパートで構成されています。それぞれが何を決めているのかをざっくり分解します。
バージョン
- 📌 SAML 2.0 が主流。SAML 1.1 とは互換性がないため混在させない。
- 📌 IdP/SPともに同じバージョンでそろえる必要がある。
Assertion(アサーション)
- 📝 「誰が」「いつ」「どう認証されたか」をXMLで表す本体。
- 📝 条件(NotBefore/NotOnOrAfter)やAudienceが含まれ、SP側でチェックする。
Protocol(プロトコル)
- 📡 Request/Response の形式やフローを定義。
- 📡 AuthnRequest、LogoutRequest/Response などの要素や属性を規定。
Binding(送信方法)
- 🚚 HTTP-Redirect, HTTP-POST, Artifact など、メッセージをどう運ぶかの決まり。
- 🚚 署名や圧縮(Redirect時のDeflate)の扱いもここで決まる。
Metadata(メタデータ)
- 📂 IdP/SP のエンドポイントURL、証明書、エンティティIDなどをXMLで交換するフォーマット。
- 📂 自動インポートに使われ、設定ミスを防ぐ役割がある。