連載 ディレクトリサービスの仕組みと活用
第4回 Webでのシングルサインオンの利用
梁瀬介次
2000/10/3
|
今回は前回まででセットアップしたシングルサインオン環境を、実際にWebブラウザからのログインやマルチサーバからの利用で活用してみましょう。
■WebサーバとLDAPディレクトリ
LDAPディレクトリ側の設定は終わりましたが、今度はアプリケーションサーバ側でLDAPディレクトリを参照するための設定を行う必要があります。ここではWebサーバの設定を行うことにします。
下の図はWebサーバがLDAPディレクトリを参照して、ログインを承認する様子です。
![]() |
通常、Webサーバは独自のユーザー管理システムを持っています。例えば、UserDBと呼ばれるUNIXのpasswdファイルのようなレコード型ファイルであったり、ロータス ドミノのドミノディレクトリのように専用のデータベースであったり、Oracleのシステムテーブルであるなど、構造はさまざまです。
LDAPディレクトリで認証を行う機能とは、そうしたアプリケーション依存の認証システム以外に、共通して「外部の」LDAPディレクトリを使用する機能が付加されていることを指します。そのため、LDAPディレクトリでは認証に必要な情報を標準化しています。
下のリスト1は、LDAPディレクトリが保持するユーザー情報のフィールド(正式にはアトリビュートと呼ばれます)の一部です。
|
|
| リスト1 LDAPディレクトリが保持するユーザー情報フィールドの例 |
DN(Distinguished Name)は1ユーザー(正確には1エントリ)の名前だと考えてください。前回述べたように、X.500ディレクトリ規格に沿った名前の付け方になっています。userCertificateというのがユーザーX.509証明書の格納先です。このDNが示す「ユーザー」が、Webブラウザアクセス時に示されるはずの証明書の持ち主ということになります。前回述べたユーザーマッピングはLDAPアクセスからはこのように確認することができます。
■Webサーバの設定
では、WebサーバからLDAPディレクトリを参照するように設定してみましょう。
まずはロータス ドミノでの設定です。話がややこしくなっているかもしれませんが、ここではあくまでドミノをWebサーバとしてのみ使用するものと考えてください。前回のように、ドミノをCA(認証機関)やLDAPサーバとして使用していることもあるかもしれませんが、ここでは考えないこととします。
ドミノでは「ディレクトリアシスタンス」という機能で、外部LDAPディレクトリを認証に用いることが可能です。「da50.ntfテンプレート」でDBを作成します。ノーツクライアントからこのDBを開き、次のように設定します。
![]() |
| 画面1 ディレクトリアシスタントの「基本情報タブ」設定画面(画面をクリックすると拡大表示します) |
![]() |
| 画面2 ディレクトリアシスタントの「規則タブ」設定画面(画面をクリックすると拡大表示します) |
![]() |
| 画面3 ディレクトリアシスタントの「LDAPタブ」設定画面(画面をクリックすると拡大表示します) |
詳しくはマニュアルにもありますが、まず「ドメインタイプ」として「LDAP」を選択します。「規則」にはそのLDAPディレクトリにどのような情報が登録されているかを指定します。これはディレクトリツリー構造(DIT:Directory Information Tree)をo(Organization)、ou(Organization Unit)、c(Country)といった要素別に指定します。通常はすべて「*(アスタリスク)」でも構いません。また、「証明書を信用」を「はい」としておきます。
「LDAP設定」→「ホスト名」にはLDAPサーバ名を入力します。「認証」の「ユーザー」「パスワード」はLDAPサーバにログインして検索する必要がある場合に設定します。入力しなければAnonymous(匿名)ユーザーとして検索することになります。Anonymousユーザーでは必要な情報が検索できないこともあります。そうした場合には管理者ユーザーでログインするようにします。
「検索するベース」は「検索場所」「Base DN」などとも呼ばれるLDAP検索では必要な指定です。検索を開始するLDAPディレクトリツリーを指定します。例えば「cn=Taro Yamada. o=ABC-Syouji, c=JP」といったユーザーが登録されている場合では、このエントリは「o=ABC-Syouji, c=JP」という場所の下に格納されていることになります。そこでこの検索ベースとして「o=ABC-Syouji, c=JP」を指定します。これを指定しないと検索できない、つまり認証を確認できないこともありますので注意してください。
「チャネルの暗号化」はできる限り「SSL」を選択します。選択するには当然LDAPディレクトリサーバでSSLが使用できなくてはなりません。「SSL」とすることで、ドミノサーバからの検索がすべて暗号化され、ネットワーク盗聴などによる情報漏洩のリスクが避けられます。
この設定文書を保存して、次にドミノディレクトリの「サーバー文書」に、先ほど作成したディレクトリアシスタンスDB名を設定し、サーバを再起動します。
![]() |
| 画面4 ドミノディレクトリ「サーバー文書」の設定 |
以上で設定は終了ですが、もちろん、ドミノWebサーバでSSLが利用できるようにしておいて下さい。「クライアント認証」を行えるようにもしておきます。
![]() |
| 画面5 「サーバー文書」SSLの設定 |
同様の設定はiPlanet(Netscape)Enterprise Serverでも行えます。要領や考え方はドミノと同じです。管理サーバへWebブラウザからアクセスし、「Global Settings」を選択します。「Configure Directory Service」でLDAPサーバの「Host Name」「Base DN」(検索を開始するベース)「Bind DN」(検索時にログインするユーザー名)などを設定します。「OK」ボタンで反映します。
![]() |
| 画面6 iPlanet(Netscape)Enterprise ServerでのLDAPサーバ設定(画面をクリックすると拡大表示します) |
同じく、SSLを利用できるようにし、「Restrict Access」(アクセス制限 ACL)の設定でコンテンツへのアクセスにクライアント認証とLDAPへの確認が必要とするようにします。
| 【コラム】 アクセスコントロール |
| Webサーバでのユーザー認証により、ユーザーが特定のコンテンツを参照したり、書き込んだり、あるいは禁止したりといったセキュリティ機能が利用できるようになります。こうした機能を「アクセスコントロール」と呼びます。または日本語では「認可」と呼ばれることもあります。 「アクセスコントロール」は通常、個々のWebサーバ製品の固有の機能です。ユーザー情報は共通化することはできても、実際の設定方法は製品ごとに異なり、サーバ単位でコンテンツに設定しなければなりません。 しかし、ここまで設定をこなしてきた方なら、「LDAPディレクトリのような仕組みで統一化や一元管理はできないか」と考えるのも自然でしょう。 ところが、現在のLDAP対応製品では残念ながらそうした機能は提供されていません。統一的なアクセスコントロール手法は、実は現在も標準化作業中なのです。IETFで、ようやく今年になり標準ドラフトがまとまりました。今後、各社で対応が論議され、実際の製品に反映されるにはおそらくまだ1〜2年はかかるでしょう。 どうしても今すぐにアクセスコントロールの一元化を行いたい場合には、Webサーバのプラグインとして導入することで、ユーザーのアクセスできる範囲を制限できるソフトなどもありますので、これらを利用するのも手です。 |
■Webブラウザからの利用
ではいよいよ、Webブラウザから実際にWebサーバへアクセスしてみましょう。
操作自体は特別なことはありません。まずドミノWebサーバへアクセスしてみます。アクセスはSSLで行うことになります。アクセス時に、使用する証明書を選択する場合もあります。
![]() |
| 画面7 IE5での証明書の選択(画面をクリックすると拡大表示します) |
IE(Internet Explorer)では、Windowsログオン時にユーザー名/パスワードを設定していれば聞いてくることはありませんが、Netscapeの場合には、最初に一度だけ証明書ストアのパスワードを尋ねられます。
普通にサーバにアクセスできれば成功です。テストのためにperlのCGIプログラムで表示してみました。$REMOTE_USER変数などを出力してみると、正しくユーザー名が表示されているのが分かります。
![]() |
| 画面8 ユーザー名が正しく表示されたことを確認(画面をクリックすると拡大表示します) |
ほかのWebサーバへURLを切り替えても、同一のユーザー(同一のクライアント証明書)で認証できるようになります。
| 【コラム】 BASIC認証でシングルサインオン? |
| いわゆるX.509証明書を用いた認証以外に、Webブラウザからは「BASIC認証」と呼ばれる認証方法も使用可能です。普段インターネットなどでは最も多く用いられている、だれもが経験したことがある方法でしょう。ただしユーザー名とパスワードがそのままネットワークに流れてしまうことと、パスワードを推測されてしまうとだれでも簡単に「なりすまし」が可能なため、セキュリティ保持の観点からはX.509認証に比べると劣るとされます。 実は、LDAPディレクトリもBASIC認証のためのパスワードを保持できるのですが、シングルサインオンを行うのは難しいのです。これは、Webサーバ側はLDAPディレクトリによってユーザー名/パスワードを共通化できるものの、Webブラウザは異なるサーバにログインする際には必ずユーザー名/パスワードを尋ねる仕様になっていることが多いためです。こうした仕様がないと不用意に別のサーバにユーザーのパスワード情報を流してしまう恐れがあるからです。 そのため、BASIC認証でシングルサインオンを行おうとすると、どうしてもクッキー(Cookie)やJavaScriptを駆使することになります。BASIC認証自体は高度なセキュリティを要求されるネットワークには必ずしも向いているとは言えませんが、インターネット全体での利用を考えると利用したい場合もあるかもしれません。 ところが、IE5や最近新しく発表されたNetscape6では「オートコンプリード」や「パスワードマネージャー」と呼ばれる機能があります。最初に一度でもログインすれば、その次からは自動的にそのサーバに合わせたユーザー名/パスワードを使用してくれるという機能です。 完全なものではありませんが、見かけ上のシングルサインオン程度には利用できそうです。 |
|
| 「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」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |















