シングルサインオンとはどんな仕組み?導入のメリット・デメリットまで解説

近年、業務上に限らず日常生活においても、一個人が利用するアプリケーションやWebサービスは非常に多くなりました。 そのひとつひとつでアカウントを作成して、ログインするときはIDとパスワードを入力して・・・というように、利用するサービスが増えるごとに、負担も増えてしまいます。 そこで考えられたのが「シングルサインオン」という仕組みです。 この記事では、シングルサインオンがどういった仕組みなのか、そしてシングルサインオンを利用することのメリット・デメリットまでを解説します。

そもそもシングルサインオンとは

そもそもシングルサインオンとは

そもそもシングルサインオンとは[/caption] 具体的な仕組みを解説する前に、そもそもシングルサインオンがどういった考え方なのかを解説します。 シングルサインオン(SSO)とは、複数のアプリケーションやWebサービスへのユーザー認証を一括で行うシステムのことです。 現在は、「シングル(一回)」ではなく、二段階認証などの複数回の認証が必要なサービスが増えたため、それらも含めて「リデュースドサインオン(reduced sign-on)」と呼ばれることもあります。 いままでは、使用するサービスごとにIDやパスワードを設定し、そのサービスを使うたびにそれらをフォームに入力してログインしていました。 いくつものアカウントを作るとき、多くの人はパスワードを使いまわすか、簡単なパスワードを設定しがちで、それによって不正アクセスのリスクが高まります。 しかし、パスワードを使いまわしたり、簡単なパスワードを使ってしまう人でも、 「このアカウントが非常に重要なもの」 という認識があれば、そのアカウントに簡単なパスワードを設定する可能性は低いでしょう。 このユーザー認証を一括で行うことで、サービスひとつひとつにログインしたり、パスワードを複数管理したりする労力が省け、且つ様々なアカウントが紐付いている重要なアカウントのため、ある程度の難しさのパスワードを入れる可能性が高くなります。 また、パスワードをメモやアプリケーションで管理することで、パスワードの紛失・流出のリスクが少なくなります。 最も利用されているシングルサインオンの例として、「Googleアカウントでログイン」という方法があります。 これは、他のサービスでのログインをGoogleアカウントで代用する仕組みです。 Appleユーザーであれば「Appleでサインイン」から、AppleのパスワードかTouch IDなどで他サービスにログインする方法があります。 また、TwitterやFacebookなどのSNSアカウント、LINEなどの通信アプリのアカウントでログインできるWebサービスも増えました。

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

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

シングルサインオンの仕組み[/caption] シングルサインオンはどのようにしてユーザー認証をしているのでしょうか。 シングルサインオンは「ユーザー認証を一括で行う」というシステムの考え方ですので、それを実現する仕組みは様々あります。 それらの仕組みを、「代理認証方式」「フェデレーション方式」「エージェント方式」「透過型方式リバースプロキシ方式」の4つに分けて解説します。 ここで紹介する方式以外にも、Windowsネットワークに実装されている「ケルベロス認証方式」などがあります。

代理認証方式

代理認証方式(代行入力型)とは、シングルサインオンのシステムがユーザー認証を代行する方式です。 アプリケーションにログインする際に、IDやパスワードをユーザーの代わりにアプリケーションへ送信し、ログインを完了させます。 基本的な流れは、ユーザー認証のための情報を管理しているSSOサーバーに問い合わせ、SSOトークンというものを発行してもらいます。 そしてリバースプロキシサーバーにリクエストを行い、SSOサーバーがそのリクエスト情報を確認します。 事前に紐づけられたユーザー情報と一致した場合、リバースプロキシサーバーがユーザーに認証済みCookieを送信します。 これによって、対象のアプリケーションにログインできます。 また、代理認証方式を含め、このようにリバースプロキシサーバーを使用してシングルサインオンを実現する仕組みを「リバースプロキシ方式」と呼びます。 古いアプリケーションだと、アプリケーションの側でシングルサインオンに対応する、つまりアプリケーション内部にシングルサインオンのシステムを導入することが難しい場合があります。 そうした場合に、代理認証方式が使われます。 代理認証方式によるシングルサインオンには、フォームベース認証やBasic認証といった認証方法があります。

フェデレーション方式

フェデレーションとは「認証連携」という意味で、クラウドサービスの普及とともに注目されるようになった方式です。 正規に認証されたユーザー情報を異なるドメイン間で連携することで、ユーザー認証を一括で行うことができます。 ユーザーはまず、SSOサーバーにログインします。 そこで、SSOサーバーとクラウドサービス間でアカウント連携が済んでいる場合、SSOサーバーがクラウドサービスにユーザー情報を送ります。 これで、連携されたアカウントがログイン済みになります。 フェデレーション方式は現在、SAML(Security Assertion Markup Language) 認証など、標準化が進んでおり、今後より普及するシングルサインオンの方式です。

エージェント方式

エージェント方式は、代理認証方式とは違い、アプリケーション側にエージェントソフトウェアを組み込む方式です。 エージェントソフトウェアがユーザーとアプリケーションとの通信に割り込み、SSOサーバーとユーザー認証の状態を確認することでログインできます。 SSOサーバーへのユーザー認証の仕組みは代理認証方式と同じです。 古いアプリケーションやクラウドサービスの場合はエージェントソフトウェアの実装が難しいので、他の方式を使います。

透過型方式

SSOサーバーがユーザーとアプリケーションとの通信を監視し、ユーザー認証が必要なときのみ、連携されているユーザー情報を送信するのが「透過型方式」です。 エージェント方式などと違い、アプリケーションにソフトウェアを組み込む必要がないので、手軽に導入することができる方式です。 ここまで紹介した中でも比較的新しい方式で、これまでの方式にあった問題の多くを解消しています。

シングルサインオンのメリット

シングルサインオンのメリット

シングルサインオンのメリット[/caption] ここからは、シングルサインオン導入のメリットとデメリットを解説します。 まずはシングルサインオンのメリットからです。

認証アカウント・パスワード管理の負担が減る

シングルサインオンによって、IDやパスワードをその都度作成し、複数を管理するといった負担が解消されます。 これまではアプリケーションやWebサービスを利用するのに、そのアプリケーションごとにパスワードを設定していました。 その際に、パスワードを使いまわしたり、簡単なパスワードを作成すると、パスワードを紛失したり、不正アクセスの被害に遭いやすいという問題がありました。 また、使用するアカウントが増えると、そのぶん管理するのに労力がかかります。 シングルサインオンで一元管理することで、そうした問題を解決することができます。 また、サービスへのログインも手軽に行えるようになります。

低コストで導入・運用ができる

シングルサインオンの方式によりますが、多くの場合、シングルサインオンは低コストでの導入・運用が可能です。 これまでのID統合管理システムは導入に時間がかかり、また利用料金も高額なものが多かったのです。 ですが、シングルサインオンの実現のために、ユーザー側が技術的になにかをするということはほとんどありません。 さらに、GoogleアカウントやApple IDを用いる方法など、無料のシングルサインオンサービスもあります。 有料のシングルサインオンサービスですと、ソフトウェアを購入する以外に、サブスクリプション制のサービスもあります。 こちらはクラウドを利用したサービスであることが多いです。

技術的にも導入が楽

前項で少し触れましたが、導入に技術的なスキルはほとんど必要ありません。 具体的には、Googleのシングルサインオンであれば、Googleアカウントから認証情報「OAuthクライアントID」を新規で作成し、 ・クライアント側 ・サーバー側 で、各20行から30行程度の記述があれば大丈夫です。 具体的な認証等はライブラリを読み込んで完成するため、そのソースのほとんどがAPIへパラメータを送るためだけに必要となります。 また、具体的なソースは無料のものであればネットにそれぞれの言語でありますし、有料のものであれば、提供会社がサンプルソースをサイト内に記述してくれるのが一般的です。 そのため、通常のAPIを活用するよりもハードルは低いと考えられます。

シングルサインオンのデメリット

シングルサインオンのデメリット

シングルサインオンのデメリット[/caption] 次に、シングルサインオンのデメリットについて解説します。

情報流出時の被害が大きい

シングルサインオンによって、IDやパスワードを統一し、ユーザー認証を一括で行っています。 ということは、その統一されたユーザー情報が流出したときの被害は、通常のユーザー情報流出よりもかなり大きくなってしまいます。 シングルサインオンで利用するユーザー情報が流出すると、シングルサインオンでログインしていたすべてのアプリケーションやWebサービスに不正にアクセスされてしまいます。 多くのシングルサインオンサービスでは、ユーザー情報が流出しないよう、セキュリティ対策に注力しています。 例えば、SSOサーバーのセキュリティ対策以外にも、ワンタイムパスワードの活用、ユーザーの生体認証や二段階認証などによって、セキュリティを高めています。 それでも、流出時の被害が大きいというデメリットは、しっかりと把握しておく必要があります。 また、たとえ二段階認証を導入しているサービスだったとしても、二段階認証を「強制しているか」には注意しておきましょう。 強制していない場合、ユーザーが面倒くさいという理由でやらない可能性もあり、特に企業で活用する場合には注意が必要です。

システムエラーが起こるとログインできなくなる

SSOサーバーなどのシングルサインオンを実行しているシステムにエラーが起こったり、システムが停止してしまったりすると、シングルサインオンを利用していたアプリケーションやWebサービスにログインできなくなってしまいます。 使用時の緊急性が高いものや、頻繁に利用する重要なアプリケーションなどについては、シングルサインオンとは別のログイン方法を用意しておく必要があるでしょう。

シングルサインオンが利用できないサービスもある

すべてのアプリケーションやWebサービスでシングルサインオンが利用できるわけではありません。 シングルサインオンの方式によっても、導入できるサービスと導入できないサービスがあります。 現在利用しているサービスやシステムにシングルサインオンが導入可能かどうかは、事前に調べておきましょう。

新しい技術の導入相談ならAMELAに

新しい技術の導入相談ならAMELAに

新しい技術の導入相談ならAMELAに[/caption] 今回は、シングルサインオンという技術について触れてきました。 たくさんのウェブサービスが出てくるに連れ、毎回ログインするのが面倒なため、シングルサインオンの需要は今後もどんどんと増えるでしょう。 企業においても、 ・勤怠システム ・経費申請システム ・ワークフローシステム など、複数のサービスを導入している事が多いです。 これらのサービスに毎回ログインをさせるのは、社員の負担になりますし、 「パスワードがわからなくなった」 などの問い合わせが多発した結果、情報システム部門に負担がかかっている・・・という企業も見てきました。 そのため、企業においてもシングルサインオンの導入は非常に効果的だと考えております。 もしも現状、仕事において悩みを持っていたり 「もっとこうなってほしい」 という希望がある場合には、是非ご連絡下さい。 AMELAが御社に最適なご提案をいたします。