連載第1回:ディレクトリ統合
なぜ「シングル・サインオン」が必要なのか?
日本アイ・ビー・エム山本秀宣
日本アイ・ビー・エム システムズ・エンジニアリング
高橋悟史
2002/12/19
| 企業でのWebサービスの実現が具体的になるにつれ、パスワード/IDマネジメントが重視されるようになり、「シングル・サインオン」がますます注目を集めている。この連載では、シングル・サインオンの実践ステップなど具体的な考え方を紹介する。また、メタディレクトリやLDAPなど「ディレクトリ統合」をキーワードとしてシングル・サインオンを実現するための技術を分かりやすく解説する。 (編集部) |
| シングル・サインオンとは何か |
現在、多くの企業の情報システムは、多種多様なプラットフォームを組み合わせて利用しています。そして、それらのプラットフォーム上では多種多様なアプリケーションが動作しています。
通常、ユーザーはクライアントPC上のOSや各アプリケーションに対して、ログインの手続きを行ったうえでそれらを使用します。ユーザーは自分自身を識別するための情報(例えばユーザーIDとパスワードの組み合わせ)を提示し、システムはその情報が正しいことを確認してユーザーを「認証」します。
システムが複雑になりアプリケーションの種類が多くなると、認証手続きの回数が増えて、ユーザーの手間が増えていきます。また、ユーザーが管理するIDやパスワードの数が増えてくると、それらを覚えておくのがだんだん難しくなってきます。高いセキュリティを必要とするアプリケーションに対しては、厳格なパスワード規則が設定されていて、定期的にパスワードを変更しなくてはならない、ということもあるでしょう。
IDやパスワードの管理が複雑になると、ユーザーはやむを得ず、それらを手帳やメモなどに書き留めておかなくてはなりません。しかし、セキュリティを確保するうえで、パスワードのメモは好ましくありません。セキュリティを高めるためには、IDやパスワードを厳格に管理することは重要ですが、必要以上にユーザーの負担を重くすると逆効果になってしまう場合があります。
このような悩みを解決するには、ユーザーに必要以上の負担を掛けないようにしながら、必要かつ十分な安全性を持つ認証を行うための仕組みを導入することが効果的です。
1回の認証手続きで、複数のOSやアプリケーションなどにアクセスできること(またはそれを実現するための機能)を「シングル・サインオン(Single Sign-On)」と呼びます。
シングル・サインオンによってユーザーは複数のIDやパスワードを覚えておく負担から解放されます。パスワードを1つ覚えておくだけで、厳格なパスワード管理も現実的なものとなり、より高いセキュリティを実現することが可能になります。
また、システム管理者やアプリケーションの開発者は、パスワードなど認証情報の管理を一元化することによって、複数の認証情報を管理したりアプリケーションごとに認証機能を開発したりする負担から解放されます。
シングル・サインオンの3大要件
・利用者の負担の軽減 (認証を簡単に)
・より安全な認証機能の実現 (認証を厳密に)
・システム管理者やアプリケーション開発者の負担の軽減 (認証を共通に)
| シングル・サインオン実現のステップ |
では早速、シングル・サインオンを実現するための「ステップ」に入りましょう。例えば、複数のアプリケーションそれぞれが独立した認証情報を持っている構成のシステム(図1)があるとします。このようなシステムに対して、シングル・サインオンの考え方を適用する場合に、どのような手順で検討を進めていくべきでしょうか。
![]() |
| 図1 シングル・サインオン以前。アプリケーションごとにログイン手続きが必要 |
| 第1のステップ ユーザーID/パスワード統一 |
シングル・サインオンの実現に取り組む際、最初に検討すべきステップは何でしょうか? まずは、ユーザーの持つ複数IDとパスワードをそれぞれ統一することが一般的です。
しかし、このステップを実現してもログイン手続きの回数が減るわけではないので、厳密には「シングル・サインオン」と呼ぶべきではないものかもしれません。それでもユーザーの負担は確実に改善され、1つのIDとパスワードを覚えておくだけで複数のアプリケーションにアクセスできるようになります。また、ID/パスワードの管理を単純化することによって、管理者や開発者の負担も軽減されます。「シングル・サインオン」に対する要件のかなりの部分はこのステップで実現できるといえます。
このステップを実現するためには、複数のアプリケーションから利用されるIDやパスワードなどの認証情報を、1つのデータベース(またはディレクトリ)上にまとめる、といった方法を取ることができます。あるいは、データベースを1個にまとめることが難しい場合には、複数の認証情報データベースを相互に連携させて同期を取るのも1つの手法です。
最近では、認証情報を格納するために「ディレクトリ」と呼ばれる技術を用いるケースが増えています。ディレクトリとは一種のデータベースであり、ユーザーのID、パスワード、その他の属性情報などを管理することに向いています。ディレクトリにアクセスするための通信プロトコルの標準の1つとして、LDAP(Lightweight Directory Access Protocol)が広く知られています。統合しようとする各アプリケーションが“LDAP対応”であれば、認証情報の統合は比較的容易に実現できる可能性があります。
![]() |
| 図2 ステップ1完了後。複数のアプリケーションの認証情報を1箇所で管理 |
| 第2のステップ 認証インターフェイスの統合 |
シングル・サインオンの第2のステップは、複数のアプリケーションの認証インターフェイス(ユーザーIDやパスワードなどの受け渡し方法)を統合することです。このステップを実現すると、ユーザーが最初に1度だけユーザーID/パスワードを入力すれば、後はログインの手続きを一切行わずに複数のアプリケーションにアクセスできるようになります。
しかし、ここでアプリケーションごとに認証のためのインターフェイスが異なることに注意しなくてはなりません。アプリケーションの認証の統合には、さまざまなテクニックが必要とされます。
最近では、多くのアプリケーションがWebブラウザを介して利用されるようになっているので、Webアプリケーションの範囲に限定すればそれほど難しいことではなくなってきています。
認証の統合の検討で最も気を付けなくてはならないことは、統合された認証機能にセキュリティ上の問題があると、さまざまなアプリケーションに対してセキュリティの危険が及んでしまうことです。
統合された認証は、単に利用者の負担を取り除けばよいというものではありません。不正な利用者による「なりすまし」やパスワードの盗難などを防ぐために、十分に安全なセキュリティを施さなくてはなりません。一般に、統合された認証の機能に対しては、統合前の認証よりも高いセキュリティが求められるようになるといえます。
![]() |
| 図3 ステップ2完了後。複数のアプリケーションの認証インターフェイスを統合 |
| 第3のステップ アクセス制御の統合 |
「第2のステップ」の実現によって、ユーザーは1回の認証で以前より多くのアプリケーションにアクセスできるようになります。ただし、各アプリケーションに対するアクセス制御がきちんと行われていないと、本来権限を持つべきでないユーザーがアプリケーションを利用できてしまう、といったトラブルが発生しかねません。
シングル・サインオンを実現する際には、各アプリケーションによるアクセスの管理をより適切に行えるよう、アクセス制御に関する基盤機能を整備しておくことも重要です。
管理者や開発者の手間から見ると、アクセス制御を行うための機能は企業システム内で共通化されていることが望ましいといえます。しかし、アクセス制御を行うに当たっては、ユーザーの認証と異なり各アプリケーション固有の要件があることも多いため、基盤の共通化と管理の分散化を両立できるように機能を設計するのがよいでしょう。
アプリケーション単位のアクセス制御の方法としては、ユーザーIDごとにリソースへのアクセスの可否を制御するといった処理のほかに、ログインセッションのタイムアウトを厳密に管理する処理(例えば、ユーザーが5分間何も操作しなければ、いったんそのログインセッションを停止し、再度のアクセスに対しては、あらためてログインを求める)があります。
あるいは、特にセキュリティ機能の高いアプリケーションに対してはアクセスするたびに必ず再度の認証を求める、といった処理が必要になるかもしれません。このように高度なセッション管理を行う場合には、アクセス制御の機能と統合認証の機能が連携して動作するように設計を行わなくてはなりません。
![]() |
| 図4 ステップ3完了後。認証情報とアクセス制御情報を統合して、より高度なアクセス管理を実現 |
| シングル・サインオン実現のパターン 〜直列/並列〜 |
簡単に、シングル・サインオン実現の3ステップを見てきました。ここで、アプリケーションの並び方に注目してみましょう。これまで参照してきたのは、すべて「並列」に並んだアプリケーションに対する認証を統合する場合のシナリオでした。
![]() |
| 図5 「並列」認証統合 |
多くの業務システムでは、複数のアプリケーションが「並列」に並ぶだけでなく、「直列」に並んでいることもあります。「直列」接続のアプリケーション間の認証を統合することも、シングル・サインオンの重要な要素です。
![]() |
| 図6 「直列」認証統合 |
例えば、ユーザーがアクセスするWebアプリケーションがあり、その背後に、メインフレームで構築された基幹システム資源があるとします。このような場合には、Webアプリケーション上の認証と、メインフレーム上のアプリケーションに対する認証を、何らかの方法で統合する必要があります。
「直列」接続された、複数のアプリケーション間で、1つのユーザーID/パスワードに統合した体系にできれば、それが望ましいのはいうまでもありませんが、既存の業務システムを流用している場合などは、ID体系の変更が事実上不可能であることも多いでしょう。そのような場合には、ユーザーID/パスワードを変換するためのテーブルなどを用意してID体系の違いを吸収します。
ほかのシングル・サインオンの機能と同様に、「直列」接続の統合に関するユーザーID/パスワードの変換を行う機能についても、企業システムの基盤機能としての共通化を検討すべきでしょう。それによって、システム管理者やアプリケーション開発者の負担を軽減できます。
また、アプリケーション間の統合だけでなく、ユーザーが使用するクライアントOSとアプリケーションの認証の統合が必要になる場合もあるでしょう。この場合には、アプリケーションの認証情報と、OSの認証情報の管理とを統合することになります。
ここまで述べたように、一口に「シングル・サインオン」といっても、その実現にはさまざまなパターンがあります。そして、シングル・サインオンを実現するためにはさまざまな技術や製品を組み合わせて利用することになります。
| 次回予告 次回は、シングル・サインオンを行ううえで非常に重要な役割を果たすディレクトリの技術について、LDAPというキーワードを中心に解説します。 |
| 「シングル・サインオン」への一歩 |
| 関連リンク | |
| 連載:ディレクトリ・サービスの仕組と活用 | |
| 「Master of IP Network総合インデックス」 |
ホワイトペーパー(TechTargetジャパン)
- 知られざるLTEのネットワーク構成 (2010/1/13)
LTEのネットワーク構成やプロトコルスタックを詳解。それぞれどんな役割を果たしているかを解説します - iPhoneアプリ内課金導入でガッチリもうけるのだ (2009/12/18)
「iPhoneのアプリ内課金ってどーよ?」 そんな疑問に答えるべく、アプリ内課金のサポート業務を行っている企業を直撃 - インターネット世界の住所の書き方 (2009/12/8)
TCP/IPネットワークであて先を特定する識別子、IPアドレスの構造やサブネットマスクの役割などを説明します - iPhoneアプリに広告を挿入してガッチリもうけるのだ (2009/11/16)
iPhoneアプリに広告を挿入して1日に50万円ももうけている!と聞き、その仕組みを知りたくて、日米のアドネットワーク企業に聞いた
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |












