SSO(シングルサインオン)という名前は聞いたことがなくても、この技術を使った経験がある人は多いでしょう。新しいWebサービスを使うとき、GoogleやTwitter、FacebookなどのIDやパスワードでユーザー登録したことはありませんか? そのときにSSO機能を使っているのです。SSO機能があればユーザー登録やログインがぐっと楽になるため、ユーザーが増えることも期待できます。ここではSSOのメリットや実装方法、認証方式について紹介します。
SSOとは
SSOとは、ひとつのIDとパスワードで複数のWebサービスやクラウドサービスに対してユーザー認証を行うことができる仕組みです。
SSOを利用するWebサービスが増えれば、ユーザーはパスワードを生成・管理する手間が省けるので、より気軽にサービスに登録できるでしょう。システム管理者側も大量のユーザー認証情報を管理したり、サービスごとに認証機能を実装したりする手間が省け、運用が楽になります。
言葉として、「シングル」と組み合わせて使われるのは「サインオン」だけで、「ログイン」「ログオン」「サインイン」と組み合わせることはありません。
パスワード管理ツールとSSO
ログインを容易にする仕組みには、パスワード管理ツールを使う方法もあります。
パスワード管理ツールとSSOの共通点は、ログインのたびにIDとパスワードの入力が不要になることです。しかし、その動作には大きな違いがあります。
- パスワード管理ツール
アプリケーションやWebサービスごとにIDとパスワードを登録します。ログイン時には、パスワード管理ツールが自動的にIDとパスワードを入力するので、手動で入力する必要はありません。パスワードを記憶する必要がないので、ユーザーは複雑で強力なパスワードを利用することも可能です。またIDとパスワードを複数のアプリケーションやWebサービスで共有しないため、漏えいを防ぐこともできます。 - SSO
ひとつのIDとパスワードで、複数のアプリケーションやWebサービスにログインできます。IDとパスワードを共有しているアプリケーションやWebサービスの間を途切れることなく移動でき、ログインのたびにIDとパスワードを入力する必要がありません。何種類ものIDとパスワードを作成して覚える必要がないため、複雑で強力なパスワードを使えます。
SSOを導入することのメリットとデメリット
SSOの導入には、どのようなメリットやデメリットがあるのでしょうか。
SSOを導入することのメリット
SSOを導入すると、ユーザーだけでなく管理者側にとってもメリットがあります。
- ユーザーはログインが楽になる
SSOがなければ、ユーザーはアプリケーションやWebサービスにログインするたびにIDとパスワードを入力しなければなりません。SSOを導入すれば、ユーザーはいちどのログインで複数のアプリケーションやWebサービスにアクセスが可能です。IDとパスワード入力の手間を省くことができ、ユーザーの利便性が大きく向上します。新しいサービスに気軽に登録しやすくなるでしょう。
- ユーザーはパスワードを管理しやすくなる
アプリケーションやWebサービスに登録するたびにIDとパスワードを作成するのが面倒、パスワードを忘れた、覚えられないなどのトラブルはよくあるものです。SSOを導入すれば、ユーザーは複数のIDとパスワードを覚える必要がなく、パスワードの管理が容易になります。
- ユーザーは複雑なパスワードを使うことができる
最近は覚えられないような複雑なパスワードの作成を求められることも多く、管理がより大変になっています。SSOを導入すれば、パスワードを記憶する必要がなくなるので、十分に長くて複雑なパスワードを使うことも容易です。またパスワードを何度も入力する必要がないため、漏えいのリスクも小さくなります。
- 管理者側は運用の手間やコストを削減できる
アプリケーションやWebサービスの管理者には、ログイン失敗によるアカウントのロックやパスワードの再発行など、ログインに関係する処理が大量に発生します。SSOを導入すれば、ログイン関連のトラブルが大きく減少するため、対応する手間やコストを削減できます。
- 管理者側はユーザーの増加が期待できる
SSOを導入すれば、ユーザーは気軽に新しいアプリケーションやWebサービスに登録できるようになります。管理者にとっては、SSOの導入によってユーザーの増加が期待できるでしょう。 - 管理者側はパスワードポリシーを徹底できる
IDとパスワードの作成をユーザーに任せていると、パスワードポリシーを守らないユーザーが出てきます。パスワードポリシーを守らないユーザーとは、突破されやすい単純なパスワードを使用したり、いくつものサービスでパスワードを使い回したりするユーザーのことです。SSOを導入すれば、複雑で長いパスワードを使用するといったパスワードポリシーを遵守させることが容易になり、セキュリティの向上につながります。特に社内システムの場合、SSOを導入してシステム管理部門が全ユーザーのIDとパスワードを一括管理することで、セキュリティを強化できます。
SSOを導入することのデメリット
SSOの導入には、メリットだけでなくデメリットもあります。
- パスワードが漏えいしたときの影響が大きい
SSOでは複数のアプリケーションやWebサービスで同じIDとパスワードを使用します。そのため、そのIDとパスワードが漏えいしてしまえば、多数のアプリケーションやWebサービスに簡単にログインされてしまうのです。生体認証やワンタイムパスワードなどを導入してSSOへのログイン時の認証を強化して、リスクの減少をはかる必要があります。
- SSOのシステムに依存する
ツールを利用してSSOを導入している場合、ログインやパスワードの管理はそのツールに大きく依存してしまいます。例えばSSOツールのサーバーにトラブルがあった場合、SSOを利用したログインができません。このリスクに対応するために、管理者側でIDとパスワードをバックアップしておく必要があります。
- 導入コストが必要
ツールを利用してSSOを導入していると、ツールの利用料金が必要です。多くの場合、初期費用と月額料金がかかりますが、料金はライセンス数によって変動します。 - 連携できないサービスもある
アプリケーションやWebサービスによっては、SSOに対応していません。この場合は独自のIDとパスワードを作成してユーザー登録を行う必要があるため、利便性が落ちてしまいます。
SSOはどうやって実装するのか
SSOの実装方法と、よく使われる認証方法を説明します。
SSOを実装する方法
SSOを自社のサイトに実装するには、ふたつの方法があります。
- プログラミング
自社開発、もしくは外注でSSO機能を実装する方法です。ゼロからプログラミングして開発する場合と、ライブラリをカスタマイズする方法がありますが、両者とも自社にプログラミングスキルを持つ人材が求められます。必要な機能を自由に実装したり、社内の既存システムとの連携をしたりも容易で、コストも抑えられます。ただし運用は自社で行わなければなりません。
- ツールを利用する方法
クラウドサービスなどで提供されているSSOツールを導入する方法です。ログイン部分だけを提供するツールと、システム全体を開発するなかでSSO導入機能を持っているものがあります。ツールの場合は使用できる認証方式が決まっているものが多いため、使いたい認証方式を選びます。社内の既存システムにうまく連携できるかどうかもポイントです。
SSOでよく使われている認証方法
SSOでは、次の5つの認証方法がよく使われています。認証方式を選ぶときには、必要な機能を持ち、自社のアプリケーションやWebサービスが対応しているものを選びましょう。
- ケルベロス認証
最初にログインするときに「チケット」を取得し、以降はチケットを利用してログインを行う方法です。チケットは暗号化されており、有効期限が設定されています。ただし、チケットは同一ドメイン内でのみ有効で、クラウドサービスのような外部のサービスでは使えません。
- SAML認証
SAML (Security Assertion Markup Language) 認証は、ユーザー、SSOサービス、Webサービスの3者間で認証を行う方法です。IDとパスワードはユーザーとSSOサービスの2者間でやりとりされ、WebサービスはSSOでの認証があれば利用できます。XMLベースで認証を行うので、クラウドサービスでの利用に向いています。
- エージェント型(エージェント方式)
Webサービスに「エージェント」と呼ばれるアプリケーションを組み込む方法です。最初にログインするときにエージェントがSSOサーバーに認証情報を確認し、HTTP cookieを発行します。以降はHTTP cookieを確認することで認証が可能です。エージェントのアプリケーションを組み込めるWebサーバーでのみ利用ができます。
- リバースプロキシ型
Webサービスのあるアプリケーションサーバーとは別にリバースプロキシサーバーを立て、エージェントを組み込む方法です。アプリケーションサーバーとリバースプロキシサーバーを分離することで、アプリケーションサーバーを修正する必要がありません。また、すべてのアクセスはリバースプロキシサーバーを経由するため、セキュリティを確保しやすくなります。ただし、アプリケーションサーバーの数だけエージェントのアプリケーションが必要です。
- フェデレーション方式
IDとパスワードの代わりに「チケット」を利用する方法で、クラウドサービス間で利用できます。SAML認証を利用する方法とIDトークンを利用するOpenID Connectのふたつのプロトコルがあります。多くのクラウドサービスでフェデレーション方式への対応が進んでおり、これからの主流とされています。
SSOの導入はユーザーだけでなくWeb管理者側にも大きなメリットがある
SSOの導入は、ユーザー登録が容易になり、パスワードを忘れるリスクも小さくなるなどユーザーにとって大きなメリットがあります。しかも、メリットがあるのはユーザーだけではありません。Webサービスの管理者側では、ユーザー認証データの管理が楽になり、ユーザーの離脱を防ぐことができます。ぜひ導入を見当したいところです。
SSO機能のみを追加するツールもたくさん提供されていますが、Webシステム全体を作成するほうが安定したシステムを容易に実現できるでしょう。
サイバーウェーブ「VALUE KIT」の部品「会員 二段階認証」なら、SSOにかぎらず高いセキュリティの会員管理システムを実装し、管理画面も強化できます。既定の部品を利用して開発を行うので、実装が早いだけでなく、自社に合わせた細かなカスタマイズが可能です。詳しくは、発注した段階で7割が完成している極力開発をしない開発会社の「VALUE KIT」をご覧ください。