SAML・SSOとは(全体像)
毎回サービスごとにログインするのは手間がかかる。そこで、一度ログインすれば、複数のサービスを再ログインなしで使えるようにするのがSSO(シングルサインオン)だ。
SSOを実現する代表的な規格がSAML。XMLという形式で認証情報をやり取りし、企業のSaaS連携で広く使われている。登場するのは、本人確認をするIdP(ID提供者)と、サービスを提供するSP(サービス提供者)。両者の信頼関係でSSOが成り立つ。
押さえるのは、IdPとSPの関係、SAMLとOIDCの違い、そしてSSOの安全性だ。
詳しく:登場人物とプロトコルを押さえる
ここが心臓部。まず登場人物を整理する。
SSOの登場人物としくみ
| 用語 | 役割 |
|---|---|
| IdP(ID提供者) | 本人確認をして「この人は本物」と保証する側 |
| SP(サービス提供者) | サービスを提供する側。IdPの保証を信頼して使わせる |
| SAML | 認証情報をXMLでやり取りする規格(企業SaaSで標準) |
SSOを実現するプロトコルは複数ある。
SSOのおもなプロトコル
| プロトコル | 特徴 |
|---|---|
| SAML | XMLベース。エンタープライズ(企業)で定番 |
| OIDC | JSONベース。新規では推奨される |
| Kerberos/LDAP | Windows(Active Directory)などで使われる |
言葉を噛み砕いておく。
- IdPとSP … IdPは「受付」(本人確認をして保証する)、SPは「各部屋」(受付の保証を信じて入れてくれる)。両者の信頼関係でSSOが回る。
- SAMLとOIDCの違い … SAMLはXML、OIDCはJSON。どちらもSSOに使えるが、形式の違う別のプロトコル。新規ではOIDCが推奨される。
- SSOは不安全ではない … 「1回突破されたら全部入られる」と思われがちだが、その1か所を強力認証(MFA)でしっかり守れば、むしろパスワード使い回しが減って安全性を高められる。
わかりやすく言い換えると
つまり、SSOは「一度の入館手続きで、建物内の複数の部屋に入れる」しくみにたとえるとスッと入る。
会社で朝に1回ログインすれば、メール・勤怠・経費などのサービスに再ログインなしで入れる。受付(IdP)が「この人は本物」と保証し、各部屋(SP)はその保証を信じて入れてくれる。この連携をXMLの書類でやり取りするのがSAMLだ。
似たしくみにOIDCがあるが、SAMLはXML、OIDCはJSONという形式の違いがある。そして、SSOは「1回で全部入れる=危険」と誤解されがちだが、受付をMFAなどで強く守れば、むしろ安全性を高められる、というわけだ。
試験のツボ
🔴 一番出る:SSOとSAML
①SSO=一度の認証で複数システムを使える
②SAML=XMLベースの認証連携規格。IdP(ID提供者)とSP(サービス提供者)の信頼関係
🔴 次に出る:SAMLとOIDCの違い
①SAMLはXML・OIDCはJSON(別プロトコル)
②新規ではOIDCが推奨される
🟡 押さえると安定:SSOは強力認証(MFA)と組めば安全性を高められる。プロトコルは複数(SAML/OIDC/Kerberos/LDAP)
よくある間違い
①「SAMLとOIDCはまったく同じものだ」→ ✗ SAMLはXML、OIDCはJSON。どちらもSSOに使えるが、別のプロトコル。
②「SSOは1回で全部に入れるので必ず危険だ」→ ✗ その1か所を強力認証(MFA)で守れば、むしろパスワード使い回しが減り安全性を高められる。
③「SSOを実現する方法はSAMLしかない」→ ✗ OIDCやKerberos、LDAPなど複数のプロトコルがある。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(SSOとSAML)
SSOとSAMLに関する次の記述のうち、正しいものはどれか。
- SSOはサービスごとに毎回ログインし直す方式のことで、再ログインを省くしくみではないとされているのだ
- SAMLは通信を速くするための圧縮の規格のことで、認証の連携とはまったく関係がないとされているのである
- SSOは一度のログインで複数のサービスを使え、SAMLはそれを支えるXMLベースの認証連携規格である
- SSOは画面の文字を大きくする表示の設定のことで、ログインの回数とは関係しないとされているものである
解答は 3 である。
SSOは一度のログインで複数のサービスを使えるしくみ。SAMLはそれを支えるXMLベースの認証連携規格だ。IdPとSPの信頼関係で成り立つ。
選択肢1は「毎回ログインし直す」が誤りで逆。選択肢2の圧縮、選択肢4の画面設定は、いずれも誤りだ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 再ログインを省くのがSSO |
| 2 | ✗ | 圧縮の規格ではない |
| 3 | ✓ | SSO=一度で複数・SAML=XML連携で正しい |
| 4 | ✗ | 画面設定ではない |
オリジナル問題2(IdPとSP)
SAMLの登場人物に関する次の記述のうち、正しいものはどれか。
- IdPは本人確認をして保証する側、SPはサービスを提供する側で、両者の信頼関係によりSSOが成り立つ
- IdPもSPもまったく同じ役割で、本人確認とサービス提供のどちらも区別なく行うとされているのである
- IdPは画面を拡大する機器、SPはデータを圧縮する機器のことで、認証とは関係しないとされているものだ
- IdPとSPはどちらも通信を遅くするしくみで、本人確認やサービス提供とは無関係とされているのが実情だ
解答は 1 だ。
IdP(ID提供者)は本人確認をして保証する側、SP(サービス提供者)はサービスを提供する側。両者の信頼関係でSSOが成り立つ。受付と各部屋の関係だ。
選択肢2は「同じ役割」が誤り。選択肢3の画面拡大・圧縮、選択肢4の通信を遅くするは、いずれも誤りだ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | IdP=保証・SP=提供で正しい |
| 2 | ✗ | 役割は分かれている |
| 3 | ✗ | 画面拡大や圧縮ではない |
| 4 | ✗ | 通信を遅くするしくみではない |
オリジナル問題3(SAMLとOIDC・安全性)
SAMLとOIDC、SSOの安全性に関する次の記述のうち、正しいものはどれか。
- SAMLとOIDCはまったく同じ規格で、形式にも役割にもいっさい違いはないものとされているのが実情である
- SSOは1回で全部に入れるため必ず危険で、安全に使う方法はいっさい存在しないとされているものである
- SAMLはJSON、OIDCはXMLというように、形式がちょうど逆になっているとされているのが実情なのである
- SAMLはXML・OIDCはJSONの別プロトコルで、SSOは強力認証と組めば安全性を高められるものである
解答は 4 だ。
SAMLはXML・OIDCはJSONの別プロトコル。そしてSSOは、強力認証(MFA)と組めば、むしろ安全性を高められる。「1回で全部=必ず危険」ではない。
選択肢1は「まったく同じ」が誤り。選択肢2は「必ず危険」が誤り。選択肢3は形式を逆にしている。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 形式が違う別プロトコル |
| 2 | ✗ | 強力認証と組めば安全性を高められる |
| 3 | ✗ | SAMLがXML・OIDCがJSONで逆 |
| 4 | ✓ | 別プロトコル・MFAで安全性向上で正しい |
まとめ
押さえどころ
- 🔴 SSO = 一度のログインで複数のサービスを使えるしくみ。SAML = それを支えるXMLベースの認証連携規格。
- 🔴 IdP(ID提供者)が保証し、SP(サービス提供者)が信頼してSSOが成り立つ。SAMLはXML・OIDCはJSON(別プロトコル)。
- 🟡 SSOは強力認証(MFA)と組めば安全性を高められる。プロトコルは複数(SAML/OIDC/Kerberos/LDAP)。
次に学ぶ
- OAuth 2.0・OIDC ── SAMLと並ぶ、現代的な認証・認可のしくみ。
- 認証要素・MFA(多要素認証) ── SSOの入口を強く守る、本人確認の重ねがけ。
- ゼロトラスト認証(条件付きアクセス) ── SSOと組み合わせる、現代の守りの考え方。
執筆: SikakuQuest編集部