SAML は「Security Assertion Markup Language」の略で、認証結果を XML 文書で受け渡すための標準規格です。 標準化団体 OASIS が策定し、現行の SAML 2.0 は 2005 年に標準化されました。20年使われている枯れた規格で、企業向け SaaS の「SSO対応」は今も SAML 対応を指すことが多いです。
仕組みのイメージ
IdP が「この人は認証済みです」という情報をアサーション(電子署名付きの XML 文書)にしてサービス(SP)へ渡し、SP は署名を検証して受け入れます。 パスワードそのものは SP へ渡らないので、サービス側にパスワードを預けずに済むのが利点です。
OpenID Connect との違い
| SAML 2.0 | OpenID Connect | |
|---|---|---|
| 策定 | 2005年(OASIS) | 2014年(OpenID Foundation) |
| データ形式 | XML | JSON(IDトークン=JWT) |
| 得意な場面 | 企業向けSaaS・業務システム | Webアプリ・モバイル・ソーシャルログイン |
新規のWebサービス開発では OpenID Connect が選ばれることが多い一方、SAML でしか連携できない業務向け SaaS も多く残っています。実務では「置き換え」ではなく共存で、IdP が両方を話せるのが普通です。
実務の定番事故
- 証明書の期限切れ … 署名検証用の証明書が失効すると、ある日突然全員がログイン不可になる。期限管理が最重要
- 属性マッピングの不一致 … IdP が送る属性名(メールアドレス等)と SP の期待が食い違い、ログインできても別人扱いになる
- 時計のズレ … アサーションには有効期間があり、IdP と SP のサーバー時刻がズレていると検証に失敗する
「つないだら終わり」ではなく、証明書更新の手順と期限をドキュメントに残しておくのが安全です。
近い用語との違い
- SSO … 実現したい体験。SAML はそのための通信規格の1つ
- OpenID Connect … 同じ目的の新しい規格。上の表を参照
- SCIM … 認証ではなくアカウント同期の規格。SAML と並んで「SSO+SCIM」のセットで語られる
全体の設計は SSOとは?仕組み・メリット・運用とセキュリティの注意点 で扱っています。