ゆるテックノート

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で交換するフォーマット。
  • 📂 自動インポートに使われ、設定ミスを防ぐ役割がある。