これだけは知っておきたい!SSO導入の基礎基本

schedule 2017/08/15  refresh 2023/11/09

 

今日的課題を解消するSSO

通常、業務システムやクラウドなど何らかのシステムやWebサービスを用いるときには、その都度IDとパスワードを入力するなどして本人認証を行い、ログインしなければなりません。しかしこの方法では、今日のように多種多様なシステムを複雑に使いこなさねばならない状況では、パスワード管理や入力の手間が増大し続け、業務効率を大幅に低下させかねないほか、覚えきれないパスワードをメモで残すなど、初歩的かつ深刻なセキュリティリスクにつながりがちです。

 

こうした問題を解消する目的で利用されるのが、シングルサインオン(SSO)です。この仕組みを導入すると、マスターサービスに1度だけログインすれば、それ以降全てのシステム・サービスを都度ログインなしで利用可能となり、シームレスにアクセスできるようになります。

 

利便性の高いシングルサインオンですが、当然ながら総括される最初の認証ポイントにセキュリティ上の脆弱性が存在すると、影響が全体に及んでしまいます。ですから導入にあたっては、十分な安全性が担保される環境として構築、設定を行わなければなりません。さまざまな業者から提案されるサービスの中で、どれが最適かを見極める必要もあります。そこで今回は、担当者が知っておきたいSSO導入のポイントについて解説しましょう。

 

 

 

SSOの実現手法を大別して理解しよう!

まずシングルサインオンの実現方式には、大きく分けて4つのものがあります。1つは「エージェント方式」と呼ばれるもので、サーバーやアプリサーバーにSeciossLink(セシオスリンク)など、「エージェント」と呼ばれる仲介役のソフトウェアを導入する方式です。エージェントがブラウザとアプリの通信の間に入り、認証状態を確認する仕様で、ユーザー情報はHTTPリクエストに付加されて連携されます。システムがこの情報を取得してセッションを管理することにより、個別のパスワードが不要となるのです。基本的に導入時はウィザードに従ってデータ入力を行えば、すぐにシングルサインオンを実現できます。

 

2つ目は「リバースプロキシ方式」で、ブラウザとサーバーの間にエージェントソフトウェアがインストールされた専用の「リバースプロキシサーバー」を設置、これを経由させてシングルサインオンを実現します。個々のサーバーにエージェントを導入する必要性がなく、複数アプリへ展開しやすいほか、システムの外部公開が求められる場合などでも、より安全に公開、運用していけるメリットがあります。

 

3つ目は「代理認証方式」と呼ばれるもので、対象アプリのログインページに対し、ユーザーの代わりに認証情報を送信、ログインを完了させます。アプリが古いものであったり、パッケージソフトの仕様からSSO対応が不可能であったりする場合に有効な方法で、前述の2方式のいずれかと組み合わせて利用します。事前にID管理製品などで情報連携を行っておく必要があるほか、アプリの管理認証情報と、ID管理製品が管理する認証情報が完全に同期していなければならないなど、導入にあたりクリアすべき条件がいくつかあります。

 

最後は、クラウドサービスの拡大により注目されてきている「フェデレーション方式」です。この場合、ユーザーはサービスの利用前にIDプロバイダからの認証を受けて、「トークン」と呼ばれる許可書を受け取ります。あとはこれを通じた連携アクセスで複数のサービスやアプリを利用可能となるのです。SSOサーバーおよびクラウドサービスの設定のみで実現できる容易さや、近年の企業システムにおけるオンプレミスとクラウドのハイブリッド環境に対応させやすい点が魅力としてあり、この方式に使えるプロトコルの標準化も進んできています。現在使われているものには、SAMLやOpenID Connectなどがあります。

 

どの方式が最適かは、各種システムやサービスの使い方、業種業態の特性などによって異なってきます。既存のIT環境との相性やメリット・デメリットを十分考慮して、適した方式と製品を選定しましょう。

 

 

導入における留意点

いずれの方法にしても、シングルサインオンは同じID、パスワードを使い回すことによって利便性を得る仕組みになります。よってセキュリティ面を考えると、ワンタイムパスワードや生体認証、SMS認証などの二要素認証を組み合わせて導入することも検討すべきです。

 

また1度の認証で複数システムへのアクセスを可能にする分、ユーザーごとのアクセス可能範囲を厳格に管理・制限することも重要になります。多くのSSO製品がアクセス制御機能を搭載していますので、業務内容にあわせ適切な設定を行っておきましょう。

 

導入時には、運用設計も十分に行っておくことが望まれます。起動・停止方法、ユーザーの追加・削除・初期化方法、ログ管理、運用監視、バックアップ方法といった通常時の運用に関わる設計のほか、アプリケーションやシステムを追加する場合の対応方法、障害発生時におけるサーバーの切り戻し、データのリストア方法なども対応として整備しておくことをお勧めします。

 

(画像は写真素材 足成より)