
インターネットには多数の便利なWebサービスが公開されており、その多くはIDとパスワードを使って管理されています。しかし利用するサービスによって異なるIDとパスワードを使っていると、管理が繁雑になりがちです。
そのような問題を解決する一つの方法が「シングルサインオン」です。今回はシングルサインオンの概要について徹底解説します。
![]() ![]() |
![]() |
シングルサインオンとは
シングルサインオンとは複数のWebサービスに対して、1つのIDとパスワードのセットで認証できる仕組みのことです。
例えばGoogleやYahoo、Lineなど多くのWebサービスはそれぞれが独立したIDとパスワードの組み合わせを使用してログインできる仕組みになっています。しかしそれではWebサービスごとに異なるIDとパスワードを管理することになり、手間がかかります。
しかしシングルサインオンを導入することで1つのIDとパスワードで複数のWebサービスが利用できます。利用者は複数のIDとパスワードを管理する手間から解放されることで利便性が向上し、さらにはセキュリティリスクの低減にもつながります。
シングルサインオンの特徴
シングルサインオンの最大の特徴は「1回の認証で複数のWebサービスにアクセスできる」ことです。シングルサイオンの導入により、たとえ複数のWebサービスを利用する場合でも、ユーザーは1つのパスワードを記憶すれば事足ります。
複数のパスワードを使って複数のWebサービスを利用する場合は、厳格なパスワード管理が求められます。しかし、シングルサインオンを使えば、防御するべきパスワード1つだけしっかり管理すれば良いことになり、高いセキュリティを実現できます。
一方、システム管理者やWebサービスの提供者の立場から見ると、シングルサインオンの導入は、パスワードなどの認証情報管理の一元化につながるだけでなく、複数の認証情報の管理や認証機能を開発する負担から解放されます。
シングルサインオンの種類と仕組み
シングルサインオンには大きく分類して4つの種類があります。1つずつ見ていきましょう。
エージェント方式
Webサービスを提供するサーバーの中に、認証を代行する「エージェント」モジュールを組み込む方式です。ユーザーからの認証リクエストはWebサーバーが受け取り、エージェントがシングルサインオンサーバーに、ユーザーのログイン状態やアクセス権限を問い合わせて、認証状態を確認します。
リバースプロキシ方式
ユーザーのブラウザとWebサーバーの間にリバースプロキシサーバを設置して、リバースプロキシサーバにエージェントソフトを導入する方法です。
リバースプロキシとは通常のプロキシとは逆に、不特定多数のクライアントからのアクセスから特定のサーバーへのリクエストが必ず通過するように設置されたプロキシサーバのことです。通常はサーバーへの負荷分散のために用意されるものですが、この仕組みをシングルサインオンに活用した方式が、リバースプロキシ方式です。
代理認証方式
利用したいWebサービスのログインページに対して、利用者の代わりにIDとパスワードを送信して、自動的に代理入力させてログインを完了させる方式です。
フェデレーション方式
異なるWebサービスの間をパスワードの代わりとなる「チケット」と呼ばれる情報を受け渡ししてシングルサインオンを行います。パスワードのような重要な情報ではなく、チケットを利用するため安全な認証が実現できます。Office 365やSalesforceなど様々なクラウドサービスで使われている方式です。
シングルサインオンのメリット
シングルサインオンには次の2つのメリットがあります。
利便性の向上
シングルサインオンを利用することで、ユーザーはパスワードを複数管理することなく、様々なWebサービスにログインして利用できます。
多くのパスワードを管理することは、各パスワードの管理がおろそかになりやすいです。例えば良く使うパスワードをポストイットに書いてパソコンに張り付けたり、覚えやすいパスワードを使いまわしたりすることに心当たりはありませんか。シングルサインオンに対応したWebサービスならば、そのような危険な方法でパスワードを管理する必要もありません。
シングルサインオンを使えば1つのパスワードをしっかり記憶しておけば複数のWebサービスが利用できます。例えば普段あまり使わないWebサービスのパスワードを忘れてしまって、大事な時に利用できないといったトラブルからも解放されるでしょう。
複雑なパスワードにすることでセキュリティ向上
シングルサインオンでは1つのパスワードをしっかり管理すればセキュリティを確保できます。管理するべきパスワードとして、十分な長さと複数の種類の文字を組み合わせた複雑なパスワードを設定すれば、攻撃者からパスワードが解読されるリスクを低減でき安全性は高まります。
例えばパスワードに使う文字として英文字だけでなく、数字や記号も組み合わせたり、パスワードの桁数も10桁以上に設定したりすれば、仮に総当たり攻撃(ブルートフォースアタック)の対象となっても、解析に非常に長い時間が要求されるため、解読されるリスクを大幅に減らせます。
シングルサインオンのデメリット
万能に思えるシングルサインオンですが、デメリットもあります。
パスワード漏洩によるリスク
シングルサインオンでは1つのパスワードを使って複数のWebサービスにログインします。つまり使用している1つのパスワードが漏洩してしまうと、全てのWebサービスに対して不正にログインされる可能性が発生します。
このような事態を避けるために、シングルサインオンを利用する時には、ワンタイムパスワードや多要素認証などと組み合わせて認証を強化することがあります。これにより、たとえパスワードが漏洩したとしても、別の手段の認証が要求されるため、不正なアクセスから防御できます。
管理システムのダウンのリスク
シングルサインオンの機能を提供しているサービスや認証情報の管理システムが停止した場合、全てのアカウントにログインできなくなる可能性があります。もしそのような場合、利用しているWebサービスに対して、シングルサインオンではなく、個別のパスワードを利用してログインするなどの対応が必要です。
まとめ
複数のWebサービスを利用するユーザーにとって、適切なIDとパスワードの管理は必須です。しかしインターネット上には様々なWebサービスがあり、それぞれが独自のログイン機能を提供しています。ユーザーはWebサービスごとにIDとパスワードを使い分けることが一般的でした。
シングルサインオンの導入は、ユーザーから繁雑なパスワード管理から解放し、インターネットをさらに便利に活用できるものにしてくれます。しかしデメリットとして紹介したように、シングルサインオンも決して万能な仕組みではありません。シングルサインオンを利用する時には、メリットとデメリットを十分に理解しておくことが重要です。