【セキュリティ】SAML認証とは?仕組み・SSOとの関係・他認証方式との比較を徹底解説

ITナレッジ

今回は、企業のシステム環境でよく耳にする「SAML認証」について、その仕組みや概念をわかりやすく解説します。クラウドサービスの普及にともない、複数のシステムへのログインを一元管理する必要性が高まっています。

そのような場面で登場するのがSAML認証です。概念の説明から他の認証方式との比較、SSOとの関係、そして簡単な設定イメージまでを順を追って説明していきます。

SAMLとは何か?基本概念を理解しよう

SAML(Security Assertion Markup Language)とは、異なるシステムやサービス間で認証・認可情報を安全にやり取りするためのXMLベースのオープン標準規格です。2002年にOASIS(Organization for the Advancement of Structured Information Standards)によって策定され、現在広く使われているのはSAML 2.0(2005年策定)です。

SAMLの目的は、「あるシステムで認証済みのユーザーが、別のシステムへも再ログインなしでアクセスできるようにすること」です。企業内のActive Directoryで認証されたユーザーが、SalesforceやMicrosoft 365などのクラウドサービスにそのままアクセスできるのも、SAMLが活躍している典型的な場面です。

SAMLを構成する3つの登場人物

SAMLの仕組みを理解するうえで、まず3つの登場人物(エンティティ)を把握することが重要です。

① ユーザー(Principal / Subject)

サービスにアクセスしようとするエンドユーザー(人)のことです。ブラウザを操作してサービスへログインを試みる立場です。

② IdP(Identity Provider:アイデンティティプロバイダー)

ユーザーの認証情報を管理し、認証結果を証明する側のシステムです。「この人は確かに本人です」という証明書(SAMLアサーション)を発行します。代表的なIdPとしては、Microsoft Entra ID(旧Azure AD)、Okta、Google Workspaceなどがあります。社内システムではADFS(Active Directory Federation Services)がIdPとして機能するケースもあります。

③ SP(Service Provider:サービスプロバイダー)

ユーザーが実際に利用したいサービス側のシステムです。IdPからのSAMLアサーションを受け取り、その内容を信頼してユーザーのアクセスを許可します。SalesforceやMicrosoft 365、Box、kintoneなどのSaaSがSPに該当します。

SAMLの認証フローをステップで理解する

実際にSAML認証がどのように動作するかを、SP起点のフロー(SP-Initiated SSO)を例に解説します。

  1. ユーザーがSPにアクセス:ユーザーがブラウザでSalesforceなどのSPにアクセスします。
  2. SPがIdPへリダイレクト:SPはユーザーをIdP(例:Microsoft Entra ID)へリダイレクトし、認証要求(SAMLリクエスト)を送ります。
  3. IdPがユーザーを認証:IdPはユーザーに対してログイン画面を表示し、ID・パスワードや多要素認証などで本人確認を行います。
  4. IdPがSAMLアサーションを発行:認証に成功すると、IdPはSAMLアサーション(XML形式の認証情報)を生成し、デジタル署名を付与します。
  5. SPがアサーションを検証・アクセス許可:ブラウザ経由でSAMLアサーションを受け取ったSPは、その内容と署名を検証し、正当であればユーザーのアクセスを許可します。

このフロー全体を通じて、ユーザーのパスワードはSPには渡りません。認証はあくまでIdP側で完結し、SPはIdPを信頼するという構造になっています。これにより、パスワードの漏洩リスクを抑えることができます。

SAMLアサーションとは?

SAMLアサーションは、IdPが発行するXML形式の「認証証明書」です。主に以下の3種類の情報が含まれています。

  • 認証アサーション(Authentication Assertion):ユーザーがいつ、どのような方法で認証されたかを示す情報。
  • 属性アサーション(Attribute Assertion):ユーザーの属性情報(氏名、メールアドレス、所属グループなど)。SPはこの情報を使ってアクセス権限を制御します。
  • 認可決定アサーション(Authorization Decision Assertion):特定のリソースへのアクセス可否を示す情報(現在はあまり使われないケースもあります)。

このアサーションにはデジタル署名が付与されているため、改ざんを検出できます。また、アサーションには有効期限が設定されており、リプレイ攻撃(同じアサーションを再利用した攻撃)への対策も施されています。

SSOとSAMLの関係

「SAMLとSSOは同じもの?」と混同されることがありますが、両者は異なる概念です。整理しておきましょう。

SSO(Single Sign-On)とは、1回のログインで複数のシステムやサービスを利用できる「仕組み・概念」のことです。利便性の向上とパスワード管理の負担軽減が主な目的です。
※過去にもSSOの記事を書いてます。詳しくはこちら

SAMLは、そのSSOを実現するための「技術的なプロトコル・標準規格」の一つです。

つまり、SAMLはSSOを実現する手段の一つであり、SSOはSAMLがなくても別の方法(例:Kerberosやシンクライアント環境での統合認証)で実現することも可能です。ただし、クラウドサービスとのフェデレーション(連携)においては、SAMLが最も広く採用されているプロトコルです。

他の認証・認可方式との比較

SAMLと混同されやすい、または並べて語られることが多い認証・認可方式との違いを整理します。

SAML vs OAuth 2.0

項目 SAML 2.0 OAuth 2.0
主な用途 認証(Authentication) 認可(Authorization)
データ形式 XML JSON / HTTP
主な利用シーン 企業向けSSOフェデレーション APIアクセス権限の委譲
モバイル対応 やや複雑 優れている

OAuthは「認可」のためのフレームワークであり、「このアプリが私のGoogleカレンダーを読む権限を持つ」といった場面で使われます。ユーザーの認証そのものを目的としたプロトコルではありません。

SAML vs OpenID Connect(OIDC)

項目 SAML 2.0 OpenID Connect
ベース技術 XML / SOAP OAuth 2.0 / JSON / JWT
主な利用シーン エンタープライズ・レガシー環境 モバイル・WebアプリのSSO
実装の複雑さ やや複雑 比較的シンプル
採用例 Salesforce、Microsoft 365 Google、LINE、Slack

OpenID Connect(OIDC)はOAuth 2.0の上に構築された認証プロトコルで、モダンなWebアプリやモバイルアプリとの親和性が高いです。一方、SAMLは企業の既存環境との統合実績が豊富で、エンタープライズ分野では依然として主流です。

SAML vs LDAP

LDAPはディレクトリサービス(Active Directoryなど)へのアクセスプロトコルであり、主に社内ネットワーク内での認証・ユーザー情報取得に使われます。SAMLがインターネット越しの異なるドメイン間の認証連携を目的とするのに対し、LDAPは同一ネットワーク内での利用が中心です。クラウドサービスとの連携にはSAMLが適しています。

SAMLの設定:基本的な手順イメージ

ここでは、Microsoft Entra ID(IdP)とSalesforce(SP)を例に、SAML設定の大まかな流れを紹介します。実際の手順は各サービスのバージョンによって異なりますので、公式ドキュメントも合わせてご参照ください。

① SPのメタデータを取得する

SalesforceなどのSP側でSAML設定を開始すると、「メタデータXMLファイル」または「エンティティID」「ACS URL(Assertion Consumer Service URL)」が確認できます。これはIdPへの接続情報として使用します。

② IdP(Entra ID)でエンタープライズアプリケーションを追加する

Microsoft Entra ID管理センターから「エンタープライズアプリケーション」→「新しいアプリケーション」を選択し、対象のSaaSを追加します。ギャラリーアプリとして登録されている場合は、SAMLの基本設定が自動入力されます。

③ SAMLの基本設定を行う

IdP側でエンティティID・ACS URLを設定します。また、ユーザーに渡す属性(メールアドレス、姓名など)のマッピングを設定します。

④ IdPのメタデータをSPに登録する

Entra IDのSAML署名証明書(フェデレーションメタデータXML)をダウンロードし、SP(Salesforce)側に登録します。これにより、SPはIdPを信頼できるようになります。

⑤ テストとユーザー割り当て

設定完了後、テストユーザーでSAMLログインを試みます。問題なくSSOが成功したら、対象ユーザーやグループへのアプリケーション割り当てを行います。

まとめ

今回はSAML認証について、基本概念から仕組み、SSOとの関係、他の認証方式との比較、そして設定の基本フローまでを解説しました。

SAMLは企業のクラウド活用において欠かせない技術であり、インフラエンジニアとしてその概念を理解しておくことは非常に重要です。特に以下のポイントを押さえておきましょう。

  • SAMLはIdPとSPの間で認証情報(アサーション)を安全に連携する規格である
  • SSOの概念とSAMLプロトコルは異なるが、クラウドSSOの実現手段として広く採用されている
  • OAuthは認可、OIDCはモダンな認証、LDAPは社内ディレクトリ向けと、それぞれ役割が異なる
  • 設定にはIdP・SP双方でのメタデータ交換と属性マッピングが必要

SAML認証の理解を深めることで、シングルサインオン環境の構築やトラブルシューティングにも自信を持って取り組めるようになります。ぜひ実際の環境でも試してみてください。

【注意】

このブログは技術に関する知識や経験を共有することを目的としており、情報の正確性に努めていますが、その内容の正確性や完全性を保証するものではありません。ブログの情報を利用する場合は、自己の責任において行動してください。ブログの内容に基づいて行った行動や決定によって生じた損害や被害について、筆者は一切の責任を負いません。

 

記事の内容の一部は、生成AIで作成しています。

ITナレッジセキュリティ
この記事の作者
StarTeller

30歳で異業種からITエンジニアへ転身し、10年以上にわたりインフラエンジニアとして様々な現場でシステム構築・運用に携わってきました。
得意分野はLinux/Windowsのサーバー構築・運用で、ネットワークやAWSなども実務で活用しています。このブログでは、これまでの業務で培った経験を基に、日々の業務で遭遇した問題の解決方法や、システム構築の具体的な手順を解説。現場のエンジニアが実際に「困ったとき」に参照できる情報を意識して投稿していこうと思っています。
※サーバ運用費がかかっているので、広告を掲載させて頂いてます。

StarTellerをフォローする
シェアする
StarTellerをフォローする
タイトルとURLをコピーしました