SAMLとは?仕組みの概要や目的、認証を取得するメリットを解説
最終更新日:2025年1月22日
SAMLとは、ID連携やSSO(シングルサインオン)などにおいて、ユーザーの認証に必要な情報をやり取りするための規格のことです。SAML認証によるSSOには利便性やセキュリティ面などでメリットが多く、活用されるケースが増えています。
本記事では、SAMLの概要や目的、具体的な認証手順、SAML認証によるSSOを導入するメリットやデメリットなどを解説します。「SAMLとは何なのか」「どのように導入するのか」といった疑問の解消に役立ててください。
目次
SAMLとは
SAMLは「Security Assertion Markup Language」を略した言葉で、一般的に「サムル」と読みます。IDの連携や、複数のシステム・サービスに1回のユーザー認証でアクセスできるようにする「SSO(シングルサインオン)」の仕組みにおいて、認証に必要な情報をXML形式でやり取りする際の標準規格となっています。
SAMLは、2002年に「S2ML」と「AuthXML」という2種類の規格が統合されたことで誕生しました。
ひとつのサーバーで認証されたユーザー情報を別のサーバーと共有することにより、成り立っているのがSSOです。その際、SAMLに沿って情報のやり取りを行うことで利便性や安全性が高まります。
SAMLとOAuthの違い
SSOを実現させる仕組みには、SAMLのほかに「OAuth(オーオース)」があります。OAuthとは、すでに認可が済んでいるサーバーが別のサーバーへアクセストークンを発行してアクセスを認可する仕組みのことです。主に、SNSへのログインやクラウドサービスへのアクセスなどに用いられています。
どちらもユーザー情報の管理や認証を一元化できる点、導入が容易な点で似ていますが、明確な違いもあります。主な違いを確認しておきましょう。
SAML | OAuth | |
---|---|---|
目的 | 認証と認可を行う | 認可のみ行う |
使用場面 | エンタープライズ環境でのシングルサインオン | APIの認可、サードパーティアプリへのアクセス制御 |
データ形式 | XMLドキュメント | アクセストークン(通常はJSON) |
主な用途 | Webアプリケーション間のユーザー認証 | アプリケーション間でのアクセス許可 |
セキュリティレベル | 強固 | 比較的簡易的 |
適用範囲 | 広範囲 | 限定的 |
なお、「認証」とは特定のユーザーを認識することで、「認可」とはユーザーにアクセス権限を与えることを意味します。つまり、認可のみのOAuthではユーザーを識別できず、別人がそのユーザーになりすましたとしても見抜けません。そのため、セキュリティ面では認可のみのOAuthより認証機能を有したSAMLのほうが優れているといえます。
SAMLのフロー・認証手順
SAMLによるSSOの認証フローには、「IdP initiated SSO」と「SP initiated SSO」の2種類があります。どちら でSSOが実行されるかは、サービスプロバイダの仕様やアプリケーション設定などによって異なるため、認証を始める前に確認しておきましょう。
「IdP initiated SSO」と「SP initiated SSO」では認証手順が一部異なるため、それぞれについて解説します。
IdP initiated SSOの認証の流れ
「IdP initiated SSO」では、IdPを起点として認証連携が行われます。IdPは「Identity Provider」の略で、SMALによる認証によってユーザー情報(ID・パスワード)の保存や提供を担うサービスです。
「IdP initiated SSO」による認証の流れは以下のとおりです。
- 1.IdPにアクセスし、認証に必要なユーザー情報を入力する
- 2.IdPが入力されたユーザー情報を確認し、問題がなければ認証してSP(サービスプロバイダー)の選択画面に移行する
- 3.2と同時に、IdPはSPがユーザー情報を確認する際に必要な情報として「SAMLアサーション」を生成し、ユーザーに送信する
- 4.ユーザーが利用するSPを選び、そのSPに3で受け取った「SAMLアサーション」を送信する
- 5.SPがサービスへのログインを行う
なお、SP(サービスプロバイダー)とはサービスを提供する事業者のことで、特にWebアプリケーションやクラウドサービスの提供会社、インターネット接続の仲介会社などを指します。
SP initiated SSOの認証の流れ
「SP initiated SSO」では、SP(サービスプロバイダー)を起点として認証連携が行われます。「SP initiated SSO」による認証の流れは以下のとおりです。
- 1.利用したいSPにアクセスする
- 2.SPがユーザーをIdPへリダイレクト(自動転送)する
- 3.ユーザーが認証に必要なユーザー情報(ID・パスワード)を入力する
- 4.IdPが入力されたユーザー情報を確認し、問題がなければ認証して、SPがユーザー情報を確認する際に必要な情報である「SAMLアサーション」を生成し、ユーザーに送信する
- 5.4と同時に、ユーザーをSPへリダイレクトする
- 6.ユーザーが1でアクセスしたSPに、4で受け取った「SAMLアサーション」を送信する
- 7.SPがサービスへのログインを行う
SAML認証によるSSOのメリット
SAML認証によってSSOを実行することには、いくつかのメリットがあります。ここでは、そのうちの3点について解説します。
ユーザーの利便性が向上する
先述のとおり、SAML認証なら1回のユーザー認証で複数のシステム・サービスにアクセスできます。そのため、サービスにログインするたびに認証を行うという煩わしさがなく、利便性が大きく向上します。
また、複数のサービスをひとつのユーザー情報でログインできるため、ID・パスワードの管理の手間を省ける点もメリットです。特にSAML認証によるSSOはアクセスできるシステムやサービスの数が多く、使い勝手の良さが特長といえます。
セキュリティリスクを低減できる
SSOを実行すると、ユーザーが管理するIDやパスワードの数は大幅に減ります。この点は、「ユーザー情報を複数のサービスで使い回す」「メモ書きしてユーザー情報を人目にふれる状態にする」といったセキュリティリスクを防ぐことにもつながります。
また、SAML認証によるSSOでは、ユーザー情報が直接インターネット上に載ることはありません。その点で、情報が漏えいするリスクは低いといえるでしょう。
アクセスの一元管理が可能になる
SAML認証によるSSOでは、ユーザーのアクセス情報を管理者が一元管理できます。これにより、アクセス情報の管理にかかる手間や工数を減らせるとともに、より体系的な管理が行えます。
たとえば、アクセス情報を「ユーザー」や「部署」などのカテゴリに分けて整理することで情報を分析しやすくなったり、トラブル発生時に関連する情報をすばやく見つけられたりします。
SAML認証によるSSOのデメリット
さまざまなメリットがあるSAML認証によるSSOですが、デメリットもあります。導入は、デメリットも考慮した上で判断しましょう。
不正アクセス時の被害が大きくなりやすい
SSOは、1回のユーザー認証で複数のシステム・サービスにアクセスできるようにする仕組みです。そのため、初回のユーザー認証で入力した情報が流出してしまった場合、SSOを利用したシステムすべてに不正アクセスされる恐れがあります。
こうした被害を防ぐには、二段階認証や多要素認証といったプラスアルファの認証システムを導入するのがおすすめです。
SAML非対応の場合は別途対策が必要
SAMLはユーザーの認証に必要な情報をやり取りするための標準規格ですが、すべてのシステムがSAML認証に対応しているわけではありません。特に企業で使われているシステムは、SAML認証に 対応していないケースが多いといえます。
自社のシステムが対応していなかった場合は、SAML認証に準じた別の方式でアクセス管理を行う必要があります。しかし、SAML認証によるSSOのような機能性が見込めない可能性が高く、不便に感じるかもしれません。加えて、SAML認証によるSSOと比べて費用がかさむことも考えられます。
IdPサービスが停止するとアクセスできない
「SAMLのフロー・認証手順」からもわかるとおり、SAML認証では「IdP」がユーザー情報のやり取りで重要な役割を担っています。そのため、IdPサービスが停止してしまうと、SSOで連携している全サービス・システムにアクセスできなくなる恐れがあります。
ビジネスにおいて重要なサービスやシステムでSSOを利用している場合、大きな損害を受けるリスクもないとはいえません。導入前に情報を収集し、極力IdPサービスが停止しにくいSSOを選ぶようにしましょう。
SAML以外のSSOの仕組み
シングルサインオンを実現する仕組みは複数あり、SAMLを使った仕組み(フェデレーション方式)以外の選択肢としては、主に以下の3つがあります。
- エージェント方式
- リバースプロキシ方式
- 代理認証方式
エージェント方式
サーバーやアプリケーションといったWebシステムにエージェントソフト(ユーザーに代わって認証を行う代理人となるソフトウェア)を組み込んでおく方式です。
すべてのWebアプリケーションにエージェントソフトとの互換性があるわけではない点がデメリットですが、Web上でSSOを実現させる方式のため、社内ネットワークに変更を加えなくても導入できるというメリットがあります。
リバースプロキシ方式
ユーザーが使用するデバイスとWebサービスの間に「プロキシサーバー」という中継サーバーを置く方式です。専用のエージェントソフトを導入したプロキシサーバーがアクセス権限などを確認し、認証の可否を判断します。
先に紹介したエージェント方式のように、Webシステムにエージェントソフトを導入する必要がないため、既存のシステムに影響を与えずリリース前の検証を行えます。
代理認証方式
システムやサービスのログイン画面を検知すると、ユーザー情報(ID・パスワード)をユーザーに代わって自動で入力して認証するのが代理認証方式です。この方式では、ユーザーが使用しているデバイスにエージェントソフトをインストールする必要があります。
エージェントソフトの導入こそ必要になりますが、先に紹介したエージェント方式やリバースプロキシ方式よりも導入は比較的容易です。
よくある質問
SAML認証とは?
SAMLとは、SSO(シングルサインオン)などにおいて、ユーザーの認証に必要な情報をやり取りするための標準規格であり、SAMLを用いた認証を「SAML認証」といいます。
詳しくは記事内の「SAMLとは」をご覧ください。
SAMLとOAUTHの違いは?
SAMLとOAuthの大きな違いとして、SAMLが認証と認可を行うのに対し、OAuth(オーオース)は認可のみという点が大きな違いです。OAuthではユーザーを識別できず、なりすましを見抜くことができません。また、データ形式や主な用途、セキュリティ強度、適用範囲なども異なります。
詳しくは記事内の「SAMLとOAuthの違い」をご覧ください。
SAML認証のメリットは?
SAML認証によるSSOには、ユーザーの利便性が向上する、セキュリティリスクが低減する、アクセスの一元管理が可能になるといったメリットがあります。
詳しくは記事内の「SAML認証によるSSOのメリット」をご覧ください。
まとめ
SSOにおいて重要な役割を果たしているSAML認証 は、セキュリティ面に加え、利便性やアクセス管理においても大きなメリットがあります。デメリットもありますが、導入前に対策しておけばリスクを低減することも可能です。
自社のシステム・サービスがSAML認証に対応しているかを確認し、導入が可能であれば自社のニーズに合致したSSOの導入を検討してみてください。
SaaS管理の成功事例集
増え続けるSaaS管理の参考に!Bundle by freeeを導入いただいた企業様の成功事例をご紹介。