SSOの方式を比較:SAMLとOpenID Connectの違い

SSO(シングルサインオン)を導入しようとすると、「SAML」「OpenID Connect(OIDC)」という方式名に出会います。どちらも「一度の認証で複数のサービスを使えるようにする」ための仕組みですが、設計の考え方や得意な場面が異なります。本記事では、2つの方式の違いと、選ぶときの考え方を整理します。そもそもSSOとは何か、というところから知りたい方は、SSO(シングルサインオン)で認証をシンプルにするもご覧ください。

まず、SSOの登場人物を確認する

SSOには、基本的に2つの役割があります。ユーザーの認証を担当する「IdP(Identity Provider:認証基盤)」と、ユーザーが利用する「SP(Service Provider:業務サービス)」です。ユーザーがサービスを使おうとすると、サービスは認証をIdPに任せます。IdPで認証に成功すると、「この人は本人です」という情報がサービスに渡され、ログインが完了します。SAMLもOIDCも、この「認証結果をどう受け渡すか」を定めたルールです。

SAMLとは

SAML(Security Assertion Markup Language)は、企業向けのWebサービスで古くから広く使われてきた方式です。認証結果の情報を、XML形式の「アサーション」にまとめて受け渡します。多くのクラウドサービスが対応しており、社内の認証基盤と、業務用のSaaSを接続する用途で、事実上の標準として使われてきました。設定には、証明書やURLなどを双方に登録する作業が必要で、やや手間がかかります。

OpenID Connect(OIDC)とは

OpenID Connect(OIDC)は、認可の仕組みであるOAuth 2.0の上に、「ユーザーが誰であるか」を確認する機能を追加した方式です。認証結果は、JSON形式の「IDトークン」として受け渡されます。仕様がシンプルで、スマートフォンアプリや、ブラウザ上で動くアプリ、APIとの連携と相性がよいため、比較的新しいサービスで採用が広がっています。

2つの違いを比較する

  • データの形式:SAMLはXML、OIDCはJSON(IDトークン)
  • 得意な場面:SAMLは企業のWebサービス間の連携、OIDCはモバイルアプリやAPIを含むモダンな構成
  • 設定の難しさ:SAMLは設定項目が多く手間がかかる傾向、OIDCは比較的シンプル
  • 対応サービス:SAMLは法人向けSaaSの対応が多い、OIDCは新しいサービスや自社開発のアプリで採用が多い
  • モバイル対応:OIDCの方が組み込みやすい

どちらが優れているということはなく、「接続したいサービスがどちらに対応しているか」が、実務では最大の判断材料になります。

選び方のポイント

① 接続したいサービスの対応状況を確認する

利用中(または導入予定)のSaaSが、SAML・OIDCのどちらに対応しているかを一覧にします。SAMLのみ対応しているサービスが多い場合は、SAML対応のIdPが必須になります。両方に対応しているサービスでは、設定のしやすさで選べます。

② 既存の認証基盤を活かせるか

すでにMicrosoft Entra ID(旧Azure AD)やGoogle Workspace、Oktaなどの認証基盤を使っている場合は、それらが対応している方式を優先すると、導入が早く済みます。新たにIdPを選ぶ場合も、主要な方式に幅広く対応しているものを選ぶと、将来の拡張に困りません。

③ 自社開発のアプリを接続するか

自社で開発した業務アプリをSSOに対応させる場合は、実装の手軽さから、OIDCが選ばれることが多くなります。ライブラリや開発資料も豊富です。

④ アカウントの自動作成・削除(プロビジョニング)も必要か

入社・退職に合わせて、各サービスのアカウントを自動で作成・削除したい場合は、SCIMなどの仕組みへの対応も確認してください。SSOはログインを一本化しますが、アカウントの管理までは自動で行ってくれません。

導入前にチェックしたいこと

  • SSOの対象にするサービスの一覧と、対応している方式
  • IdPが多要素認証(MFA)に対応しているか
  • IdPが止まったとき、どのサービスにも入れなくなる点への備え(緊急用の手段)
  • 退職者・異動者のアカウントを、速やかに無効化できる運用
  • ログイン履歴を確認でき、不審なアクセスを検知できるか

導入までの進め方

SSOの導入は、次のような順で進めるとスムーズです。まず、SSOでつなぎたいサービスを洗い出し、利用者数と重要度を整理します。次に、それぞれのサービスの対応方式を確認し、認証基盤(IdP)を選定します。そのうえで、まず少数のサービスと、少人数のテストユーザーで試験運用を行い、ログインの流れや例外対応(認証できないときの手順)を確かめます。問題がなければ、サービスと利用者を順に広げていきます。最初から全社・全サービスを一度に切り替えると、トラブル時の影響が大きくなるため、段階的な導入をおすすめします。

ケース別:こんな場合はこちらを検討

  • 利用中の法人向けSaaSが、SAMLのみ対応している → SAML対応のIdPを選ぶ
  • 自社開発のWebアプリや、スマートフォンアプリをSSOに組み込みたい → OIDCを優先して検討する
  • すでに、Microsoft 365やGoogle Workspaceを全社で使っている → その認証基盤を、IdPとして活用する
  • SaaSの数が少なく、まずは手軽に始めたい → 既存の基盤が提供するSSO機能から始める

実際には、SAMLとOIDCを使い分ける構成になることも珍しくありません。大切なのは、方式の名前にこだわることではなく、利用するサービスを、安全に、運用しやすい形でつなぐことです。

よくある質問

Q. 中小企業でも、SSOの導入は必要ですか?

A. 利用するクラウドサービスが増えるほど、パスワードの使い回しや、退職者アカウントの消し忘れのリスクが高まります。数サービスの段階でも、メリットを感じる企業は多くあります。

Q. SAMLとOIDCを、両方使うことはできますか?

A. 可能です。IdPが両方に対応していれば、サービスごとに対応している方式を使い分けられます。

まとめ

SAMLは法人向けSaaSとの連携で、OIDCはモバイルや自社開発アプリとの連携で強みを発揮します。選ぶときは、接続したいサービスの対応状況と、既存の認証基盤を最優先で確認してください。導入後の運用(多要素認証、アカウントの管理、緊急時の手段)まで含めて設計することが、安全で使いやすいSSOにつながります。

関連記事

前の記事
次の記事