ディレクトリサービス
コンピューティングにおいて、ディレクトリサービスまたはネームサービスは、ネットワークリソースの名前をそれぞれのネットワークアドレスにマッピングします。これは、ボリューム、フォルダ、ファイル、プリンタ、ユーザー、グループ、デバイス、電話番号、その他のオブジェクトなど、日常的なアイテムやネットワークリソースを検索、管理、運営、整理するための共有情報インフラストラクチャです。ディレクトリサービスは、ネットワークオペレーティングシステムの重要なコンポーネントです。ディレクトリサーバーまたはネームサーバーは、このようなサービスを提供するサーバーです。ネットワーク上の各リソースは、ディレクトリサーバーによってオブジェクトと見なされます。特定のリソースに関する情報は、そのリソースまたはオブジェクトに関連付けられた 属性の集合として保存されます
ディレクトリサービスは、ネットワークの名前空間を定義します。名前空間は、各オブジェクトに名前(一意の識別子)を割り当てるために使用されます。ディレクトリには通常、ネットワークリソースの命名と識別方法を決定する一連の規則があり、識別子は一意かつ明確である必要があります。ディレクトリサービスを使用する場合、ユーザーはネットワークリソースの物理アドレスを覚えておく必要はありません。名前を指定するだけでリソースが特定されます。一部のディレクトリサービスにはアクセス制御機能が含まれており、ディレクトリ情報へのアクセスを承認されたユーザーのみに制限します。
リレーショナルデータベースとの比較
ディレクトリサービスとリレーショナルデータベースにはいくつかの違いがあります。パフォーマンス向上につながる場合、データは冗長化されます(例えば、キーを介して別のテーブルの内容と関連付けるのではなく、テーブル内の行に値を繰り返すことで冗長化されます。この手法は非正規化と呼ばれます。また、実際のスループットを向上させるためにレプリカを利用する手法もあります)。[ 1 ]
ディレクトリ スキーマは、オブジェクト クラス、属性、名前のバインド、および知識 (名前空間) であり、オブジェクト クラスには次のものが含まれます。
- 必須- 各インスタンスが持つ必要のある属性
- 5月- インスタンスに定義できるが省略可能な属性。存在しない場合はリレーショナルデータベースのNULLと同様です。
属性は複数の値を持つ場合があり、1つのレベルで複数の命名属性(例えば、マシンタイプとシリアル番号の連結、あるいは「勤務先電話番号」に複数の電話番号)を指定できます。属性とオブジェクトクラスは通常、業界全体で標準化されています。例えば、X.500属性とクラスは、多くの場合、オブジェクトIDがIANAに正式に登録されています。そのため、ディレクトリアプリケーションは、既存のディレクトリサーバーソフトウェアの利点を最大限に活用するために、標準のクラスと属性を再利用しようとします。
オブジェクトインスタンスは名前空間に配置されます。各オブジェクトクラスは親オブジェクトクラス(最終的には階層のルート)から継承され、必須/必須リストに属性が追加されます。ディレクトリサービスは、 ITシステムのセキュリティ設計において中心的な役割を果たすことが多く、それに応じてアクセス制御の粒度も細かく設定できます。
レプリケーションとディストリビューション
ディレクトリサービスの設計と管理において、レプリケーションとディストリビューションは異なる意味を持ちます。レプリケーションは、冗長性とスループット上の理由から、同じディレクトリ名前空間(同じオブジェクト)が別のディレクトリサーバーにコピーされることを示します。複製された名前空間は同じ権限によって管理されます。ディストリビューションは、異なる名前空間にある複数のディレクトリサーバーが相互接続されて分散ディレクトリサービスを形成することを示します。各名前空間は異なる権限によって管理できます
実装
ディレクトリサービスは、共通ネットワーク標準と複数ベンダーの相互運用性のための開放型システム間相互接続(OSI)イニシアチブの一部でした。1980年代、 ITUとISOは、当初はキャリア間電子メッセージングとネットワーク名検索の要件をサポートするために、ディレクトリサービスのX.500標準セットを作成しました。軽量ディレクトリアクセスプロトコル(LDAP)は、X.500ディレクトリ情報サービスに基づいており、TCP/IPスタックとインターネット上のX.500ディレクトリアクセスプロトコル(DAP)文字列エンコード方式を使用しています
X.500 より前に開発されたシステムには次のものがあります。
- ドメインネームシステム(DNS):インターネット上の最初のディレクトリサービス[ 2 ] 、現在も使用されている
- Hesiod : DNS に基づいており、MIT のProject Athenaで使用されています
- ネットワーク情報サービス(NIS):元々はSun MicrosystemsによるUnixネットワーク環境向けディレクトリサービスのYellow Pages(YP)。ヘシオドスと同様の役割を果たしました。
- NetInfo : 1980年代後半にNeXT社がNEXTSTEP向けに開発しました。Apple社による買収後、オープンソースとしてリリースされ、 Mac OS Xのディレクトリサービスとして利用されましたが、LDAPベースのOpen Directoryに置き換えられました。NetInfoのサポートは、10.5 Leopardのリリースで削除されました。
- Banyan VINES:初のスケーラブルなディレクトリサービス
- NT ドメイン: Windows 2000 で LDAP ベースの Active Directory がリリースされる前に、Windows マシンにディレクトリ サービスを提供するために Microsoft によって開発されました。Windows Vista では、最小限の認証プロトコルを緩和した後も、NT ドメインのサポートを継続しています。
LDAP実装
LDAP/X.500ベースの実装には以下が含まれます。
- 389ディレクトリサーバー:Red Hatによる無料のオープンソースサーバー実装。Red HatとSUSEによる商用サポート付き
- Active Directory : MicrosoftのWindows用ディレクトリ サービス。X.500 ディレクトリを起源とし、Exchange Serverで使用するために作成され、 Windows 2000 Serverで初めて出荷され、その後の Windows バージョンでもサポートされています。
- Apache Directory Server : Javaで書かれたディレクトリサービス。LDAP、Kerberos 5、パスワード変更プロトコルをサポート。LDAPv3認定済み。
- Apple Open Directory : AppleのMac OS X用ディレクトリ サーバ。Mac OS X Serverを通じて利用可能。
- eDirectory: NetIQ のディレクトリ サービスの実装は、Windows、NetWare、Linux 、およびさまざまなUnixのバージョンを含む複数のアーキテクチャをサポートし、ユーザー管理と構成およびソフトウェア管理に使用されます (以前は Novell Directory Services と呼ばれていました)。
- Red Hat Directory Server:Red Hatは、AOLのNetscape Security Solutions部門から買収したRed Hat Directory Serverを[ 3 ] 、コミュニティ支援型の389 Directory ServerプロジェクトとしてRed Hat Enterprise Linux上で動作する商用製品としてリリースしました。上流のオープンソースプロジェクトはFreeIPAと呼ばれています。
- Oracle Internet Directory : (OID) は、LDAP バージョン 3 と互換性のあるOracle Corporationのディレクトリ サービスです。
- Sun Java System Directory Server :サン・マイクロシステムズのディレクトリサービス[ 4 ]
- OpenDS : Sun Microsystemsが支援するJavaのオープンソースディレクトリサービス[ 5 ]
- Oracle Unified Directory(OUD)は、Oracle Corporationの次世代統合ディレクトリ・ソリューションです。ストレージ、同期、プロキシ機能を統合しています。
- Windows NT ディレクトリ サービス(NTDS) は、後にActive Directoryに名前が変更され、以前の NT ドメイン システムに取って代わりました。
- クリティカルパスディレクトリサーバー
- OpenLDAP : ミシガン大学のオリジナルの LDAP 実装 (Netscape、Red Hat、Fedora、Sun JSDS 実装など) から派生したもので、すべてのコンピュータ アーキテクチャ (Unix および Unix 派生製品、Linux、Windows、z/OS、および多数の組み込みリアルタイム システムを含む) をサポートします。
- ロータスドミノ
- ネクサー・ディレクトリ
- OpenDJ - CDDLライセンスに基づき、あらゆるオペレーティング環境で動作するJavaベースのLDAPサーバーおよびディレクトリクライアント。 2016年までForgeRockによって開発され、[ 6 ]現在はOpenDJコミュニティによってメンテナンスされています
ディレクトリサービスを作成するためのオープンソースツールには、OpenLDAP、Kerberosプロトコル、そしてKerberosとLDAPをバックエンドとしてWindowsドメインコントローラとして機能できるSambaソフトウェアなどがあります。管理はGOsaまたはSamba SWATによって行われます。
ネームサービスの使用
Unixシステム
Unixシステム上のネームサービスは通常、 nsswitch.confを通じて設定されます。ネームサービスからの情報はgetentで 取得できます
参照
参考文献
引用文献
- ^ 「リレーショナルデータベースを非正規化するタイミングと方法」rubygarage.org . 2023年4月30日閲覧。
- ^ "RFC1034" . IETF.org. 1978年11月1日. 2018年2月13日閲覧。
- ^ 「Red Hat、元Netscapeのセキュリティソリューション事業に2,300万ドルを投資」 。 2018年4月22日閲覧。
- ^ 「OracleとSun」 . Sun.com. 2010年9月7日. 2012年1月9日閲覧。
- ^ "Java.net" . Opends.dev.java.net. 2007年7月4日時点のオリジナルよりアーカイブ。2012年1月9日閲覧。
- ^ 「ForgeRockはオープンソースコミュニティを閉鎖し、もはや同社のプラットフォーム上での許容ライセンスに基づく新規開発を許可していない」 timeforafork . 2017年6月1日. 2017年10月3日時点のオリジナルよりアーカイブ。 2017年6月1日閲覧。
出典
- カーター、ジェラルド(2003年)『LDAPシステム管理』オライリーメディア、ISBN 978-1-56592-491-8。