2018年5月22日火曜日

シングルサインオン(SSO)とは?使うと何がうれしいの?

シングルサインオンとは何でしょうか?端的に表現するとすれば、「関連のない複数のサービスを一回の認証で利用可能にする仕組み」ということになるでしょう。では、そうすることで、なにが嬉しいのでしょうか。今回は、その仕組みを簡単に説明し、導入のメリットをご紹介いたします。


シングルサインオンの仕組み

冒頭で述べたとおり、シングルサインオン(英語: Single Sign-On)は、一回認証すれば、複数のサービスを利用できるようにする仕組みです。サービスAと、サービスBは、異なるプロバイダから提供されていて、なんの関わりもなく、IDやパスワードが異なるというケースでも、SSOに対応していれば、一回の認証で対象サービスでも正しく認証が済んでいて利用することができます。では、その仕組みなどのようになっているのでしょうか。ここでは、昨今のSSOの実装方式としてデファクトスタンダードと言える「SAML2.0」の仕組みを簡単にご紹介します。
SAML2.0は、多くのクラウドサービスで対応されている方式で、特定のベンダーに依存しない標準技術です。SAMLの世界の登場人物は、以下の3つと考えます。

  • サービスを提供する側(Service Provider: SP)
  • 認証を提供する側(Identity Provider: IdP)
  • 利用者

利用者がサービスを利用するまでには、以下のような経過を辿ります。

  1. 利用者がブラウザで、SPが提供するサービスのページにアクセスする。
  2. SPでは、アクセスしてきた人が正しい利用者かどうかわからないので、特定のIdPのURLを生成して、利用者に「ここで認証してきて」と伝える(ユーザのブラウザはリダイレクトされ、利用者自身は意識しません)。
  3. 利用者はリダイレクト先のIdPで、ID・パスワード等で認証を試みます。
  4. IdPは、得られた認証情報をチェックし、IdPに登録済みの特定のユーザであることを確認します。認証情報が正しい場合、利用者に「ここに戻って」と、前の工程でSPにより生成されたURLに予め設定されていたURLと正しく認証が出来たことをしめす情報を伝えます(ユーザのブラウザはリダイレクトされ、ここでも利用者自身は意識しません)。
  5. SPでは、利用者がIdPで正しく認証してきたことを確認し、サービスの利用を許可します。
このように、SPとIdPが直接やり取りするのではなく、利用者のブラウザを経由したやり取りにより、SSOが実現されます。

なぜSAML2.0がデファクトスタンダード

現在、多くのサービスがクラウドサービスとして提供され、ブラウザのみで利用されるサービスがほとんです。Googleを始めとして、Office365や、Salesforce、Dropbox、Box、Slack、Zendeskなど、様々なサービスが展開されています。これらのサービスは、専用アプリを使うものもありますが、ブラウザでも利用可能です。
さらに、サービスがクラウド上にあり、オンプレミスサービスとして社内で管理しなくなると、全部外に持って行きたくなります。SSOの方式として、エージェントを置いたり、リバースプロキシを置いたりする方式もありますが、SAML方式は、それに対応したSPであれば、ブラウザのみで他に追加の条件が不要になります。
クラウド時代にマッチした方式として、多くのクラウドサービスプロバイダが実装しているのも頷けます。

SSO導入のメリット

では、SSOを導入すると、何かいいことがあるのでしょうか。どのメリットにどのくらいの重みがあるかは、組織によって異なりますが、以下のような点が挙げられます。

  1. 利用者が認証処理を繰り替えす事なく、複数のサービスを利用できる。(利便性)
  2. 利用者が複数のサービスのID/パスワードを覚える必要がない。(利便性)
  3. 2.により、パスワードの使い回しを防ぐことができる。(セキュリティの強化)
  4. 利用者の利用停止をする場合、IdPで無効化するだけで、サービスごとに無効にしなくても良い。(利便性・セキュリティの強化)
このように、一般の利用者にとっては、その利便性が向上することで、本来自分がやるべき事に集中してもらうことができます。管理者にとっては、セキュリティの強化と、管理業務の軽減が見込めます。

IdPの立場に立つと、SSOだけだともったいない

今回は、SSOの概要と、そのメリットについて見てみました。ただ、SSOにおけるIdPの立場に立つということは、SSOだけしているのでは、もったいない大きな意味があります。その意味は、また別の機会にご紹介いたします。



   Gluegent Gate