知られざるActive Directory技術の「舞台裏」

第1回 誰も教えてくれないActive DirectoryとLDAPの「本当の関係」[前編]

この記事を読むのに必要な時間:およそ 3 分

Active Directory10周年に寄せて

Windows 2000によりActive Directoryが公開されてから,今年で10年目ということだそうです。

Active DirectoryがWindowsドメインを管理運用するためのソリューションであることは,みなさんすでにご存じでしょうが,その機能や使い方,トラブルの対応方法について,みなさんは自信を持って社内の同僚やお客様に説明できるでしょうか? 今回は,総復習の意味も兼ねて,Active Directoryの技術的なトピックやトラブルシュートの方法,について,いくつかお話ししたいと思います。

過去のWindowsの問題点

Active Directoryが最初に実装されたWindows 2000の開発時の名称は「Windows NT5」といい,Windows NT4.0の後継にあたります。

Windows NT4.0のドメインコントローラ(ドメイン認証を行うサーバ)は割と使いやすいものでしたが,いくつか問題点がありました。そのうちのひとつに,アカウントに何かの情報を結び付けて使いたい場合(たとえばメールアドレス)⁠アプリケーション独自のデータベースやサードパーティのディレクトリサーバに頼らなければならない,というものがありました。

「ディレクトリサーバ」とは,電話帳のように,ユーザ名を住所・電話番号・メールアドレスなどと結びつけたデータベースの一種であり,たとえば,⁠山川 しずか」という名前から「○×株式会社 営業部 第一課」⁠03-123-4567」⁠sizukay@marubatucorp.co.jp」などの情報を,検索により抽出する機能であり,LDAP(Lightweight Directory Access Plotocol)というプロトコルにより,LADPクライアント(たとえばメールアドレスを検索するメールソフト)と通信を行ないます。

LDAPはこのような目的に特化したデータベースであり,また多数のユーザ情報を「ディレクトリ」と呼ばれる階層ごとで管理運用することができるため,アカウント管理の問題や,Windows認証とアカウントの情報をアプリケーションで一元的管理したいMicrosoftの意図にぴったりな実装であったといえます。

Active DirectoryとLDAP

Active Directoryでは,⁠詳細は後述しますが)LDAPデータベースを中心に実装されており,たとえばドメインコントローラ情報を検索して必要な情報を呼び出す,といったところでWindowsのログオン認証に深く関連しています。また,関連するアプリケーションと有機的に統合されている例として,⁠Exchange Server」というコラボレーションサーバ(主たる機能はメールサーバ)があります。Exchange Serverでは,Active Directoryで登録されたユーザのメールデータを管理したり,ユーザ名からメールアドレスを検索して,メールの送信を行なうことができます。

システム管理者が行う作業としては,たとえばいったん削除してしまったオブジェクトを復活させる目的でLDAPクライアントツールとなるldp.exeを使ったり,他のActive Directoryのアカウント情報をエクスポートし,これをインポートするコマンド(LDIFDE等)などでも,利用されます。

このように,Active DirectoryとLDAPは切り離せない関係にありますので,LDAPの基本やActive Directoryでの実装を知っておくことで,システムの管理運用やトラブルシュートのうえで有効になることでしょう。

Active DirectoryのLDAP情報を使った応用例として,Active Directoryフェデレーションサービス(AD FS)という機能があります。AD FSは,あるActive Directory上で認証トークン(認証を証明するデータ)を受けたユーザが,そのユーザの属性情報(たとえば「役職」「部長」であったら等)に応じて,別の組織が持つWebサーバにアクセスして,特別なページ(部長クラス専用のページ)を表示する,といった使い方が可能です。

LDAPとは

LDAPはLightweight(軽量)な,という名前が示すとおり,DAP(Directory Access Protocol)と呼ばれる,X500という規格で定義された,大がかりなディレクトリサービスで利用される通信プロトコルのサブセット版であり,このような目的に特化したプロトコルになります。先に述べたように,LDAPはクライアントからの検索クエリに対し適切な結果を返答したり,システム管理者が内容を自由に追加変更することができるデータベースとして機能します。データベースというと,たとえばRDBM(リレーショナルデータベース:通常のデータベースシステム)がありますが,LDAPはどのように違っているのでしょうか?

テーブル構造ではなく木構造である

リレーショナルデータベースでは「テーブル」と呼ばれる形式のデータ格納場所が用意され「レコード」ごとに要素は管理されますが,LDAPでは「ディレクトリ」と呼ばれる,階層構造により構成されます。たとえば,⁠山川 しずか」というユーザ情報は「第一課」という「ディレクトリ」に所属し,さらに「営業部」という上位のディレクトリに所属します。最終的には「○×株式会社」という,組織上最上位のディレクトリに所属する,ということになります。

データベースが木構造である,というメリットですが,ディレクトリ(階層)によるグルーピングを基礎とした構成となるため,管理の委任がしやすいこと,目的のユーザ情報がグルーピングされたディレクトリだけを指定して検索をするといった方法で,検索自体のパフォーマンスが有利になる,といった点があります。

主にテキストベースの情報を扱う

リレーショナルデータベースでは,テキストベースのデータのほかバイナリベースのデータも同様に取り扱いますが,LDAPでは主にテキストベースのデータを取り扱います(バイナリデータを全く扱えないわけではありません)⁠処理の負荷が少ないため,パフォーマンスが向上する傾向にあります。

最初から設定の項目が用意されている

LDAPはディレクトリ検索のためのプロトコルとして,⁠氏名」「電話番号」⁠メールアドレス」といった,基本的な設定項目(属性といいます)が最初から定義されているため,リレーショナルデータベースのようにデータベース設計者が自分で定義する必要がありません。実際にはLDAPアプリケーション固有の属性が追加的に定義済みの状態でシステム管理者は利用しますが,⁠LDAPスキーマ」という定義情報に自分で定義した属性情報を加えることもできます。現在のLDAPバージョンとなる,LDAPv3の詳細については,RFC 4511等で勧告されています。

著者プロフィール

小鮒通成(こぶなみちなり)

Active DirectoryおよびWindows Serverに関するコンサルタント。あわせて各種コミュニティ活動や執筆活動を行っており,Microsoft Most Valuable Professional (Windows Server System - Directory Services) 表彰を5年連続で受けている。現在はNTTデータ先端技術株式会社に勤務。

コメント

コメントの記入