InfraAcademy

InfraAcademy Blog

SAML認証の仕組みを図解で解説【初心者向けにSMAL認証の流れを詳しく説明します!】

こんにちは、インフラエンジニアのryuです。

今回は、SAML認証の仕組みを図解で解説します。SAMLとは、認証や認可の情報を違うドメイン間で安全にやり取りする規格です。シングルサインオン(SSO)を実現する仕組みです。SAML認証の仕組みを図解を用いて、初心者の方に分るように解説します。

SAML認証の仕組みを解説

SAML認証って何・・・?

SAMLとは、認証や認可の情報を違うドメイン間で安全にやり取りする規格です。

SAML認証の仕組みは以下の通りです。

  1. ブラウザからサービスにアクセス
  2. 利用者はユーザ情報を入力
  3. IDPは認証応答をブラウザ経由でSPに送信
  4. SPはサービスの提供を開始する

IDPやSPなど見慣れない用語がありますが、あとで解説します。

では、SAML認証の仕組みを詳しく解説します!

SAML認証の仕組みを理解するための用語解説

SAML認証の仕組みを理解するために2つの用語を覚えましょう。

  1. SP・・・Service Provider
  2. IDP・・・ID Provider

SPとは、サービスプロバイダーの略で、サービスの提供をするサーバーです。

IDPとはIDプロバイダーの略で、クライアントの認証を行います。

SAML認証を理解するには、SPとIDPの2つは覚えておきましょう。

SAML認証の流れを理解しよう!

ここからは、SAML認証の流れについて解説します。SAML認証はこちらの手順で進みます。

  • ブラウザからサービスにアクセス
  • 利用者はユーザ情報を入力
  • IDPは認証応答をブラウザ経由でSPに送信
  • SPはサービスの提供を行う

では、SAMLの流れについて詳しく見ていきましょう。

ブラウザからサービスにアクセス

ここから、SAML認証の仕組みを解説します。

まず、ブラウザーからサービスにアクセスします。

例として、Office365で解説します。

まず、Office365を起動します。Excelでブックを作成しようとすると、Microsoftの認証画面が表示されます

samlログイン画面

ここまでの流れを図にすると以下のようになります。

SAML認証の仕組み まず、サービス(Excel)を使いたい!と要求を出します。そうすると、SPはIDPのサーバーで認証してね!とリダイレクト指示を出します。リダイレクトの指示を受けたブラウザーは、IDPにアクセスします。そして、IDPは応答を返し、ブラウザーに認証画面が表示されます。

利用者はユーザ情報を入力

次に、利用者はユーザ情報を入力します。

普通のログインと同じ動作です。ユーザ名とパスワードの入力を行います。

ここの説明は簡単なのでこれくらいにします。

先ほどの例では、Microsoftのアカウントで認証を行います。アカウント情報はIDPに保存されています。

IDPは認証応答をブラウザ経由でSPに送信

ユーザ名とパスワードの入力が完了すると、IDPは認証アサーションをブラウザ経由でSPに送信します。

認証アサーションとは、ユーザの情報をXML形式で記述したものです。

ここまでの動作は以下のようになります。

SAML認証応答

SPはサービスの提供を開始する

最後に、認証アサーションを受け取ったSPは、認証アサーションを検証します。検証に成功したら、SPはサービスの提供を開始します。

これで、クライアントはサービスを使えるようになります。

先ほどの例では、MicrosoftアカウントでログインしてからExcelが利用できるようになります。

SAML認証仕組みまとめ

最後にまとめです。

Office365でExcelを利用することで説明します。

  1. ブラウザからサービスにアクセス・・・Office365でExcelを利用
  2. 利用者はユーザ情報を入力・・・Microsoftアカウントを入力
  3. IDPは認証応答をブラウザ経由でSPに送信
  4. 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"});

リンク

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

Related

関連記事

ブログ一覧へ