こんにちは、インフラエンジニアのryuです。
今回は、SAML認証の仕組みを図解で解説します。SAMLとは、認証や認可の情報を違うドメイン間で安全にやり取りする規格です。シングルサインオン(SSO)を実現する仕組みです。SAML認証の仕組みを図解を用いて、初心者の方に分るように解説します。
SAML認証の仕組みを解説¶
SAML認証って何・・・?
SAMLとは、認証や認可の情報を違うドメイン間で安全にやり取りする規格です。
SAML認証の仕組みは以下の通りです。
- ブラウザからサービスにアクセス
- 利用者はユーザ情報を入力
- IDPは認証応答をブラウザ経由でSPに送信
- SPはサービスの提供を開始する
IDPやSPなど見慣れない用語がありますが、あとで解説します。
では、SAML認証の仕組みを詳しく解説します!
SAML認証の仕組みを理解するための用語解説¶
SAML認証の仕組みを理解するために2つの用語を覚えましょう。
- SP・・・Service Provider
- IDP・・・ID Provider
SPとは、サービスプロバイダーの略で、サービスの提供をするサーバーです。
IDPとはIDプロバイダーの略で、クライアントの認証を行います。
SAML認証を理解するには、SPとIDPの2つは覚えておきましょう。
SAML認証の流れを理解しよう!¶
ここからは、SAML認証の流れについて解説します。SAML認証はこちらの手順で進みます。
- ブラウザからサービスにアクセス
- 利用者はユーザ情報を入力
- IDPは認証応答をブラウザ経由でSPに送信
- SPはサービスの提供を行う
では、SAMLの流れについて詳しく見ていきましょう。
ブラウザからサービスにアクセス¶
ここから、SAML認証の仕組みを解説します。
まず、ブラウザーからサービスにアクセスします。
例として、Office365で解説します。
まず、Office365を起動します。Excelでブックを作成しようとすると、Microsoftの認証画面が表示されます。

ここまでの流れを図にすると以下のようになります。
まず、サービス(Excel)を使いたい!と要求を出します。そうすると、SPはIDPのサーバーで認証してね!とリダイレクト指示を出します。リダイレクトの指示を受けたブラウザーは、IDPにアクセスします。そして、IDPは応答を返し、ブラウザーに認証画面が表示されます。
利用者はユーザ情報を入力¶
次に、利用者はユーザ情報を入力します。
普通のログインと同じ動作です。ユーザ名とパスワードの入力を行います。
ここの説明は簡単なのでこれくらいにします。
先ほどの例では、Microsoftのアカウントで認証を行います。アカウント情報はIDPに保存されています。
IDPは認証応答をブラウザ経由でSPに送信¶
ユーザ名とパスワードの入力が完了すると、IDPは認証アサーションをブラウザ経由でSPに送信します。
認証アサーションとは、ユーザの情報をXML形式で記述したものです。
ここまでの動作は以下のようになります。

SPはサービスの提供を開始する¶
最後に、認証アサーションを受け取ったSPは、認証アサーションを検証します。検証に成功したら、SPはサービスの提供を開始します。
これで、クライアントはサービスを使えるようになります。
先ほどの例では、MicrosoftアカウントでログインしてからExcelが利用できるようになります。
SAML認証仕組みまとめ¶
最後にまとめです。
Office365でExcelを利用することで説明します。
- ブラウザからサービスにアクセス・・・Office365でExcelを利用
- 利用者はユーザ情報を入力・・・Microsoftアカウントを入力
- IDPは認証応答をブラウザ経由でSPに送信
- SPはサービスの提供を開始する・・・Excelが使える
③の部分では、AzureActiveDirectoryの動作があるので、詳細の説明は省略します。
簡単に説明すると、Micorosoftのアカウント情報を持っているデータベースで認証処理をしています。
これでSAML認証の仕組みの説明を終わります。
SAML認証はシングルサインオンを行うために必要な技術です。シングルサインオンを実装するためには、仕組みを理解しておく必要があるので、ぜひ覚えましょう。
その他のインフラやセキュリティに関する知識については、こちらで解説しています。
さらにセキュリティを勉強したい方は、こちらの参考書がオススメです。
(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject\=a; b[a]\=b[a]||function(){arguments.currentScript\=c.currentScript ||c.scripts[c.scripts.length-2];(b[a].q\=b[a].q||[]).push(arguments)}; c.getElementById(a)||(d\=c.createElement(f),d.src\=g, d.id\=a,e\=c.getElementsByTagName("body")[0],e.appendChild(d))}) (window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js","msmaflink"); msmaflink({"n":"マスタリングTCP\/IP 情報セキュリティ編","b":"","t":"","d":"https:\/\/m.media-amazon.com","c_p":"","p":["\/images\/I\/41eamXwMAIL.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/4274069214","t":"amazon","r_v":""},"aid":{"amazon":"1841358","rakuten":"1841357"},"eid":"y85QZ","s":"s"});
リンク
(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject\=a; b[a]\=b[a]||function(){arguments.currentScript\=c.currentScript ||c.scripts[c.scripts.length-2];(b[a].q\=b[a].q||[]).push(arguments)}; c.getElementById(a)||(d\=c.createElement(f),d.src\=g, d.id\=a,e\=c.getElementsByTagName("body")[0],e.appendChild(d))}) (window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20210203","msmaflink"); msmaflink({"n":"ホワイトハッカー入門","b":"","t":"","d":"https:\/\/m.media-amazon.com","c_p":"","p":["\/images\/I\/51gVy0MH9ML.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/B08LMVLVPD","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/B08LMVLVPD","a_id":1841358,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":2,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/%E3%83%9B%E3%83%AF%E3%82%A4%E3%83%88%E3%83%8F%E3%83%83%E3%82%AB%E3%83%BC%E5%85%A5%E9%96%80\/","a_id":1841357,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2}],"eid":"JK6Dc","s":"s"});
リンク