>
>
最終更新日
SAMLとOAuthの違いを認証・認可の観点から整理し、SSO導入時のプロトコル選定基準をわかりやすく解説します。
この記事でわかること
この記事でわかること
SAMLとOAuthの根本的な違い(認証と認可の違い)
SSO環境における各プロトコルの役割と関係性
SAML・OAuth・OIDCの比較と自社に適した選び方
組織規模別の導入判断の目安と失敗パターン
SAMLとOAuthの違いは「認証」と「認可」
本記事のポイント
SAMLはユーザーの身元を確認する「認証」のプロトコルである(※要確認:外部ソースへのリンク未記載)
OAuthは特定のリソースへのアクセス権を付与する「認可」のプロトコルである(※要確認:外部ソースへのリンク未記載)
シングルサインオン(SSO)における社内SaaS連携の主流はSAMLである(※要確認:根拠統計・外部ソース未記載)
SAMLはシステムに対するユーザーの身元を証明する「認証」であり、OAuthは特定データへのアクセスを許可する「認可」です。
SAMLとOAuthを正しく理解するためには、まず「認証」と「認可」という2つの概念の違いを明確にする必要があります。
ホテルのチェックインに例えると
認証(SAML)と認可(OAuth)の違いは、ホテルでの宿泊手続きをイメージするとわかりやすくなります。
認証(SAML)= フロントでの身分証提示
「あなたは誰ですか?」を確認するプロセスです。フロントで運転免許証やパスポートを提示し、「予約した〇〇です」と身元を証明することが認証にあたります。
認可(OAuth)= 部屋のカードキーの付与
「あなたに何を許可しますか?」を決定するプロセスです。身元が確認された後、「302号室に入室できる」「VIPラウンジを利用できる」といった権限が書き込まれたカードキーを渡されます。このカードキーによるアクセス権限の行使が認可です。
つまり、システムにおいてSAMLは「誰がアクセスしているか」を伝え、OAuthは「その人がどのデータにアクセスできるか」を制御します。この根本的な目的の違いを押さえておくと、後続のプロトコル選定がスムーズになります。
SAMLはユーザーが誰かを証明し、OAuthはユーザーに何ができるかを許可するプロトコルです。
▲ 認証(SAML)と認可(OAuth)の違いとホテルの例え
SAML・OAuth・OIDCの比較表
自社の要件が社内SaaSのSSOならSAML、外部API連携ならOAuth、モダンな自社アプリ認証ならOIDCを選択するのが基本的な判断軸です。
SAML、OAuth、およびOpenID Connect(OIDC)は、用途やデータ形式において明確な違いがあります。これら3者の違いを一目で整理し、自社の目的に合ったプロトコルを選択しましょう。
項目 | SAML | OAuth 2.0 | OpenID Connect (OIDC) |
|---|---|---|---|
役割 | 認証(身元確認) | 認可(権限付与) | 認証(身元確認) |
主なユースケース | 社内向けSSO(SaaSへのログイン) | 外部アプリへのデータ・APIアクセス許可 | 自社開発アプリやBtoC向けモダン認証 |
データ形式 | XML(※要確認:外部ソース未記載) | JSON(※要確認:外部ソース未記載) | JSON / JWT(※要確認:外部ソース未記載) |
プロトコル標準 | OpenID Foundation標準(※要確認:外部ソース未記載) |
まずこの比較表で自社の目的を絞り込み、次のセクションで各プロトコルの詳細を確認してください。
SAML・OAuth・SSOの仕組みと関係性
SSOの土台となるログイン基盤はSAMLが担い、ログイン後のアプリケーション間データ連携をOAuthが担うという補完関係にあります。
各プロトコルの仕組みと、SSO環境下でどのように機能・連携するかを解説します。
SAMLによるSSOの仕組みと基礎用語
SAMLを用いたSSOでは、以下の2つの要素が登場します。
IdP(Identity Provider): ユーザーのID情報を管理し、認証を行う側(例:Microsoft Entra ID、Oktaなど)(※要確認:外部ソース未記載)。
SP(Service Provider): ユーザーが利用したいクラウドサービスやアプリケーション(例:Salesforce、Slackなど)(※要確認:外部ソース未記載)。
ユーザーがSPにアクセスしようとすると、SPはIdPへ認証を依頼します。IdPでログイン(例えばパスワードや多要素認証)が成功すると、IdPは「このユーザーは認証済みです」というXML形式の証明書(SAMLアサーション)をSPに渡します。これにより、ユーザーは何度もパスワードを入力することなく複数のSP(SaaS)を利用できるようになります。
OAuth 2.0の仕組み
OAuth 2.0は、認可フレームワークとして定義された標準プロトコルです(※要確認:外部ソース未記載)。ここでは以下の用語が登場します(※要確認:外部ソース未記載)。
リソースオーナー: データを持つユーザー。
クライアント: データを利用したいアプリケーション。
認可サーバー: 権限を確認し、トークンを発行するサーバー。
リソースサーバー: 実際のデータが保存されているサーバー。
例えば、カレンダーアプリ(クライアント)に外部のスケジュール(リソースサーバー)を読み込ませる場合、OAuthが使われます(※要確認:外部ソース未記載)。ユーザーはID/パスワードをカレンダーアプリに渡すことなく、認可サーバーから発行された「アクセストークン」を用いて安全にデータ連携を許可します。
SSOとOAuthの関係性
SSOのログイン自体はSAMLやOIDCなどの認証プロトコルで行われます(※要確認:外部ソース未記載)。一方、ログイン後のアプリケーションがバックエンドで別のサービスのAPIを呼び出す際(例:社内ポータルから社内ファイルサーバーのAPIを呼び出す際)にはOAuthが活躍します。つまり、SSOの土台の上にOAuthの連携機能が乗る形で、両者は相互に補完し合って機能します。
▲ SAML・OAuth・SSOの仕組みと関係性の図解
OpenID Connect(OIDC)とは?OAuthだけでは不十分な理由
OAuthは認可専用であるため認証機能を持ちません。安全なSSOログインを実現するには、OAuthを拡張したOIDCの導入が必要です。
過去にはOAuthを無理やり認証(ログイン機能)に使おうとするケースがありましたが、これは重大なセキュリティリスクを伴います。
なぜOAuthだけでは不十分なのか
OAuthが発行する「アクセストークン」は、「あるデータにアクセスできる鍵」に過ぎず、「その鍵を持っているのが誰か」を証明するものではありません。ホテルの例えに戻れば、道で拾ったカードキーを使って部屋に入るようなもので、本人の身元確認(認証)としては不適切です。
OIDCによる解決策
この問題を解決するために開発されたのがOpenID Connect(OIDC)です。OIDCはOAuth 2.0の認可フローをベースにしつつ、ユーザーの身元情報を含んだ「IDトークン(JWT形式)」を発行する機能を追加しました(※要確認:外部ソース未記載)。
これにより、「OAuthでSSOのログインを実現したい」という要件をOIDCが安全に解決します。「Googleでログイン」「Appleでサインイン」などは、裏側でOIDCの仕組みが利用されています(※要確認:外部ソース未記載)。
自社に最適なプロトコルの選び方(導入判断フロー)
導入目的が社内SaaS統制か外部連携かに加え、現在の組織規模やアカウント運用工数を軸に最適なプロトコルを判断するのが現実的です。
どのプロトコルを採用すべきかは、以下の3つの軸で判断するのが現実的です。読後すぐに自社の状況と照らし合わせてみてください。
目的別の導入判断目安
社内向けSaaSのSSO統合なら「SAML」
既存のSaaS(Google WorkspaceやSalesforceなど)の多くはSAMLに対応しています。従業員が複数の業務アプリにログインする手間を省きたい場合は、SAMLを利用したIdP連携を選択します。外部アプリとのデータ・API連携なら「OAuth」
「自社のシステムから他社のデータにアクセスさせたいが、パスワードは共有したくない」という場合はOAuthの出番です。自社開発アプリのモダンな認証(SSO)なら「OIDC」
自社で新たにWebアプリやモバイルアプリを開発し、そこにシングルサインオン機能を組み込む場合は、JSONベースで軽量なOIDCが推奨されます。レガシー・エンタープライズ系はSAML、モダン開発はOIDCという住み分けが一般的です。
組織規模別の考慮事項
50名未満の企業(※要確認:根拠統計未記載): 個別のSaaS管理でも運用可能ですが、今後の拡張を見越してGoogle Workspace等の標準IdP機能を使い、SAMLベースのSSOを小さく始めるのが得策です。
50〜300名の企業(※要確認:根拠統計未記載): アカウントの入退社処理(プロビジョニング)の工数削減が急務となります。月数十件の定型アカウント発行があるなら、専業のIdP(OktaやEntra IDなど)を導入し、SAMLによるSSOとアクセス制御を一元化しましょう。
300名超の企業(※要確認:根拠統計未記載): 複数のIdPが乱立するリスクがあります。全社統一のSAML/OIDC認証基盤を確立し、野良SaaSの利用を厳格に制御するガバナンスが求められます。
【警告】やってはいけない失敗パターン
多くの企業で陥りがちな失敗が、「OAuthを認証プロトコルとして実装してしまうこと」です。これはアカウント乗っ取りなどの深刻な脆弱性を生むため、ユーザー認証が必要な場合は必ずOIDCまたはSAMLを使用してください。
▲ 自社の要件に合わせた最適なプロトコル導入判断フロー
よくある質問
以下に、現場でよく挙がる疑問をまとめました。
Q1. SSOとOAuthの違いは何ですか?
SSO(シングルサインオン)は1度のログインで複数のサービスを利用できる「仕組み・概念」のことです。一方、OAuthはその裏側で特定のリソースへのアクセス権を付与するための「認可プロトコル」です。SSOを実現するための手段として、SAMLやOIDCといったプロトコルが存在します。
Q2. LDAPとSAMLの違いは何ですか?
LDAPは主にオンプレミス環境で社内ネットワークのユーザー情報や権限を集中管理・認証するためのプロトコルです(※要確認:外部ソース未記載)。対してSAMLは、インターネット越しのクラウドサービス(SaaS)間で安全に認証情報をやり取りするためのプロトコルです。現代では、LDAPの情報をIdPに同期させ、SAMLでクラウドSSOを実現する構成が一般的とされています(※要確認:外部ソース未記載)。
Q3. SAMLはHTTPS通信が必須ですか?
SAMLの仕様上、HTTPS(SSL/TLS暗号化)は厳密に必須とは定義されていませんが、セキュリティ上のベストプラクティスおよび実運用上として強く推奨されています。SAMLアサーションにはユーザーの重要な認証情報が含まれており、通信経路を暗号化せずにHTTPで送受信すると、情報漏えいや改ざんのリスクが高まります。実際の導入においては、HTTPS対応を前提に設計してください。
Q4. OAuthによるシングルサインオンとは何ですか?
厳密には「OAuthによるシングルサインオン」という表現は誤りであり、正しくはOAuthを拡張した「OpenID Connect(OIDC)」を利用したシングルサインオンです(※要確認:外部ソース未記載)。「Googleでログイン」「Appleでサインイン」などは、裏側でOIDCの仕組みが利用されています(※要確認:外部ソース未記載)。
まとめ
SSO環境構築の第一歩を踏み出そう
本記事では、「SAMLは認証」「OAuthは認可」という根本的な違いから、SSO環境における各プロトコルの役割や使い分けまでを解説しました。要件に合ったプロトコルを選ばないと、後工程で大きな手戻りが発生します。選定の手間を惜しまないのが結果的に近道です。
明日から取り組める最初の一歩として、まずは自社で利用している主要なSaaSが「SAML」や「OIDC」に対応しているかを各サービスの公式ドキュメントで確認してみましょう。対応状況をリスト化することで、IdP導入の投資対効果が明確になり、SSO環境構築に向けた具体的なロードマップを描けるようになります。
まとめのチェックリスト
✅ 自社の主要SaaSがSAML / OIDCに対応しているか公式ドキュメントで確認した
✅ 対応SaaSのリストを作成し、IdP導入の費用対効果を試算した
✅ 認証(SAML / OIDC)と認可(OAuth)の役割の違いを社内関係者に説明できる状態にした
✅ OAuthを認証目的に使っていないか、既存システムの実装を確認した
✅ 組織規模に応じた導入判断の目安(50名未満・50〜300名・300名超)と自社の状況を照らし合わせた
本記事の内容に誤り等がございましたら、こちらからご連絡ください。
監修
橋爪兼続
ライトハウスコンサルタント代表。2013年海上保安大学校本科第Ⅲ群(情報通信課程)卒業。巡視船主任通信士を歴任し、退職後、大手私鉄の鉄道運行の基幹システムの保守に従事。一般社団法人情報処理安全確保支援士会の前身団体である情報処理安全確保支援士会の発起人。情報処理安全確保支援士(第000049号)。





