シングルサインオン(SSO)を実現する裏側では、SAMLとOIDC(OpenID Connect)という2つの標準プロトコルが広く使われています。どちらも「一度のログインで複数のサービスにアクセスできる」という目的は同じですが、生まれた背景も技術的な仕組みも異なります。本記事では、両者の違いと、企業システムでの使い分けの考え方を解説します。
1. SSOを支える2つのプロトコル
SSO(シングルサインオン)自体は「仕組み」の名称であり、それを実現する具体的な技術仕様として、SAML(Security Assertion Markup Language)とOIDC(OpenID Connect)が広く採用されています。IdP(アイデンティティプロバイダー)とサービス提供側(Relying Party / Service Provider)の間で、「このユーザーは認証済みである」という情報をどうやり取りするかを定めている点は共通していますが、データ形式や設計思想には明確な違いがあります。
2. SAMLとは何か
SAMLは2000年代前半に標準化された、XML形式のデータをベースとするプロトコルです。IdPが発行する「SAMLアサーション」というXML文書に、ユーザーの認証情報や属性情報を含め、これをサービス提供側に送信することで認証を伝達します。
SAMLはエンタープライズ向けのシステム連携で長く使われてきた実績があり、多くの業務システム・SaaSが標準でSAML対応を提供しています。特にActive Directoryベースの社内システムとの連携において、成熟した選択肢とされています。
3. OIDCとは何か
OIDCは、OAuth 2.0という認可プロトコルの上に構築された、比較的新しい認証プロトコルです。JSON形式の「IDトークン」を用いてユーザー情報をやり取りする設計になっており、SAMLのXMLベースの仕組みと比べて軽量です。
OIDCはモバイルアプリやSPA(シングルページアプリケーション)との親和性が高く、GoogleアカウントやMicrosoftアカウントでのログイン(いわゆる「ソーシャルログイン」)の多くもOIDCをベースに実装されています。近年開発される新しいSaaS・Webサービスでは、OIDCが標準的な選択肢になりつつあります。
| 項目 | SAML | OIDC |
|---|---|---|
| データ形式 | XML | JSON |
| 標準化された時期 | 2000年代前半 | 2010年代前半(OAuth 2.0がベース) |
| 主な用途 | エンタープライズの業務システム連携 | モバイルアプリ、SPA、ソーシャルログイン |
| 軽量性 | XML特有の冗長さがある | JSONベースで比較的軽量 |
既存のSAML/OIDC環境とのFIDO2連携は、Keyperにご相談ください
Net PeaceのKeyperは、SAML・OIDCいずれの環境とも連携し、FIDO2によるパスワードレス認証をSSOの入口に組み込むことができます。
4. SAMLとOIDCの技術的な違い
認証情報の伝達方式
SAMLは、ブラウザを経由してXML形式のアサーションをPOSTするリダイレクトベースの仕組みが中心です。OIDCは、OAuth 2.0の認可コードフローをベースに、トークンのやり取りをAPIリクエストとして行う設計が主流であり、モダンなAPI駆動型のアーキテクチャとの親和性が高くなっています。
モバイル・SPA対応
SAMLはブラウザでのリダイレクトを前提とした設計のため、モバイルアプリやネイティブアプリでの実装には工夫が必要になる場合があります。OIDCはモバイル・SPA環境を念頭に設計されており、この点で実装の容易さに差があります。
5. どちらを選ぶべきか
- 既存のエンタープライズ業務システムが中心の環境:多くのレガシー業務システムがSAML対応を前提としているため、SAMLが現実的な選択肢になりやすい
- 新規開発のSaaS・モバイルアプリとの連携が中心の環境:OIDCの方が実装がシンプルで、開発効率も高い
- 両方が混在する環境:多くのIdP製品はSAML・OIDCの両方に対応しているため、システムごとに適したプロトコルを使い分ける運用が一般的
6. 併用は可能か
結論として、SAMLとOIDCの併用は一般的であり、問題ありません。Microsoft Entra IDやOktaといった主要なIdP製品は、いずれもSAMLとOIDCの両方をサポートしています。レガシーな業務システムはSAMLで接続し、新しいSaaSやモバイルアプリはOIDCで接続する、という使い分けが実務上のスタンダードです。重要なのは、どちらのプロトコルを使う場合でも、認証の起点(IdPへのログイン自体)を強固にすることです。ここが弱ければ、後段のプロトコルがどちらであっても、なりすましのリスクは残ります。
よくある質問
Q1: SAMLとOIDCはどちらの方が安全ですか?
プロトコル自体の安全性に大きな優劣があるわけではなく、実装の適切さや、認証の起点となるIdPログインの強度(FIDO2対応の有無等)の方が、全体のセキュリティレベルに大きく影響します。
Q2: SAMLは古い技術なので、今から導入するのは避けるべきですか?
SAMLは現在も多くのエンタープライズシステムで標準的に採用されており、「古いから避けるべき」というわけではありません。接続先システムがSAMLにのみ対応している場合は、SAMLを選択する必要があります。
Q3: 自社のIdPがどちらに対応しているか、どう確認すればよいですか?
多くのIdP製品(Microsoft Entra ID、Okta等)は管理コンソール上でSAML/OIDCそれぞれの接続設定画面が用意されています。ベンダーの製品ドキュメントで対応状況を確認するか、導入済みのIdPベンダーのサポート窓口に問い合わせることで確認できます。
7. まとめ
SAMLとOIDCについて解説した内容を振り返ります。
- SAMLはXMLベースで、エンタープライズの業務システム連携で長く使われてきたプロトコル
- OIDCはJSONベースで、OAuth 2.0をベースにモバイル・SPA環境との親和性が高いプロトコル
- 既存システムの対応状況や、新規開発かレガシー連携かによって、適したプロトコルは異なる
- 多くのIdP製品は両対応しており、システムごとの使い分けが実務上の標準的な運用
- どちらのプロトコルを選んでも、認証の起点となるIdPログインの強度が全体のセキュリティを左右する
Net PeaceのKeyperは、SAML・OIDCいずれの環境とも連携し、FIDO2によるパスワードレス認証をSSOの入口に組み込むご支援をします。