【さむる】

SAML とは?

最終更新:
💡 認証結果をXMLの表明で伝え、連携先のログインにつなぐ

認証結果や属性などのセキュリティ情報を、XML形式の表明としてシステム間で交換する標準。Webのシングルサインオンでは、IdPの認証結果をSPが検証し、連携先のログインに利用する。

📌 このページのポイント
ブラウザを経由して、認証結果を渡すブラウザIdP:認証SP:サービス① サービスを開く② IdPへ案内③ 認証要求④ 応答(表明)⑤ 応答を送信⑥ 検証し利用へSPは署名・有効期間・宛先などを検証
上から順に読む、SPから始めるRedirect/POST方式の簡略図です。IdPは必要なら利用者を認証します。SPは表明を検証し、利用権限も確認します。SAMLの表明は認証結果などを示すXMLの表明で、証明書そのものではありません。
ひよこ ひよこ
SAMLって何のための標準?
ペンギン先生 ペンギン先生
システム間で認証結果や属性などを交換する標準だよ。代表的な使い方は、Webのシングルサインオン。認証を担うIdPと、利用するサービスであるSPを連携させて、IdPでの認証結果をSPのログインに使うんだ
ひよこ ひよこ
ブラウザでは、どう動くの?
ペンギン先生 ペンギン先生
SPから始める例では、サービスを開くとブラウザがIdPへ案内される。必要ならそこで認証し、IdPが認証結果の表明を作る。応答をブラウザ経由でSPへ送り、SPが署名や内容を検証してから、ログインと利用権限の確認へ進むよ
ひよこ ひよこ
SAMLの表明は証明書なの?
ペンギン先生 ペンギン先生
SAML Assertion(表明)は、認証結果や属性などを書いたXMLの表明だよ。署名を検証するための証明書とは別のもの。WebのSSOでは、信頼するIdPからの表明かに加え、有効期間や宛先なども確かめる。XMLを読み取れたというだけで信用してはいけないんだ
ひよこ ひよこ
一度ログインすれば、どこでも使える?
ペンギン先生 ペンギン先生
連携設定されたサービスが対象だよ。IdPでのログイン状態が使えることもあるけれど、認証の方針によっては再認証が必要になる。SP側の利用権限がなければ、認証に成功してもその機能を使えるとは限らないんだ
ひよこ ひよこ
連携できないときは何を見る?
ペンギン先生 ペンギン先生
要求と応答、IdPとSPの設定を照合するよ。署名の検証、有効期間、宛先、利用者を表す値などが確認点になる。ブラウザ経由の応答で使うBase64は符号化で、暗号化ではない。取り出した認証情報を扱うときも慎重にしよう
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「SAML」って出てきたら「認証結果などをXMLの表明で伝え、サービス間のログイン連携に使う標準」と思えばだいたいOK!
📖 おまけ:英語の意味
「Security Assertion Markup Language」 = セキュリティ表明マークアップ言語
💬 OASISが策定した標準だよ。認証だけでなく属性や認可に関する表明も扱える。Webのシングルサインオンは、代表的な利用方法の一つなんだ

参考資料

← 用語集にもどる