認証・ID管理

SAML(Security Assertion Markup Language) さむる

シングルサインオンフェデレーションIdPSPアサーションXML
SAMLについて教えて

簡単に言うとこんな感じ!

SAMLは「一度ログインすれば、他のサービスもそのまま使える」シングルサインオンSSO)を実現する仕組みだよ。社員証1枚で社内のいろんな部屋に入れるイメージ!会社のID管理システムがパスポートを発行して、各サービスがそれを信頼してくれるんだ。


SAMLとは

SAML(Security Assertion Markup Language) とは、異なるシステムやサービス間で認証認可情報を安全にやり取りするための標準規格です。XML形式で「このユーザーは誰か」「どんな権限を持っているか」という情報(アサーション)を伝達します。

SAMLが解決する問題は「複数のクラウドサービスごとにIDとパスワードを管理する煩雑さ」です。たとえば社員が Salesforce・Slack・Google Workspace を使う場合、SAML対応のID管理システム(例:Azure AD、Okta)に一度ログインするだけで、それぞれのサービスに自動的にログインできます。これがシングルサインオン(SSO) です。

SAMLはOASIS(技術標準化団体)が策定した規格で、特に企業間連携(フェデレーション に強く、大企業・官公庁・金融機関など、セキュリティ要件が高い組織での導入実績が豊富です。


SAMLの仕組みと登場人物

SAMLには3つの主役がいます。

役割正式名称日本語の意味具体例
IdPIdentity Provider(アイデンティティプロバイダー)「身元保証者」。ユーザーを認証してアサーションを発行するAzure AD / Okta / Google Workspace
SPService Provider(サービスプロバイダー)「サービス提供者」。IdPのアサーションを信頼してサービスを提供するSalesforce / Slack / kintone
ユーザーPrincipal(プリンシパル)サービスを使う人社員・取引先担当者など

SAMLのログインフロー(SP起点)

①ユーザーがSPにアクセス

②SPが「うちのIdPで認証してきて」とリダイレクト(SAMLリクエスト)

③ユーザーがIdPにログイン(ID・パスワード、MFAなど)

④IdPが「本物ですよ」とSAMLアサーション(XML)を発行

⑤ユーザーのブラウザ経由でアサーションをSPに送信

⑥SPがアサーションを検証してログイン完了 🎉

アサーションの3種類

SAMLが運ぶ情報(アサーション)には3タイプあります。

アサーション種別内容使われ方
認証アサーション「いつ、どこで認証されたか」ログイン可否の判断
属性アサーション「名前・メールアドレス・所属部署」など権限の割り当て・プロフィール連携
認可判断アサーション「このリソースへのアクセスを許可するか」アクセス制御

覚え方:「IdPはパスポート発行局、SPは入国審査官」

IdPが「このユーザーは正規の社員です」とサインしたパスポート(アサーション)を発行し、SPはパスポートを確認して通行を許可するだけ。SPはパスワードを直接知らなくていい——これがSAMLのポイントです。


歴史と背景

  • 2002年 — OASISがSAML 1.0を策定。企業間のWebサービス連携を目的として誕生
  • 2003年 — SAML 1.1へ改訂。Liberty Allianceの仕様と統合
  • 2005年SAML 2.0 を策定。現在も広く使われる主流バージョン。Shibboleth(大学・研究機関向けSSO)の仕様も取り込み、汎用性が大幅向上
  • 2010年代〜 — クラウドサービスの爆発的普及に伴い、エンタープライズSSOの事実上の標準として定着。AzureAD・Okta・OneLoginなどIdP製品が相次いで登場
  • 現在 — SaaSが増え続けるほどSAMLの需要も増加。一方でよりシンプルな OAuth 2.0 / OIDC との使い分けも進んでいる

SAMLとOIDC(OpenID Connect)の比較

似た役割を持つOIDCとよく混同されます。どちらを使うか選定の場面で役立つ比較です。

比較項目SAML 2.0OIDC(OpenID Connect
データ形式XMLJSON / JWT
得意な用途企業間フェデレーション・大企業SSOeモバイルアプリ・API連携・スタートアップSaaS
歴史・普及2005年〜 老舗・枯れた技術2014年〜 比較的新しい
実装の複雑さやや複雑(XMLのパース・署名検証)シンプル(HTTPSとJWT)
代表的な製品Salesforce・SAP・kintone などGoogle・Apple・LINE ログインなど
モバイル対応苦手(ブラウザリダイレクト前提)得意
SAML 2.0 データ形式 XML 得意な場面 企業間フェデレーション・大規模SSO 普及時期 2005年〜(枯れた技術) 代表例 Salesforce / SAP / kintone モバイル対応 △(ブラウザ前提) OIDC(OpenID Connect) データ形式 JSON / JWT 得意な場面 モバイルアプリ・API連携・SaaS 普及時期 2014年〜(比較的新しい) 代表例 Googleログイン / Appleログイン モバイル対応 ◎(ネイティブアプリにも対応) 用途で 使い分け

実務での選び方:

  • 既存の大企業SaaSや基幹系システムと連携する → SAML
  • スマホアプリや新しいAPIベースのシステムを作る → OIDC
  • 迷ったら両対応のIdP(Okta・Azure ADなど)を選べば後で対応できます

関連する規格・RFC

規格・番号内容
SAML 2.0(OASIS)現行の主流バージョン。認証・属性アサーションの仕様全体を定義
WS-FederationMicrosoftとVeriSignが策定したフェデレーション規格。Active Directoryとの連携で使われる
RFC 7522OAuth 2.0にSAMLアサーションを組み合わせるための仕様
OpenID Connect(OIDC)OAuth 2.0拡張の認証レイヤー。SAMLの後継として普及中
SCIM(RFC 7642-7644)ユーザー情報を自動プロビジョニング(アカウント自動作成)するための規格。SAMLとセットで使われることが多い

関連用語

  • シングルサインオン(SSO) — 一度のログインで複数サービスを使えるようにする仕組み全般
  • IdP(Identity Provider) — 認証情報を管理・発行するシステム。OktaやAzure ADが代表例
  • OAuth 2.0 — APIへのアクセス認可を委譲するプロトコル
  • OpenID Connect(OIDC) — OAuth 2.0に認証機能を追加したプロトコル。SAMLと並ぶSSOの主流
  • SCIM — ユーザーアカウントを自動的に作成・削除するためのプロビジョニング規格
  • 多要素認証(MFA) — パスワード以外の認証手段を組み合わせてセキュリティを高める仕組み