シングルサインオン(SSO)とは?使うと何がうれしいの?
シングルサインオンとは何でしょうか?端的に表現するとすれば、「関連のない複数のサービスを一回の認証で利用可能にする仕組み」ということになるでしょう。では、そうすることで、なにが嬉しいのでしょうか。今回は、その仕組みを簡単に説明し、導入のメリットをご紹介いたします。
シングルサインオンの仕組み
冒頭で述べたとおり、シングルサインオン(英語: Single Sign-On)は、一回認証すれば、複数のサービスを利用できるようにする仕組みです。サービスAと、サービスBは、異なるプロバイダから提供されていて、なんの関わりもなく、IDやパスワードが異なるというケースでも、SSOに対応していれば、一回の認証で対象サービスでも正しく認証が済んでいて利用することができます。では、その仕組みなどのようになっているのでしょうか。
ここでは、昨今のSSOの実装方式としてデファクトスタンダードと言える「SAML2.0」の仕組みを簡単にご紹介します。 SAML2.0は、多くのクラウドサービスで対応されている方式で、特定のベンダーに依存しない標準技術です。SAMLの世界の登場人物は、以下の3つと考えます。
- サービスを提供する側(Service Provider: SP)
- 認証を提供する側(Identity Provider: IdP)
- 利用者
利用者がサービスを利用するまでには、以下のような経過を辿ります。
- 利用者がブラウザで、SPが提供するサービスのページにアクセスする。
- SPでは、アクセスしてきた人が正しい利用者かどうかわからないので、特定のIdPのURLを生成して、利用者に「ここで認証してきて」と伝える(ユーザのブラウザはリダイレクトされ、利用者自身は意識しません)。
- 利用者はリダイレクト先のIdPで、ID・パスワード等で認証を試みます。
- IdPは、得られた認証情報をチェックし、IdPに登録済みの特定のユーザであることを確認します。認証情報が正しい場合、利用者に「ここに戻って」と、前の工程でSPにより生成されたURLに予め設定されていたURLと正しく認証が出来たことをしめす情報を伝えます(ユーザのブラウザはリダイレクトされ、ここでも利用者自身は意識しません)。
- SPでは、利用者がIdPで正しく認証してきたことを確認し、サービスの利用を許可します。
このように、SPとIdPが直接やり取りするのではなく、利用者のブラウザを経由したやり取りにより、SSOが実現されます。
なぜSAML2.0がデファクトスタンダード
現在、多くのサービスがクラウドサービスとして提供され、ブラウザのみで利用されるサービスがほとんです。Googleを始めとして、Office365や、Salesforce、Dropbox、Box、Slack、Zendeskなど、様々なサービスが展開されています。これらのサービスは、専用アプリを使うものもありますが、ブラウザでも利用可能です。
さらに、サービスがクラウド上にあり、オンプレミスサービスとして社内で管理しなくなると、全部外に持って行きたくなります。SSOの方式として、エージェントを置いたり、リバースプロキシを置いたりする方式もありますが、SAML方式は、それに対応したSPであれば、ブラウザのみで他に追加の条件が不要になります。 クラウド時代にマッチした方式として、多くのクラウドサービスプロバイダが実装しているのも頷けます。
SSO導入のメリット
では、SSOを導入すると、何かいいことがあるのでしょうか。どのメリットにどのくらいの重みがあるかは、組織によって異なりますが、以下のような点が挙げられます。
- 利用者が認証処理を繰り替えす事なく、複数のサービスを利用できる。(利便性)
- 利用者が複数のサービスのID/パスワードを覚える必要がない。(利便性)
- 2.により、パスワードの使い回しを防ぐことができる。(セキュリティの強化)
- 利用者の利用停止をする場合、IdPで無効化するだけで、サービスごとに無効にしなくても良い。(利便性・セキュリティの強化)
このように、一般の利用者にとっては、その利便性が向上することで、本来自分がやるべき事に集中してもらうことができます。管理者にとっては、セキュリティの強化と、管理業務の軽減が見込めます。
IdPの立場に立つと、SSOだけだともったいない
今回は、SSOの概要と、そのメリットについて見てみました。ただ、SSOにおけるIdPの立場に立つということは、SSOだけしているのでは、もったいない大きな意味があります。その意味は、また別の機会にご紹介いたします。