LDAP Linux HOWTO <author>Luiz Ernesto Pinheiro Malere, <tt/malere@yahoo.com/ <date>v1.03, 28 September 2000 <trans>和訳:稲地 稔 <<tt/inachi@earth.interq.or.jp/> <tdate>v1.03j, 21 December 2000 <abstract> <!-- [orig] Information about installing, configuring, running and maintaining a LDAP (Lightweight Directory Access Protocol) Server on a Linux machine is presented on this document. There are also details about how to create LDAP databases, how to update and delete information on the database, how to implement roaming access and how to use Netscape Address Book. This document is mostly based on the University of Michigan LDAP information pages and on the OpenLDAP Administrator's Guide. --> この文書は、Linux マシンにおける LDAP (Lightweight Directory Access Protocol)サーバのインストール、設定、実行、管理に関する情報を載せて います。また、LDAP データベースの作成方法、データベース中の情報の 更新と削除、ローミングアクセスを実現する方法、Netscape のアドレス帳の 利用方法についての詳細も載せています。この文書の大部分は、ミシガン大学 の LDAP 情報ページと OpenLDAP Administrator's Guide を基にしました。 </abstract> <!-- Table of contents --> <toc> <!-- Begin the document --> <!-- [orig] <sect>Introduction --> <sect>はじめに <p> <!-- [orig] The main purpose of this document is to set up and use a LDAP Directory Server on your Linux machine.You will learn how to install, configure, run and maintain the LDAP server. After you also learn how you can store, retrieve and update information on your Directory using the LDAP clients and utilities. The daemon for the LDAP directory server is called <it/slapd/ and it runs on many different UNIX platforms. --> この文書の主な目的は、Linux マシン上に LDAP ディレクトリサーバを セットアップして利用することです。読者は、LDAP サーバをインストール、 設定、実行、管理する方法について学びます。その後、LDAP クライアント とユーティリティを用いてディレクトリ中の情報を格納、取得、更新する 方法についても学びます。LDAP ディレクトリサーバのデーモンは <it/slapd/ とよばれ、様々な UNIX プラットフォームで動作します。 <p> <!-- [orig] There is another daemon that cares for replication between LDAP servers. It's called <it/slurpd/ and for the moment you don't need to worry about it. In this document you run a slapd which provides directory service for your local domain only, without replication, so without slurpd. --> LDAP サーバ間の複製をつかさどる別のデーモンがあります。 このデーモンは <it/slurpd/ とよばれていますが、さしあたりこれに ついて気にする必要はありません。この文書では、 あなたのローカルドメインにディレクトリサービスを提供する slapd を実行します。複製はしないので slurpd は使いません。 <p> <!-- [orig] This is a simple configuration for the server, good for starting but easy to upgrade to another configuration later if you want. The information presented on this document represents a nice initialization on using the LDAP protocol. Possibly after reading this document you would feel encouraged to expand the capabilities of your server and even write your own clients, using the already avaiable C, C++ and Java Development Kits. --> この文書で説明するのは、初心者にとってちょうどよい程度の簡単な サーバの環境構築ですが、望むなら後で別の設定にアップグレードする ことも簡単です。この文書に載せている情報は、LDAP プロトコルを 利用するよい足ががりとなります。おそらくこの文書を読んだ後には、 サーバの能力を拡張したり、さらには C, C++, Java 開発キットなどを 使ってクライアントを書きたくなったりすることでしょう。 <!-- [orig] <sect1>What's LDAP ? --> <sect1>LDAP とは? <p> <!-- [orig] LDAP is a client-server protocol for accessing a directory service. It was initially used as a front-end to X.500, but can also be used with stand-alone and other kinds of directory servers. --> LDAP とは、ディレクトリサービスにアクセスするためのクライアントサーバ プロトコルです。これは当初 X.500 のフロントエンドとして使われて いましたが、スタンドアローンのディレクトリサーバや他の種類の ディレクトリサーバでも使えるようになりました。 <!-- [orig] <sect1>What's a Directory Service ? --> <sect1>ディレクトリサービスとは? <p> <!-- [orig] A directory is like a database, but tends to contain more descriptive, attribute-based information. The information in a directory is generally read much more often than it is written. As a consequence, directories don't usually implement the complicated transaction or roll-back schemes that regular databases use for doing high-volume complex updates. Directory updates are typically simple all-or-nothing changes, if they are allowed at all. --> ディレクトリはデータベースに似ていますが、より記述的で属性ベースの 情報を含むようになっています。一般にディレクトリ中の情報は、書込み よりも読出しの方がずっと多く行われます。したがって、一般的なデータ ベースで大量の複雑な更新を行うために用いられる複雑なトランザクション やロールバック機構をディレクトリでは通常実装しません。 ディレクトリの更新は、普通は all-or-nothing の単純な書き換えに過ぎません。 <p> <!-- [orig] Directories are tuned to give quick-response to high-volume lookup or search operations. They may have the ability to replicate information widely in order to increase availability and reliability, while reducing response time. When directory information is replicated, temporary inconsistencies between the replicas may be OK, as long as they get in sync eventually. --> ディレクトリは、大量の照会あるいは検索操作に即応できるように最適化 されています。稼働率と信頼性を向上、かつレスポンスタイムを減らすために、 ディレクトリには情報を広く複製する能力があります。ディレクトリ情報が 複製されている場合、一時的な不整合が発生するかもしれませんが、定期的に 同期をとるようにしておけば問題ありません。 <p> <!-- [orig] There are many different ways to provide a directory service. Different methods allow different kinds of information to be stored in the directory, place different requirements on how that information can be referenced, queried and updated, how it is protected from unauthorized access, etc. Some directory services are local, providing service to a restricted context (e.g., the finger service on a single machine). Other services are global, providing service to a much broader context. --> ディレクトリサービスの提供方法には色々な種類があります。このため、 ディレクトリに保存する情報の種類が多様になり、一方では情報の参照、 問合せ、更新や、認証されないアクセスからどのように情報を守るかなどに 関して色々な要求が生じます。局所的で、限られた対象(たとえば、 単一のマシンの finger サービスなど)のみへのサービスを提供するような ディレクトリサービスがある一方、大域的で、はるかに広い対象にサービスを 提供するようなサービスもあります。 <!-- [orig] <sect1>How does LDAP work ? --> <sect1>LDAP はどのように動作するのか? <p> <!-- [orig] LDAP directory service is based on a client-server model. One or more LDAP servers contain the data making up the LDAP directory tree or LDAP backend database. An LDAP client connects to an LDAP server and asks it a question. The server responds with the answer, or with a pointer to where the client can get more information (typically, another LDAP server). No matter which LDAP server a client connects to, it sees the same view of the directory; a name presented to one LDAP server references the same entry it would at another LDAP server. This is an important feature of a global directory service, like LDAP. --> LDAP ディレクトリサービスは、クライアントサーバモデルを基にしています。 一つ以上のディレクトリサーバが、LDAP ディレクトリツリーあるいは LDAP バックエンドデータベースを構成するデータを保有しています。 LDAP クライアントは LDAP サーバに接続し、そのサーバに対して質問します。 この質問に対してサーバは回答を返すか、クライアントがさらに情報を探し出せる 場所へのポインタ(通常は別のLDAPサーバ)を返します。クライアントからは、 どの LDAP サーバに接続してもディレクトリは同じように見えます。 ある LDAP サーバに提示した名前は別の LDAP サーバでも同じエントリを参照します。 これは、LDAP のような大域的ディレクトリサービスの重要な特性です。 <!-- [orig] <sect1>LDAP backends, objects and attributes --> <sect1>LDAP のバックエンド、オブジェクト、属性 <p> <!-- [orig] Slapd comes with three different backend databases you can choose from. They are LDBM, a high-performance disk-based database; SHELL, a database interface to arbitrary UNIX commands or shell scripts; and PASSWD, a simple password file database. --> slapd には種類の異なる三つのバックエンドデータベースが付属していて、 どれを選ぶかはユーザの自由です。LDBM はディスクベースの高速な データベースです。SHELL は UNIX コマンドあるいはスクリプトに対する データベースインタフェースです。PASSWD は簡単なパスワードファイル データベースです。 <p> <!-- [orig] In this document I assume that you choose the LDBM database. --> この文書では LDBM データベースを選択するものとします。 <p> <!-- [orig] The LDBM database works by assigning a compact four-byte unique identifier to each entry in the database. It uses this identifier to refer to entries in indexes. The database consists of one main index file, called id2entry, which maps from an entry's unique identifier (EID) to a text representation of the entry itself. Other index files are maintained as well. --> LDBM データベースは、データベース中の各エントリに4バイトのコンパクト で一意な識別子を割り当てることによって成り立っています。 この識別子は索引中のエントリを参照するために使われます。 データベースには、id2entry という一つの主索引ファイルが含まれます。 これは、エントリの一意な識別子(EID)をエントリ自体のテキスト表現に マップします。その他の索引ファイルも同様に管理されます。 <p> <!-- [orig] To import and export directory information between LDAP-based directory servers, or to describe a set of changes which are to be applied to a directory, the file format known as LDIF, for LDAP Data Interchange Format, is typically used. An LDIF file stores information in object-oriented hierarchies of entries. The LDAP software package you're going to get comes with an utility to convert LDIF files to the LDBM format --> LDAP ベースのディレクトリサーバ間でディレクトリ情報をインポートおよび エクスポートしたり、ディレクトリに適用される1セットの変更を記述するには、 普通 LDIF (LDAP Data Interchange Format)というフォーマットが使われます。 LDIF は、エントリのオブジェクト指向の階層で情報を格納します。 これから利用する LDAP ソフトウェアパッケージには、 LDIF ファイルを LDBM フォーマットに変換するユーティリティが付属しています。 <p> <!-- [orig] A common LDIF file looks like this: --> 一般の LDIF ファイルは次のような内容になっています。 <!-- [orig] <p><tscreen><verb> dn: o=TUDelft, c=NL o: TUDelft objectclass: organization dn: cn=Luiz Malere, o=TUDelft, c=NL cn: Luiz Malere sn: Malere mail: malere@yahoo.com objectclass: person </verb></tscreen> --> <!--??? [誤り] エントリの間には空行を入れなければならない --> <p><tscreen><verb> dn: o=TUDelft, c=NL o: TUDelft objectclass: organization dn: cn=Luiz Malere, o=TUDelft, c=NL cn: Luiz Malere sn: Malere mail: malere@yahoo.com objectclass: person </verb></tscreen> <p> <!-- [orig] As you can see each entry is uniquely identified by a distinguished name, or DN. the DN consists of the name of the entry plus a path of names tracing the entry back to the top of the directory hierarchy. --> 上に示したとおり、各エントリは識別名(distinguished name: DN)で一意に 識別されます。DN は、エントリの名前とエントリをディレクトリ階層の 最上位にさかのぼった名前のパスとからなります。 <p> <!-- [orig] In LDAP, an object class defines the collection of attributes that can be used to define an entry. The LDAP standard provides these basic types of object classes: --> LDAP では、オブジェクトクラスはエントリを定義するために使える属性の 集まりを定義します。LDAP の標準では、次のようなオブジェクトクラスの 基本型を提供しています。 <itemize> <!-- [orig] <item>Groups in the directory, including unordered lists of individual objects or groups of objects. --> <item>ディレクトリ中のグループ -- これには、個々のオブジェクトの 順序なしリストあるいはオブジェクトのグループが含まれます。 <!-- [orig] <item>Locations, such as the country name and description. --> <item>所在 -- 国名や記述など。 <!-- [orig] <item>Organizations in the directory. --> <item>ディレクトリ中の組織。 <!-- [orig] <item>People in the directory. --> <item>ディレクトリ中の人々。 </itemize> <p> <!-- [orig] An entry can belong to more than one object class. For example, the entry for a person is defined by the <it/person/ object class, but may also be defined by attributes in the inetOrgPerson, groupOfNames, and organization objectclasses. The server's object class structure (its schema) determines the total list of required and allowed attributes for a particular entry. --> エントリは二つ以上のオブジェクトクラスに所属できます。 たとえば、人のためのエントリは、オブジェクトクラス <it/person/ で 定義しますが、オブジェクトクラス inetOrgPerson, groupOfNames, organization の属性によっても定義できます。サーバのオブジェクトクラス構造(そのスキーマ)は、 特定のエントリに要求された属性と許されている属性のリスト全体を決定します。 <p> <bf>[訳注]</bf> ここでは「所属(belong)」という言葉があいまいに 使われています。inetOrgPerson は person から派生しているので、 inetOrgPerson のエントリは両方のオブジェクトクラスのエントリと言えます。 また、構造型のオブジェクトクラスと補助型のオブジェクトクラスを組み合わせた エントリを作った場合も複数のオブジェクトクラスに「所属」していると 言えるでしょう。しかし、groupOfNames と organization は人を定義する ものではなく、人を表現するエントリを DN で参照できるだけです。 <p> <!-- [orig] Directory data is represented as attribute-value pairs. Any specific piece of information is associated with a descriptive attribute. --> ディレクトリのデータは、属性と値のペアとして表現されます。 情報のいかなる部分も記述的な属性と関連付けられています。 <p> <!-- [orig] For instance, the commonName, or cn, attribute is used to store a person's name. A person named Jonas Salk can be represented in the directory as --> たとえば、属性 commonName (cn)は、人の名前を格納するために使います。 名前が Jonas Salk である人は、ディレクトリでは次のように表せます。 <tscreen><verb> cn: Jonas Salk </verb></tscreen> <p> <!-- [orig] Each person entered in the directory is defined by the collection of attributes in the <it/person/ object class. Other attributes used to define this entry could include: --> ディレクトリに格納する各人は、オブジェクトクラス <it/person/ 中の 属性の集まりによって定義されます。このエントリを定義するために 使われる他の属性には次のようなものがあります。 <tscreen><verb> givenname: Jonas surname: Salk mail: jonass@airius.com </verb></tscreen> <p> <!-- [orig] Required attributes include the attributes that must be present in entries using the object class. All entries require the objectClass attribute, which lists the object classes to which an entry belongs. --> 必要属性(required attribute)とは、オブジェクトクラスを使うエントリに 与えなければならない属性のことです。すべてのエントリは objectClass 属性を必要とします。これはそのエントリが所属するオブジェクトクラスの リストを指定するものです。 <p> <!-- [orig] Allowed attributes include the attributes that may be present in entries using the object class. For example, in the person object class, the cn and sn attributes are required. The description, telephoneNumber, seeAlso, and userpassword attributes are allowed but are not required. --> 許可属性(allowed attribute)とは、オブジェクトクラスを使うエントリに 与えることのできる属性のことです。たとえば、オブジェクトクラス person において、属性 cn と sn は必要属性であり、属性 description, telephoneNumber, seeAlso, userpassword は許可属性であって必要属性 ではありません。 <p> <!-- [orig] Each attribute has a corresponding syntax definition. The syntax definition describes the type of information provided by the attribute: --> 各属性は、対応するシンタックス定義を持っています。このシンタックス定義は、 属性によって提供される情報のタイプを記述します。 <!-- [orig] <itemize> <item>bin binary <item>ces case exact string (case must match during comparisons) <item>cis case ignore string (case is ignored during comparisons) <item>tel telephone number string (like cis but blanks and dashes `- ' are ignored during comparisons) <item>dn distinguished name </itemize> --> <descrip> <tag/bin/バイナリ <tag/ces/英大小文字を区別する文字列(比較の際に英大小文字の違いを無視しない) <tag/cis/英大小文字を区別しない文字列(比較の際に英大小文字の違いは無視する) <tag/tel/電話番号の文字列(cis に似ているが、比較の際にブランクと ダッシュ `-' を無視する) <tag/dn/識別名 </descrip> <p> <!-- [orig] Go to the first paragraph of <ref id="3" name="section 3"> to know where the objectclass and attribute definitions lay on your system. --> オブジェクトクラスと属性の定義がシステムのどこにあるかを知るには、 <ref id="3" name="LDAP サーバの設定">の最初の段落を参照してください。 <!-- [orig] <sect1>New Versions of this Document --> <sect1>この文書の新しいバージョン <p> <!-- [orig] This document may receive corrections and updates based on the feedback received by the readers. You should look at: --> この文書は、読者より受け取ったフィードバックをベースにして修正と更新を 行っています。この HOWTO の新しいバージョンは次のところで見れます。 <p> <!-- [orig] <url url="http://www.mobilesoft.com.br/HOWTO/LDAP-HOWTO.html" name=" http://www.mobilesoft.com.br/HOWTO/LDAP-HOWTO.html"> --> <htmlurl url="http://www.mobilesoft.com.br/HOWTO/LDAP-HOWTO.html" name=" http://www.mobilesoft.com.br/HOWTO/LDAP-HOWTO.html"> <p> <!-- [orig] for new versions of this HOWTO. --> <!-- [orig] <sect1>Opinions and Sugestions --> <!--??? [誤字] `Sugestions' は `Suggestions' の間違いであろう --> <sect1>意見と提案 <p> <!-- [orig] If you have any kind of doubt about some information avaiable on this document,please contact me on the following email address: <p> <url url="mailto:malere@yahoo.com" name="malere@yahoo.com"> --> この文書にある情報について何らかの疑問があれば、email で 私に連絡してください。(malere@yahoo.com) <p> <!-- [orig] If you have commentaries and/or sugestions, please let me know too ! --> <!--??? [誤字] `sugestions' は `suggestions' の間違いであろう --> コメントや提案がある場合も私に知らせてください。 <!-- [orig] <sect1>History of Releases --> <sect1>リリース履歴 <!-- [orig] <p>This section lists the releases of this document, sorted by date. Each release carries the changes introduced on the earlier version, plus newer additions and corrections: --> <p>この節には、この文書のリリース一覧を日付順に載せています。 各リリースについては、前バージョンからの変更点、新規追加項目、 修正点を記しています。 <!-- [orig] <p>v1.0: 20 June 1999, Initial version. --> <p>v1.0: 20 June 1999, 初期バージョン <!-- [orig] <p>v1.01: 15 February 2000, added the following sections: <itemize> <item>LDAP Migration Tools <item>Authentication using LDAP <item>Graphical LDAP tools <item>RFCs </itemize> --> <p>v1.01: 15 February 2000, 次の節を追加 <itemize> <item>LDAP Migration Tools <item>LDAP を用いた認証 <item>グラフィカルな LDAP ツール <item>RFC </itemize> <!-- [orig] <p>v1.02: 13 September 2000, correction of typos and addition of the following section: <itemize> <item>History of Releases </itemize> --> <p>v1.02: 13 September 2000, 誤字の修正および次の節の追加 <itemize> <item>リリース履歴 </itemize> <!-- [orig] <p>v1.03: 28 September 2000, presenting OpenLDAP 2.0, which comprises Ldap v3, defined on the <url url=" ftp://ftp.isi.edu/in-notes/rfc2251.txt" name="RFC2251">. --> <p>v1.03: 28 September 2000, OpenLDAP 2.0 の説明の追加。これは Ldap v3 (<url url="ftp://ftp.isi.edu/in-notes/rfc2251.txt" name="RFC2251">) を取り込んでいます。 <p> <bf>[訳注]</bf> 短期間で OpenLDAP 2.0 の情報を取り込んでくれたのはよいのですが、 そのせいか OpenLDAP 1.2,x の情報と 2.0.x の情報が混乱しています。 訳者の気づいたところは訳注で示しておきます。 <!-- [orig] <sect1>Acknowledgments --> <sect1>謝辞 <p> <!-- [orig] This Howto was result of an internship made by me on the TUDelft University - Netherlands. I would like to thank the persons that encouraged me to write this document: Rene van Leuken and Wim Tiwon. Thank you very much. They are also Linux fans, just like me. --> この HOWTO 文書は、オランダの TUDelft 大学で私が勉強がてら作成した ものの成果です。この文書を書くように強く勧めてくれた人々、 Rene van Leuken と Wim Tiwon に感謝したい。本当にありがとう。 彼らも私と同じ Linux ファンです。 <p> <!-- [orig] I would like to thank also Thomas Bendler, author of the German Ldap-Howto, for his contributions to my document and Joshua Go, great volunteer on the LDP project. --> それから、私の文書に貢献してくれたドイツ語版 LDAP-HOWTO の翻訳者である Thomas Bendler と、LDP プロジェクトの偉大なるボランティアである Joshua Go にも感謝したい。 <!-- [orig] <sect1>Copyright and Disclaimer --> <sect1>著作権と免責 <p> <!-- [orig] The LDAP Linux HOWTO is Copyrighted 1999 by Luiz Ernesto Pinheiro Malere. It can be distributed freely. It cannot be modified. If you have any kind of sugestion, please send me an email (I will update the document if the sugestion proceeds). --> <!--??? [誤字] `sugestions' は `suggestions' の間違いであろう --> この LDAP Linux HOWTO の著作権は、1999 年以降 Luiz Ernesto Pinheiro Malere にあります。この文書は自由に配布できます。この文書を変更して はなりません。何らかの提案がある場合には email で私に連絡してください (その提案が有効なら、私が文書を変更します)。 <p> <!-- [orig] If you want a translation, for example to Portuguese, you can send me an email about it too. --> ポルトガル語などに翻訳したい場合も email で私に連絡してください。 <p> <!-- [orig] No liability for the contents of this document can be accepted. I have no responsability about the consequences of following the steps provided in this document. --> <!--??? [誤字] `responsability' は `responsibility' の間違いであろう --> この文書の内容については一切の責任を負いません。 この文書にある手順に従った結果について、私は一切の責任を持ちません。 <p> <!-- [orig] If you have questions, please contact, the Linux HOWTO coordinator, at <p><url url="linux-howto@metalab.unc.edu" name="linux-howto@metalab.unc.edu"> --> この件について疑問点があるならば、Linux HOWTO 管理者に連絡してください (linux-howto@metalab.unc.edu)。 <!-- [orig] <sect>Installing the LDAP Server --> <sect>LDAP サーバのインストール <p> <!-- [orig] Five steps are necessary to install the server: Install the pre-required packages (if not already installed), Download the server, Unpack the software, Configure the Makefiles and Build the server. --> LDAP サーバをインストールするには、事前に必要なパッケージのインストール (既にインストールされていない場合)、LDAP サーバソフトウエェアの ダウンロード、ソフトウェアの展開、Makefile の設定、サーバの作成の 五つのステップが必要です。 <!-- [orig] <sect1>Pre-Requirements --> <sect1>事前に必要なもの <p> <bf>[訳注]</bf> この節は基本的に OpenLDAP 2.0.x に関して説明しています。 <p> <!-- [orig] To be fully LDAPv3 compliant, OpenLDAP clients and servers require installation of some aditional packages: --> LDAPv3 に完全準拠するために、OpenLDAP のクライアントとサーバは次にあげる ソフトウェアがインストールされていることを必要とします。 <!-- [orig] <p><it/OpenSSL TLS libraries/ --> <p><it/OpenSSL TLS ライブラリ/ <p> <!-- [orig] Although some operating systems may provide these libraries as part of the base system or as an optional software component, OpenSSL often requires separate installation. OpenSSL is available from <url url="http://www.openssl.org" name="http://www.openssl.org"> --> OS によってはこのライブラリが 基盤システムの一部あるいはオプションのソフトウェアコンポーネント として提供されているかもしれませんが、OpenSSL はたいてい別に インストールが必要となります。 OpenSSL は <url url="http://www.openssl.org" name="http://www.openssl.org"> から入手できます。 <!-- [orig] <p><it/Kerberos Authentication Services/ --> <p><it/Kerberos 認証サービス/ <p> <!-- [orig] OpenLDAP clients and servers support Kerberos-based authentication services. In particular, OpenLDAP supports SASL/GSSAPI authentication mechanism using either Heimdal or MIT Kerberos V packages. If you desire to use Kerberos-based SASL/GSSAPI authentication, you should install either Heimdal or MIT Kerberos V. Heimdal Kerberos is available from <url url="http://www.pdc.kth.se/heimdal" name=" http://www.pdc.kth.se/heimdal">. --> OpenLDAP のクライアントとサーバは、Kerberos ベースの認証サービスを サポートします。特に OpenLDAP では、Heimdal か MIT Kerberos V パッケージのいずれかを用いた SASL/GSSAPI 認証機構をサポートします。 Kerberos ベースの SASL/GSSAPI 認証を使うのであれば、 Heimdal か MIT Kerberos V をインストールしておいてください。 Heimdal Kerberos は <url url="http://www.pdc.kth.se/heimdal" name="http://www.pdc.kth.se/heimdal"> から入手できます。 <p> <!-- [orig] MIT Kerberos is available from <url url="http://web.mit.edu/kerberos/www" name=" http://web.mit.edu/kerberos/www">. Use of strong authentication services, such as those provided by Kerberos, is highly recommended. --> MIT Kerberos は <url url="http://web.mit.edu/kerberos/www" name="http://web.mit.edu/kerberos/www"> から入手できます。 Kerberos が提供するような強固な認証サービスの利用を強く勧めます。 <!-- [orig] <p><it/Cyrus's Simple Authentication and Security Layer Libraries/ --> <p><it/Cyrus&dquot;s Simple Authentication and Security Layer ライブラリ/ <p> <!-- [orig] Although some operating systems may provide these libraries as part of the base system or as an optional software component, Cyrus SASL often requires separate installation. Cyrus SASL is available from <url url="http://asg.web.cmu.edu/sasl/sasl-library.html" name=" http://asg.web.cmu.edu/sasl/sasl-library.html">. Cyrus SASL will make use of OpenSSL and Kerberos/GSSAPI libraries if preinstalled. --> OS によってはこのライブラリが基盤システムの一部あるいはオプションの ソフトウェアコンポーネントとして提供されているかもしれませんが、 Cyrus SASL はたいてい別にインストールが必要となります。 Cyrus SASL は <url url="http://asg.web.cmu.edu/sasl/sasl-library.html" name="http://asg.web.cmu.edu/sasl/sasl-library.html"> から入手できます。Cyrus SASL は、OpenSSL と Kerberos/GSSAPI のライブラリ がインストールされていれば、それらを使うようになります。 <!-- [orig] <p><it/Database Software/ --> <p><it/データベースソフトウェア/ <p> <!-- [orig] OpenLDAP's slapd primary database backend, LDBM, requires a compatible database package for entry storage. LDBM is compatible with Sleepycat Software's BerkeleyDB (recommended) or with the Free Software Foundation's GNU Database Manager (GDBM). If neither of these packages are available at configure time, you will not be able build slapd with primary database backend support. --> OpenLDAP の slapd の主要なデータベースバックエンド LDBM は、 エントリストレージに使うデータベースパッケージを必要とします。 LDBM のデータベースには Sleepycat Software の BerkeleyDB (推奨)あるいは Free Software Foundation の GNU Database Manager (GDBM) を利用できます。 configure スクリプトを実行するときに、これらのパッケージのどちらも 利用できなければ、この主要なデータベースバックエンドをサポートした slapd を構築できません。 <p> <!-- [orig] Your operating system may provide one of these two packages in the base system or as an optional software component. You may need to obtain the software and install it. --> これら二つのパッケージは、どちらかが基盤システムの一部あるいは オプションのソフトウェアコンポーネントとして提供されているかも しれませんし、自分でソフトウェアを入手してインストールする必要が あるかもしれません。 <p> <!-- [orig] BerkeleyDB is available from Sleepycat Software's download page <url url=" http://www.sleepycat.com/download.html" name="http://www.sleepycat.com/download.html">. There are several versions available. At the time of this writing, the latest release, version 3.1, is recommended. --> BerkeleyDB は Sleepycat Software の ダウンロードページ <url url="http://www.sleepycat.com/download.html" name="http://www.sleepycat.com/download.html"> から入手できます。 これを書いている時点での最新リリースであるバージョン 3.1 がお勧めです。 <p> <!-- [orig] GDBM is available from FSF's download site <url url="ftp://ftp.gnu.org/pub/gnu/gdbm" name=" ftp://ftp.gnu.org/pub/gnu/gdbm">. At the time of this writing, version 1.8 is the latest release. --> GDBM は FSF のダウンロードサイト <url url="ftp://ftp.gnu.org/pub/gnu/gdbm" name="ftp://ftp.gnu.org/pub/gnu/gdbm"> から入手できます。 これを書いている時点でバージョン 1.8 が最新リリースです。 <!-- [orig] <p><it/Threads/ --> <p><it/スレッド/ <p> <!-- [orig] OpenLDAP is designed to take advantage of threads. OpenLDAP supports POSIX pthreads, Mach CThreads, and a number of other varieties. <it/configure/ script will complain if it cannot find a suitable thread subsystem. If this occurs, please consult the Software - Installation - Platform Hints section of the OpenLDAP FAQ <url url="http://www.openldap.org/faq" name="http://www.openldap.org/faq">. --> OpenLDAP はスレッドの利点を活かせるように設計されています。 OpenLDAP は POSIX pthreads, Mach CThreads などといった さまざまなスレッド処理系をサポートしています。<it/configure/ スクリプトが適正なスレッドサブシステムを検出できない場合、 configure は不平を言ってきます。これが起きた場合には、OpenLDAP FAQ <url url="http://www.openldap.org/faq" name="http://www.openldap.org/faq"> の Software - Installation - Platform Hints のセクションを調べてみてください。 <p><it/TCP Wrappers/ <p> <!-- [orig] <it/slapd/ supports TCP wrappers (IP level access control filters) if preinstalled. Use of TCP wrappers or other IP-level access filters (such as those provided by an IP-level firewall) is recommended for servers containing non-public information. --> TCP wrappers (IP レベルのアクセス制御フィルタ)が 事前にインストールされていれば、<it/slapd/ はそれをサポートします。 非公開の情報を持つサーバについては TCP wrappers やその他の IP レベルの アクセスフィルタ(IP レベルのファイヤウォールに提供されるものなど)の 利用を勧めます。 <!-- [orig] <sect1>Downloading the package --> <sect1>パッケージのダウンロード <p> <!-- [orig] There are two free distributed LDAP servers: University of Michigan LDAP server and OpenLDAP server. There's also the Netscape Directory Server, which is free only under some conditions (educational institutions get it free, for example).The OpenLDAP server is based on the latest version of the University of Michigan Server and there are mailing lists and additional documentation available for it. This document assumes that you are using the OpenLDAP server. --> フリーに配布されている LDAP サーバには、ミシガン大学の LDAP サーバと OpenLDAP サーバの二つがあります。また、特定の条件の下でのみフリーで あるものに Netscape ディレクトリサーバがあります(たとえば、教育機関は フリーで利用できます)。OpenLDAP サーバは、ミシガン大学のサーバの 最新バージョンを基にしていて、メーリングリストと OpenLDAP で役立つ 追加の文書があります。この文書では、OpenLDAP を利用することにします。 <p> <!-- [orig] It's latest tar gzipped version is avaiable on the following address: --> OpenLDAP の最新の tar+gzip バージョンは、次のところから入手できます。 <p> <!-- [orig] <url url="http://www.openldap.org" name="http://www.openldap.org"> --> <tscreen> <htmlurl url="http://www.openldap.org" name="http://www.openldap.org"> </tscreen> <p> <!-- [orig] If you want to get the latest version of University of Michigan Server, go to this address: --> ミシガン大学のサーバの最新バージョンが欲しいなら、次のところから 入手できます。 <p> <!-- [orig] <url url="ftp://terminator.rs.itd.umich.edu/ldap" name="ftp://terminator.rs.itd.umich.edu/ldap"> --> <tscreen> <htmlurl url="ftp://terminator.rs.itd.umich.edu/ldap" name="ftp://terminator.rs.itd.umich.edu/ldap"> </tscreen> <p> <!-- [orig] To write this document, I used two versions of the OpenLDAP package : the latest stable version 1.2.11 and the newly released 2.0.4. My operating system is a Slackware Linux with kernel 2.2.13. --> この文書を書く際には二つのバージョンの OpenLDAP パッケージを使いました。 一つは最新の安定版 1.2.11 で、もう一つは新規にリリースされた 2.0.4 です。 私が使っている OS は カーネル 2.2.13 の Slackware Linux です。 <p> <!-- [orig] On the OpenLDAP site you can always find the latest development and stable versions of the OpenLDAP server. By the time this document was updated, the latest stable version was openldap-stable-20000704.tgz. The latest development version was openldap-2.0.4.tgz. --> OpenLDAP のサイトには、OpenLDAP サーバの最新の開発版と安定版が 置かれています。この文書を更新した時点で、最新の安定版は openldap-stable-20000704.tgz です。最新の開発版は openldap-2.0.4.tgz です。 <p> <bf>[訳注]</bf> ここでいう開発版は実際にはリリース版です。 翻訳時点での最新のリリース版は openldap-2.0.7.tgz で、開発版はありません。 安定版は OpenLDAP 1.2.11 ベースのものです。 <!-- [orig] <sect1>Unpacking the server --> <sect1>サーバの展開 <p> <!-- [orig] Now that you have the tar gzipped package on your local machine, you can unpack it. --> さて、ローカルマシンに gzip で固められたパッケージをもってきて、 それを展開することにしましょう。 <p> <!-- [orig] First copy the package to a desirable directory, for example /usr/local. --> まず、このパッケージを /usr/local などの望みのディレクトリにコピーします。 <p> <!-- [orig] Then use the following command: --> そして次のコマンドを実行します。 <p> <tscreen><verb> tar xvzf openldap-stable.tgz </verb></tscreen> <p> <!-- [orig] You can use this command too, as well: --> 次のコマンドでも同じことができます。 <p> <tscreen><verb> gunzip openldap-stable.tgz | tar xvf - </verb></tscreen> <!-- [orig] <sect1>Configuring the software --> <sect1>ソフトウェアの設定 <p> <!-- [orig] There are several options that you should like to customize so you can build the best software to your site. --> いくつかのオプションが用意されていて、これらをカスタマイズすることにより、 インストールするサイトに最適なソフトウェアが作成できます。 <p> <!-- [orig] To configure the software you just need 2 steps: --> このソフトウェアの設定には、二つのステップしか必要ありません。 <itemize> <!-- [orig] <item>Edit the file <it/ldapconfig.h.edit/, located on the subdirectory <it/include/ beneath the directory where you unpacked the software. --> <item>ソフトウェアを展開したディレクトリ配下のサブディレクトリ <it/include/ にあるファイル <it/ldapconfig.h.edit/ を編集する。 <!-- [orig] <item>Run the configure script (if you are a tough guy, you can also edit the Make-common file instead of running the configure script :^) --> <!--??? [執筆者に要報告] Make-common ファイルって何だ? っと思ったら、ミシガン大の LDAP サーバのソースに含まれている ものらしい(OpenLDAP には無い)。 --> <item>configure スクリプトを実行する(あなたがタフガイならば、configure スクリプトを実行する代わりに Make-common ファイルを編集することも できます :^)。 </itemize> <p> <bf>[訳注]</bf> 現在の OpenLDAP には Make-common ファイルは存在しません。 <p> <!-- [orig] In the file include/ldapconfig.h.edit you can set options like the location of the slapd and slurpd daemons. The file itself is well commented and it's default settings also reflect the most common administrator choices so, if you are in a hurry you can skip this step: --> ファイル include/ldapconfig.h.edit では、slapd と slurpd デーモンの 所在などのオプションを設定できます。このファイル自体よく注釈が つけられていて、デフォルトの設定は最も一般的な管理者の選択を 反映しているので、急いでいるならこのステップを省略してください。 <p> <tscreen><verb> vi include/ldapconfig.h.edit </verb></tscreen> <p> <!-- [orig] The OpenLDAP server sources are distributed with a configuration script for setting options like instalation directories, compiler and linker flags. Type the following command on the directory where you unpacked the software: --> OpenLDAP サーバの配布ソースには、インストールするディレクトリや コンパイラとリンカのフラグなどのオプションを指定するための設定 スクリプトが付属しています。ソフトウェアを展開したディレクトリで 次のようにタイプしてください。 <tscreen><verb> ./configure --help </verb></tscreen> <!-- [orig] This will print all options that you can customize with the configure script before you build the software. Some usefull options are - -prefix=pref , - -exec-prefix=eprefix and - -bindir=dir, for setting instalation directories. Normally if you run configure without options, it will auto-detect the appropriate settings and prepar to build things on the default common location. So just type: --> <!--??? [誤字] `prepar' は `prepare' の間違いであろう --> これは、ソフトウェアを作成する前に configure スクリプトでカスタマイズ できるすべてのオプションを印字します。インストールするディレクトリを 設定するには、<tt/--prefix=pref/, <tt/--exec-prefix=eprefix/, <tt/--bindir=dir/ のオプションが有用です。普通にオプションなしで configure を実行すれば、適切な設定を自動検出し、デフォルトの一般的な 場所にインストールするように準備します。 ということで、そのようにしてみましょう。 <tscreen><verb> ./configure </verb></tscreen> <!-- [orig] And watch the output to see if all went well --> 出力を調べて、すべてうまくいったかを確認してください。 <!-- [orig] <sect1>Building the server --> <sect1>サーバの作成 <p> <!-- [orig] After configuring the software you can start building it. First build the dependencies, using the command: --> ソフトウェアを設定し終えたら、ソフトウェアの作成をはじめることが できます。まず、次のコマンドを使って依存関係を作成します。 <tscreen><verb> make depend </verb></tscreen> <!-- [orig] After build the server, using the command: --> その後、次のコマンドを使ってサーバを作成します。 <tscreen><verb> make </verb></tscreen> <!-- [orig] If all goes well, the server will build as configured. If not, return to the previous step to review the configuration settings. You should check the platform specific hints, they are located in the path doc/install/hints under the directory you unpacked the software. --> すべてうまくいったなら、設定したとおりに作成されているでしょう。 そうでなければ、前のステップに戻って設定した内容を調べてください。 ソフトウェアを展開してできたディレクトリの下のパス doc/install/hints にあるプラットフォーム固有のヒントを確認してみてください。 <p> <!-- [orig] Now install the binaries and man pages. You may need to be superuser to do this (depending on where you are installing things): --> さあ、バイナリと man ページをインストールしましょう。 これを行うには(インストールする場所にもよりますが)スーパユーザになる 必要があるでしょう。 <tscreen><verb> su make install </verb></tscreen> <!-- [orig] That's all, now you have the binary of the server and the binaries of several other utilities. Go to the <ref id="3" name="next"> section to see how to configure the operation of your LDAP server. --> これで完了です。あなたはサーバのバイナリとその他いくつかのユーティリティの バイナリを手に入れました。<ref id="3" name="LDAP サーバの設定">に進んで、 LDAP サーバの設定方法を見てください。 <p> <!-- [orig] The binary of the OpenLdap 2.0 server is called <it/slapd/. OpenLdap 2.0 was officially released on August, 30th and it comprises Ldap protocol v3, as defined on the RFC 2251. --> OpwnLDAP 2.0 サーバのバイナリは <it/slapd/ という名前です。 OpenLDAP 2.0 は 8 月 30 日に正式にリリースされました。 これは RFC 2251 に定義された LDAP プロトコル v3 を取り込んでいます。 <p> <!-- [orig] The main features of OpenLDAP 2.0 are: --> OpenLDAP 2.0 の主な特徴を次にあげます。 <itemize> <!-- [orig] <item>LDAPv2 and LDAPv3 Support (RFC2251-2256,2829-2831) --> <item>LDAPv2 と LDAPv3 (RFC2251-2256,2829-2831) のサポート <!-- [orig] <item>Maintenance of interoperability with existing clients --> <item>既存のクライアントとの互換性の維持 <!-- [orig] <item>IPv4 and IPv6 support --> <item>IPv4 と IPv6 のサポート <!-- [orig] <item>Strong Authentication (SASL) (RFC2829) --> <item>強力な認証機構(SASL) (RFC2829) <item>Start TLS (RFC2830) <!-- [orig] <item>Language Tags (RFC2596) --> <item>言語タグ(RFC2596) <item>DNSベースのサービスロケーション(RFC2247+"locate" インターネットドラフト) <item>スタンドアローンサーバの強化 <item>名前つき参照/ManageDsaIT ("nameref" インターネットドラフト) <item>アクセス制御サブシステムの強化 <item>スレッドプーリング <item>プリエンプティブスレッドのサポート <item>複数リスナのサポート <item>LDIFv1 (RFC2849) <!-- [orig] <item>Improved platform/subsystem detection --> <item>プラットフォーム/サブシステムの検出の改善 </itemize> <p> <!-- [orig] Note: There will be a document on the Linux Documentation Project (LDP) called LDAP Implementation HOWTO. This document will be a great resource for those who want to explore the new features of OpenLDAP 2.0. The date for it's release is around December 2000. --> 注記:Linux Documentation Project (LDP)では LDAP Implementation HOWTO という文書を用意する予定です。この文書は OpenLDAP 2.0 の新機能を調べたい人にとってすばらしい情報源となるでしょう。 この文書は 2000 年の 12 月中にリリースされる予定です。 <p> <!-- [orig] On the latest versions of the OpenLDAP package, it's also possible to test the recently built binaries. The package comes with a test script, which you can run using the command: --> OpenLDAP パッケージの最新版では、今作成したバイナリをテストする こともできます。パッケージにはテストスクリプトが付属していて、 次のようにして実行できます。 <tscreen><verb> make test </verb></tscreen> <p> <bf>[訳注]</bf> このテスト方法は OpenLDAP 2.0.x の場合です。 OpenLDAP 1.2.x では tests サブディレクトリに移ってから make します。 <p> <!-- [orig] If anything goes wrong with the script you can just abort it hitting Ctrl-C. In my case, the script stopped working before it's total completion. Anyway I still could see some successfull messages about my OpenLDAP configuration. --> スクリプトで何か悪いことが起きたなら Ctrl-C を入力して スクリプトの実行を中断できます。私の場合、スクリプトの実行が 完全に終了する前にスクリプトの実行が停止しました。 ともかくも、私の OpenLDAP の設定でもいくつかの成功(successfull)の メッセージを確認できています <p> <bf>[訳注]</bf> 訳者の環境(Vine Linux 2.1 + OpenLDAP 2.0.7)で試したところでは、 問題なくすべてのテストをパスしました。 <!-- [orig] <sect>Configuring the LDAP Server<label id="3"> --> <sect>LDAP サーバの設定<label id="3"> <p> <bf>[訳注]</bf> この章の説明は基本的に OpenLDAP 2.0.x に基づいています。 <p> <!-- [orig] Once the software has been installed and built, you are ready to configure it for use at your site. All slapd runtime configuration is accomplished through the <it/slapd.conf/ file, installed in the prefix directory you specified in the configuration script or by default in /usr/local/etc/openldap. --> <!--??? prefix directory の意味があいまいだが... --> ソフトウェアのインストールが完了したら、あなたのサイトで利用するための 設定をしましょう。slapd ラインタイム設定のすべては、slapd.conf ファイル をとおして行います。このファイルは configure スクリプトで指定した prefix ディレクトリ(デフォルトは /usr/local/etc/openldap)にインストールされて います。 <p> <!-- [orig] This section details the commonly used configuration directives on <it/slapd.conf/. For a complete list, see slapd.conf(5) manual page. The configuration file directives are separated into global, backend-specific and data-specific categories. Here you will find descriptions of directives, together with their default values (if any) and with examples of their use. --> この節では <it/slapd.conf/ でよく使われる設定ディレクティブについて 詳しく説明します。全ディレクティブのリストについては slapd.conf(5) マニュアルページを参照してください。。設定ファイルのディレクティブは、 グローバル、バックエンド固有、データ固有のカテゴリに分けています。 各ディレクティブについては、その説明とともに(もしあれば)そのデフォルト値 と設定例を示します。 <!-- [orig] <sect1>Configuration File Format --> <sect1>設定ファイルのフォーマット <p> <!-- [orig] The slapd.conf file consists of three types of configuration information: global, backend specific, and database specific. Global information is specified first, followed by information associated with a particular backend type, which is then followed by information associated with a particular database instance. --> ファイル slapd.conf は、グローバル、バックエンド固有、 データベース固有の3タイプの設定情報から成ります。 まず最初に指定するのはグローバル情報であり、その後に特定の バックエンド種別に関連した情報が続き、さらにその後に特定の データベース実体に関連した情報が続きます。 <p> <!-- [orig] Global directives can be overridden in a backend and/or database directives, backend directives can be overridden by database directives. --> グローバルディレクティブは後のバックエンドやデータベース設定のディレクティブ で上書きでき、バックエンド設定ディレクティブはデータベース設定 ディレクティブで上書きできます。 <p> <!-- [orig] Blank lines and comment lines beginning with a '#' character are ignored. If a line begins with white space, it is considered a continuation of the previous line. The general format of slapd.conf is as follows: --> ブランク行と '#' 文字で始まるコメント行は無視されます。 行が空白で始まっている場合、前の行からの継続であるとみなされます。 slapd.conf の一般的なフォーマットは次のようになります。 <!-- [orig] <tscreen><verb> # global configuration directives <global config directives> # backend definition backend <typeA> <backend-specific directives> # first database definition & config directives database <typeA> <database-specific directives> # second database definition & config directives database <typeB> <database-specific directives> # second database definition & config directives database <typeA> <database-specific directives> # subsequent backend & database definitions & config directives ... </verb></tscreen> --> <tscreen><verb> # グローバル設定ディレクティブ <グローバル設定ディレクティブ> # バックエンド定義 backend <typeA> <バックエンド固有ディレクティブ> # 1番目のデータベース定義 & 設定ディレクティブ database <typeA> <データベース固有ディレクティブ> # 2番目のデータベース定義 & 設定ディレクティブ database <typeB> <データベース固有ディレクティブ> # 続きのデータベース定義 & 設定ディレクティブ ... </verb></tscreen> <p> <!-- [orig] A configuration directive may take arguments. If so, they are separated by white space. If an argument contains white space, the argument should be enclosed in double quotes "like this". If an argument contains a double quote or a backslash character `\', the character should be preceded by a backslash character `\'. --> 設定ディレクティブの中には引数をとるものがあります。 引数のある場合には空白で区切って並べます。引数に空白を含めたい 場合には、引数を二重引用符で囲みます。引数に二重引用符や バックスラッシュ文字 `\' を含めたい場合には、 その文字の前にバックスラッシュ文字 `\' を置きます。 <p> <!-- [orig] The distribution contains an example configuration file that will be installed in the /usr/local/etc/openldap directory. A number of files containing schema definitions (attribute types and object classes) are also provided in the /usr/local/etc/openldap/schema directory. --> OpenLDAP の配布物の中には設定ファイルのサンプルが付いてきます。 これは普通 /usr/local/etc/openldap ディレクトリに インストールされます。スキーマ定義(属性型とオブジェクトクラス)を 含んだファイルも /usr/local/etc/openldap/schema ディレクトリに提供されています。 <!-- [orig] <sect1>Global Directives<label id="3.2"> --> <sect1>グローバルディレクティブ<label id="3.2"> <p> <!-- [orig] Directives described in this section apply to all backends and databases unless specifically overridden in a backend or database definition. Arguments that should be replaced by actual text are shown in brackets <>. --> この節で説明するディレクティブは、バックエンドまたはデータベースの 定義で特に上書きしない限り、すべてのバックエンドとデータベースに 適用されます。実際のテキストで置き換えるディレクティブの引数は ブラケット <> で示します。 <p> <descrip><tag/ access to <what> [ by <who> <accesslevel> <control> ]+ / <!-- [orig] <tscreen><verb> This directive grants access (specified by <accesslevel>) to a set of entries and/or attributes (specified by <what>) by one or more requesters (specified by <who>). See the Access Control examples for more details. </verb></tscreen> <p> --> このディレクティブは、エントリや属性の1セット(<what> に指定)に 対するアクセス権(<accesslevel> に指定)を1人以上の要求者(<who> に指定)に与えます。より詳しくは「アクセス制御」の例を参照してください。 <tag/ attributetype <RFC2252 Attribute Type Description> / <!-- [orig] <tscreen><verb> This directive defines an attribute type. </verb></tscreen> <p> --> このディレクティブは属性型を定義します。 <tag/ defaultaccess { none | compare | search | read | write } / <!-- [orig] <tscreen><verb> This directive specifies the default access to grant requesters when no access directives have been specified. Any given access level implies all lesser access levels (e.g., read access implies search and compare but not write). Default: defaultaccess read </verb></tscreen> <p> --> このディレクティブは、access ディレクティブが指定されて いないときに、要求者に与えるデフォルトのアクセス権を指定します。 どのアクセス権レベルもより下位のアクセス権レベルを暗に与えます (たとえば read アクセス権は、search, compare アクセス権を暗に 与えますが write アクセス権は与えません)。 <p> デフォルトの設定は次のとおりです。 <verb> defaultaccess read </verb> <tag/ idletimeout <integer> / <!-- [orig] <tscreen><verb> Specify the number of seconds to wait before forcibly closing an idle client connection. An idletimeout of 0, the default, disables this feature. </verb></tscreen> <p> --> アイドル状態のクライアント接続を強制的に切断するまでの 秒数を指定します。idletimeout の値が 0 であると(デフォルト) この機能は無効になります。 <tag/ include <filename> / <!-- [orig] <tscreen><verb> This directive specifies that slapd should read additional configuration information from the given file before continuing with the next line of the current file. The included file should follow the normal slapd config file format. The file is commonly used to include files containing schema specifications. </verb></tscreen> --> このディレクティブは、slapd が現在のファイルの次の行に進む前に、与えた ファイルから追加の設定情報を読み込むことを指定します。取り込む ファイルは、通常の slapd 設定ファイルのフォーマットに従います。 ファイルの取込みは一般にスキーマ指定の記述されたファイルを取り込む のに使われます。 <p> <!-- [orig] Note: You should be careful when using this directive - there is no small limit on the number of nested include directives, and no loop detection is done. <p> --> 注記:このディレクティブの取扱いには注意してください - 入れ子になった include ディレクティブに制限はなく、include がループになった場合でも 検出されません。 <tag/ loglevel <integer> / <!-- [orig] <tscreen><verb> This directive specifies the level at which debugging statements and operation statistics should be syslogged (currently logged to the syslogd(8) LOCAL4 facility). You must have configured OpenLDAP - -enable-debug (the default) for this to work (except for the two statistics levels, which are always enabled). Log levels are additive. To display what numbers correspond to what kind of debugging, invoke slapd with -? or consult the table below. The possible values for <integer> are: --> <!--??? slapd のデバッグレベル表示はなくなった? --> このディレクティブは、デバッグ情報と操作の統計値を syslog に出力するレベルを指定します(現在のところ、syslogd(8) の LOG_LOCAL4 ファシリティに記録されます)。 このオプションが有効になるようにするには OpenLDAP を --enable-debug 付き(デフォルト)で configure しなければなりません(統計に関する二つの レベルは例外で、これらは常に利用可能です)。どのデバックに何の数が 対応しているのかを調べるには -d ? を指定して slapd を起動するか、 以下の表を参考にしてください。<integer> に指定可能な値には 次のものがあります。 <p> <bf>[訳注]</bf> OpenLDAP 2.0.x では slapd の -d ? 指定が無くなりました。 <!-- [orig] -1 enable all debugging 0 no debugging 1 trace function calls 2 debug packet handling 4 heavy trace debugging 8 connection management 16 print out packets sent and received 32 search filter processing 64 configuration file processing 128 access control list processing 256 stats log connections/operations/results 512 stats log entries sent 1024 print communication with shell backends 2048 print entry parsing debugging --> <verb> -1 すべてのデバッグレベルを有効にする 0 デバッグしない 1 関数呼出しのトレース 2 パケット処理のデバッグ 4 詳細なデバッグトレース 8 接続管理 16 パケット送受信の印字 32 検索フィルタ処理 64 設定ファイル処理 128 アクセス制御リスト処理 256 接続/操作/結果の統計ログ 512 エントリ送信の統計ログ 1024 shell バックエンドとの通信の印字 2048 エントリ解析のデバッグ印字 </verb> <!-- [orig] Example: loglevel 255 or loglevel -1 This will cause lots and lots of debugging information to be syslogged. Default: loglevel 256 </verb></tscreen> <p> --> <p> たとえば次のように指定します。 <verb> loglevel 255 あるいは loglevel -1 </verb> このように設定すると、大量のデバッグ情報が記録されます。 <p> デフォルトの設定は次のとおりです。 <verb> loglevel 256 </verb> <tag/ objectclass <RFC2252 Object Class Description> / <!-- [orig] <tscreen><verb> This directive defines an object class. </verb></tscreen> --> このディレクティブはオブジェクトクラスを定義します。 <!-- [orig] <p>referral <URI> --> <tag/referral <URI>/ <!-- [orig] <tscreen><verb> This directive specifies the referral to pass back when slapd cannot find a local database to handle a request. --> このディレクティブは、要求を処理するためのローカルデータベースを見つけられ なかった場合に、クライアントに戻す紹介先を指定します。 <!-- [orig] Example: referral ldap://root.openldap.org --> <p> たとえば次のように指定します。 <verb> referral ldap://root.openldap.org </verb> <!-- [orig] This will refer non-local queries to the global root LDAP server at the OpenLDAP Project. Smart LDAP clients can re-ask their query at that server, but note that most of these clients are only going to know how to handle simple LDAP URLs that contain a host part and optionally a distinguished name part. </verb></tscreen> --> これは、OpenLDAP プロジェクトのグローバルルート LDAP サーバに 非ローカルな問合せを紹介することを指定します。賢い LDAP クライアント なら戻されるサーバに再要求をするでしょうが、そのようなクライアントの ほとんどは、ホスト名の部分とオプションの識別名の部分とを持った 単純な LDAP URL の処理方法を知っているだけです。 <!-- [orig] <p>sizelimit <integer> --> <tag/sizelimit <integer>/ <!-- [orig] <tscreen><verb> This directive specifies the maximum number of entries to return from a search operation. --> このディレクティブは、検索操作から返すエントリの最大数を指定します。 <!-- [orig] Default: sizelimit 500 </verb></tscreen> --> <p> デフォルトの設定は次のとおりです。 <verb> sizelimit 500 </verb> <!-- [orig] <p>timelimit <integer> --> <tag/timelimit <integer>/ <!-- [orig] <tscreen><verb> This directive specifies the maximum number of seconds (in real time) slapd will spend answering a search request. If a request is not finished in this time, a result indicating an exceeded timelimit will be returned. --> このディレクティブは、slapd が検索要求の応答に使う最大秒数(実時間)を 指定します。この時間内に要求が達せられなければ、時間制限を超過した ことを示す結果を返します。 <!-- [orig] Default: timelimit 3600 </verb></tscreen> --> <p> デフォルトの設定は次のとおりです。 <verb> timelimit 3600 </verb> </descrip> <!-- [orig] <sect1>General Backend Options --> <sect1>一般バックエンドディレクティブ <p> <!-- [orig] Directives in this section apply only to the backend in which they are defined. They are supported by every type of backend. Backend directives apply to all databases instances of the same type and, depending on the directive, may be overridden by database directives. --> この節のディレクティブは、そのディレクティブが定義されている バックエンドにのみ適用されます。これらのディレクティブは全種別の バックエンドでサポートされます。バックエンドディレクティブは、 同種別のすべてのデータベース実体に適用しますが、ディレクティブ によってはデータベースディレクティブで上書きされます。 <p> <descrip> <tag/ backend <type> / <!-- [orig] <tscreen><verb> This directive marks the beginning of a backend definition. <type> should be one of ldbm, shell, passwd, or other supported backend type. </verb></tscreen> --> このディレクティブは、バックエンド定義の始まりを示します。 <type> には、ldbm, shell, passwd などサポートされている バックエンド種別のどれかを指定します。 </descrip> <!-- [orig] <sect1>General Database Directives --> <sect1>一般データベースディレクティブ <p> <!-- [orig] Directives in this section apply only to the database in which they are defined. They are supported by every type of database. --> この節のディレクティブは、そのディレクティブが定義されている データベースにのみ適用されます。これらのディレクティブは全種別の データベースでサポートされます。 <p> <descrip> <tag/ database <type> / <!-- [orig] <tscreen><verb> This directive marks the beginning of a new database instance definition. <type> should be one of ldbm, shell, passwd, or other supported database type. --> このディレクティブは新しいデータベース実体定義の始まりを 示します。<type> には、ldbm, shell, passwd など、 サポートされているデータベースの種別のいずれかを指定します。 <!-- [orig] Example: database ldbm --> たとえば次のように指定します。 <verb> database ldbm </verb> <!-- [orig] This marks the beginning of a new LDBM backend database instance definition. </verb></tscreen> <p> --> この設定は、新しい LDBM バックエンドデータベース実体定義の始まりを 示します。 <tag/ readonly { on | off } / <!-- [orig] <tscreen><verb> This directive puts the database into "read-only" mode. Any attempts to modify the database will return an "unwilling to perform" error. --> このディレクティブは、データベースを「読取り専用」モードにします。 このモードでデータベースを更新しようとすると "unwilling to perform" エラーが返ります。 <!-- [orig] Default: readonly off </verb></tscreen> --> <p> デフォルトの設定は次のとおりです。 <verb> readonly off </verb> <!-- <p>replica <p> --> <tag/replica/ <-- [orig] replica host=<hostname>[:<port>] [bindmethod={ simple | kerberos | sasl }] ["binddn=<DN>"] [mech=<mech>] [authcid=<identity>] [authzid=<identity>] [credentials=<password>] [srvtab=<filename>] --> <verb> replica host=<hostname>[:<port>] [bindmethod={ simple | kerberos | sasl }] ["binddn=<DN>"] [mech=<mech>] [authcid=<identity>] [authzid=<identity>] [credentials=<password>] [srvtab=<filename>] </verb> <!-- [orig] <tscreen><verb> This directive specifies a replication site for this database. The host= parameter specifies a host and optionally a port where the slave slapd instance can be found. Either a domain name or IP address may be used for <hostname>. If <port> is not given, the standard LDAP port number (389) is used. --> このディレクティブは、このデータベースの複製サイトを指定します。パラメータ host= は、スレーブ slapd の実体があるホストとポート(オプション)を 指定します。<hostname> はドメイン名あるいは IP アドレスを使って指定しま す。<port> が与えられていなければ、標準の LDAP ポート番号(389)が 使われます。 <!-- [orig] The binddn= parameter gives the DN to bind as for updates to the slave slapd. It should be a DN which has read/write access to the slave slapd's database, typically given as a rootdn in the slave's config file. It must also match the updatedn directive in the slave slapd's config file. Since DNs are likely to contain embedded spaces, the entire "binddn=<DN>" string should be enclosed in double quotes. --> <p> パラメータ binddn= は、スレーブ slapd の更新でバインド するための DN を与えます。これは、スレーブ slapd のデータベースに 対してアクセス権 read/write を持った DN にしなければなりません。 通常はスレーブ slapd の設定ファイルにある rootdn に指定して あるものを与えます。またこの DN は、スレーブ slapd 設定ファイルの updatedn ディレクティブに指定したものと一致していなければなりません。 DN にはスペースが入っていることが多いので、"binddn=<DN>" 文字列は 二重引用符で囲っておくとよいでしょう。 <!-- [orig] The bindmethod is simple or kerberos or sasl, depending on whether simple password-based authentication or Kerberos authentication or SASL authentication is to be used when connecting to the slave slapd. --> <p> bindmethod は、スレーブ slapd への接続に使う認証が パスワードベースのものか、Kerberos か、SASL かによって simple か kerberos か sasl になります。 <!-- [orig] Simple authentication should not be used unless adequate integrity and privacy protections are in place (e.g. TLS or IPSEC). Simple authentication requires specification of binddn and credentials parameters. --> <p> 簡易認証は十分な一貫性と機密性の保護(TLS や IPSEC など)がなければ 使うべきではありません。簡易認証は binddn と credentials パラメータの指定を必要とします。 <!-- [orig] Kerberos authentication is deprecated in favor of SASL authentication mechanisms, in particular the KERBEROS_V4 and GSSAPI mechanisms. Kerberos authentication requires binddn and srvtab parameters. --> <p> Kerberos 認証は、SASL 認証のせいで時代遅れになっています。 (特に KERBEROS_V4 と GSSAPI)。Kerberos 認証は binddn と srvtab パラメータの指定を必要とします。 <!-- [orig] SASL authentication is generally recommended. SASL authentication requires specification of a mechanism using the mech parameter. Depending on the mechanism, an authentication identity and/or credentials can be specified using authcid and credentials respectively. The authzid parameter may be used to specify an authorization identity. </verb></tscreen> <p> --> <p> 一般には SASL 認証を使うことを勧めます。SASL 認証は mech パラメータを使った機構の指定が必要です。指定する機構に依存して、 認証アイデンティティや証明書を authcid と credentials を使って指定できます。認証アイデンティティの指定には authzid パラメータを使うかもしれません。 <tag/ replogfile <filename> / <!-- [orig] <tscreen><verb> This directive specifies the name of the replication log file to which slapd will log changes. The replication log is typically written by slapd and read by slurpd. Normally, this directive is only used if slurpd is being used to replicate the database. However, you can also use it to generate a transaction log, if slurpd is not running. In this case, you will need to periodically truncate the file, since it will grow indefinitely otherwise. </verb></tscreen> <p> --> このディレクティブは、slapd が 変更を記録する複製ログファイルの 名前を指定します。複製ログは通常 slapd が書き出し、slurpd が 読み取ります。通常このディレクティブは、データベースを複製する ために slurpd が使われている場合にのみ利用します。しかし slurpd を実行していなくても、トランザクションログの生成に使えます。この場合、 複製ログファイルは無限に増え続けるので定期的に切り詰める必要があります。 <tag/ rootdn <dn> / <!-- [orig] <tscreen><verb> This directive specifies the DN that is not subject to access control or administrative limit restrictions for operations on this database. The DN need not refer to an entry in the directory. The DN may refer to a SASL identity. --> このディレクティブは、このデータベースに対するアクセス権制御あるいは 管理限度の制限に従わない DN を指定します。この DN はディレクトリ中の エントリである必要はありません。この DN には SASL アイデンティティ を使えます。 <!-- [orig] Entry-based Example: rootdn "cn=Manager, dc=example, dc=com" SASL-based Example: rootdn "uid=root@EXAMPLE.COM" </verb></tscreen> <p> --> <p> エントリベースの例: <verb> rootdn "cn=Manager,dc=example,dc=com" </verb> <p> SASL ベースの例: <verb> rootdn "uid=root@EXAMPLE.COM" </verb> <tag/ rootpw <password> / <!-- [orig] <tscreen><verb> This directive specifies a password for the DN given above that will always work, regardless of whether an entry with the given DN exists or has a password. This directive is deprecated in favor of SASL based authentication. --> このディレクティブは、上のオプションで与えた DN のエントリが 存在するか、そのエントリがパスワードを持っているかにかかわらず、 常に適用するパスワードを指定します。 このディレクティブは SASL 認証のせいで時代遅れになっています。 <!-- [orig] Example: rootpw secret </verb></tscreen> <p> --> <p> たとえば次のように指定します。 <verb> rootpw secret </verb> <tag/ suffix <dn suffix> / <!-- [orig] <tscreen><verb> This directive specifies the DN suffix of queries that will be passed to this backend database. Multiple suffix lines can be given, and at least one is required for each database definition. --> このディレクティブは、このバックエンドデータベースに渡す問合せの DN 接尾辞を指定します。複数の suffix 行を与えてもよいですが、 各データベース定義に少なくとも一つは必要です。 <!-- [orig] Example: suffix "dc=example, dc=com" --> <p> たとえば次のように指定します。 <verb> suffix "dc=example,dc=com" </verb> <!-- [orig] Queries with a DN ending in "dc=example, dc=com" will be passed to this backend. --> <p> この指定では、DN の末尾に "dc=example, dc=com" の付いた 問合せがこのバックエンドに渡されます。 <!-- [orig] Note: When the backend to pass a query to is selected, slapd looks at the suffix line(s) in each database definition in the order they appear in the file. Thus, if one database suffix is a prefix of another, it must appear after it in the config file. </verb></tscreen> <p> --> <p> 注記:問合せを渡すバックエンドが選択されるとき、slapd は各データベースの suffix 行を設定ファイルに現れる順番に見ていきます。したがって、あるデー タベースの接尾辞が別のデータベースの接頭辞になっている場合には、設定ファ イルのより後のほうに現れるようにしなければなりません。 <tag/ updatedn <dn> / <!-- [orig] <tscreen><verb> This directive is only applicable in a slave slapd. It specifies the DN allowed to make changes to the replica. This may be the DN slurpd(8) binds as when making changes to the replica or the DN associated with a SASL identity. --> このディレクティブはスレーブの slapd にのみ適用できます。 このディレクティブは複製の変更を許す DN を指定します。 これには、複製の変更をするときに slurpd(8) がバインドする DN、 あるいは SASL アイデンティティと関連した DN を指定します。 <!-- [orig] Entry-based Example: updatedn "cn=Update Daemon, dc=example, dc=com" SASL-based Example: updatedn "uid=slurpd@EXAMPLE.COM" </verb></tscreen> <p> --> <p> エントリベースの例: <verb> updatedn "cn=Update Daemon,dc=example,dc=com" </verb> <p> SASL ベースの例: <verb> updatedn "uid=slurpd@EXAMPLE.COM" </verb> <tag/ updateref <URL> / <!-- [orig] <tscreen><verb> This directive is only applicable in a slave slapd. It specifies the URL to return to clients which submit update requests upon the replica. If specified multiple times, each URL is provided. --> このディレクティブはスレーブの slapd にのみ適用できます。 これは複製の更新要求を送るクライアントに戻す URL を指定します。 このディレクティブはいくつも指定でき、各 URL が戻されます。 <!-- [orig] Example: update ldap://master.example.net </verb></tscreen> --> <!--??? 'update' ではなく 'updateref' --> <p> たとえば次のように指定します。 <verb> updateref ldap://master.example.net </verb> </descrip> <!-- [orig] <sect1>LDBM Backend-Specific Directives --> <sect1>LDBM バックエンド固有ディレクティブ <p> <!-- [orig] Directives in this category only apply to the LDBM backend database. That is, they must follow a "database ldbm" line and come before any other "database" line. --> このカテゴリのディレクティブは、LDBM バックエンドデータベースにのみ適用され ます。すなわち、"database ldbm" とある行の後で、次の "database" 行が現れ る前になければなりません。 <p> <descrip> <tag/ cachesize <integer> / <!-- [orig] <tscreen><verb> This directive specifies the size in entries of the in-memory cache maintained by the LDBM backend database instance. --> このディレクティブは、LDBM バックエンドデータベースの実体によって管理される メモリ内キャッシュのエントリ数を指定します。 <!-- [orig] Default: cachesize 1000 </verb></tscreen> <p> --> <p> デフォルトの設定は次のとおりです。 <verb> cachesize 1000 </verb> <tag/ dbcachesize <integer> / <!-- [orig] <tscreen><verb> This directive specifies the size in bytes of the in-memory cache associated with each open index file. If not supported by the underlying database method, this directive is ignored without comment. Increasing this number uses more memory but can cause a dramatic performance increase, especially during modifies or when building indexes. --> このディレクティブは、オープンされている索引ファイルそれぞれと関連づ けられているメモリ内キャッシュのサイズをバイト数で指定します。基板のデー タベース方式でサポートされなければ、このディレクティブは黙って無視されます。 この数を増やすとより多くのメモリを使いますが、劇的な性能の向上が得られま す。特に 更新と索引の作成で性能の向上が顕著です。 <!-- [orig] Default: dbcachesize 100000 </verb></tscreen> <p> --> <p> デフォルトの設定は次のとおりです。 <verb> dbcachesize 100000 </verb> <tag/ dbnolocking / <!-- [orig] <tscreen><verb> This option, if present, disables database locking. Enabling this option may improve performance at the expense of data security. </verb></tscreen> --> このディレクティブが指定されるとデータベースのロックが 無効になります。このディレクティブは、データのセキュリティを 犠牲にしてでも性能を上げたい場合に使います。 <!-- [orig] <p>dbnosync --> <tag/dbnosync/ <!-- [orig] <tscreen><verb> This option causes on-disk database contents not be immediately synchronized with in memory changes upon change. Enabling this option may improve performance at the expense of data security. </verb></tscreen> <p> --> このディレクティブは、変更に対するメモリ内の変更をディスク上の内容と すぐには同期をとらないようにします。このディレクティブは、データの セキュリティを犠牲にしてでも性能を上げたい場合に使います。 <tag/ directory <directory> / <!-- <tscreen><verb> This directive specifies the directory where the LDBM files containing the database and associated indexes live. --> このディレクティブは、データベースと関連する索引を含んだ LDBM ファイル郡を 置くディレクトリを指定します。 <!-- [orig] Default: directory /usr/local/var/openldap-ldbm </verb></tscreen> <p> --> <p> デフォルトの設定は次のとおりです。 <verb> directory /usr/local/var/openldap-ldbm </verb> <tag/ index {<attrlist> | default} [pres,eq,approx,sub,none] / <!-- [orig] <tscreen><verb> This directive specifies the indexes to maintain for the given attribute. If only an <attrlist> is given, the default indexes are maintained. --> このディレクティブは、与えた属性について管理する索引を指定します。 <attrlist%gt; だけが与えられた場合、デフォルトの索引が管理されます。 <!-- [orig] Example: index default pres,eq index objectClass,uid index cn,sn eq,sub,approx --> たとえば次のように指定します。 <verb> index default pres,eq index objectClass,uid index cn,sn eq,sub,approx </verb> <!-- [orig] The first line sets the default set of indices to maintain to present and equality. The second line causes the default (pres,eq) set of indices to be maintained for objectClass and uid attribute types. The third line causes equality, substring, and approximate indices to be maintained for cn and sn attribute types. </verb></tscreen> --> 1行目は、索引のデフォルトセットを存在と等価性を管理するように設定します。 2行目は、objectClass と uid 属性型についてデフォルトの索引(pres, eq)を 管理すように設定します。3行目は、cn と sn 属性型について等価性、 部分文字列、近似の索引を管理するように設定します。 <!-- [orig] <p>mode <integer> --> <tag/mode <integer>/ <!-- [orig] <tscreen><verb> This directive specifies the file protection mode that newly created database index files should have. --> このディレクティブは、新たに作成されるデータベース索引ファイル の持つファイル保護モードを指定します。 <!-- [orig] Default: mode 0600 </verb></tscreen> --> <p> デフォルトの設定は次のとおりです。 <verb> mode 0600 </verb> </descrip> <!-- [orig] <sect1>Other Backend Databases --> <sect1>他のバックエンドデータベース <p> <!-- [orig] <it/slapd/ supports a number of backend database types besides the default LDBM: --> <it/slapd/ は、デフォルトの LDBM の他にもいくつもの バックエンドデータベース種別をサポートしています。 <!-- [orig] <itemize> <item>ldbm: Berkeley or GNU DBM compatible backend <item>passwd: Provides read-only access to /etc/passwd <item>shell: Shell (extern program) backend <item>sql: SQL Programmable backend </itemize> --> <itemize> <item>ldbm: Berkeley または GNU DBM 互換のバックエンド <item>passwd: /etc/passwd への読取り専用のアクセスを提供 <item>shell: シェル(外部プログラム)バックエンド <item>sql: SQL プログラムが可能なバックエンド </itemize> <p> <!-- [orig] Take a look on the slapd.conf(5) manpage for details. --> 詳しくは {{slapd.conf}}(5) manpage を参照してください。 <!-- [orig] <sect1>Access Control Examples --> <sect1>アクセス制御の例 <p> <!-- [orig] The access control facility presented on <ref id="3.2" name="section 3.2"> is quite powerful. This section shows some examples of its use. First, some simple examples: --> <ref id="3.2" name="グローバルディレクティブ">の説明にあるアクセス制御 機能は実に強力です。この節では、アクセス制御の利用例をいくつか示します。 まずは、簡単な例から。 <tscreen><verb> access to * by * read </verb></tscreen> <p> <!-- [orig] This access directive grants read access to everyone. If it appears alone it is the same as the following defaultaccess line. --> この access ディレクティブは、あらゆる人に読取り(read)アクセス権を与えます。 これだけを指定した場合には、次の defaultaccess 行と同じことになります。 <tscreen><verb> defaultaccess read </verb></tscreen> <p> <!-- [orig] The following example shows the use of a regular expression to select the entries by DN in two access directives where ordering is significant. --> 次の例は、DN でエントリを選択するのに正規表現を利用しているところを 示しています。この二つのアクセス権宣言の順番は重要です。 <!-- [orig] <tscreen><verb> access to dn=".*, o=U of M, c=US" by * search access to dn=".*, c=US" by * read </verb></tscreen> --> <!--??? [誤り] 前の行に続く(by〜)なら字下げをしないと --> <tscreen><verb> access to dn=".*, o=U of M, c=US" by * search access to dn=".*, c=US" by * read </verb></tscreen> <p> <!-- [orig] Read access is granted to entries under the c=US subtree, except for those entries under the "o=University of Michigan, c=US" subtree, to which search access is granted. If the order of these access directives was reversed, the U-M-specific directive would never be matched, since all U-M entries are also c=US entries. --> <!-- ??? [誤り] 例に従えば "o=University of Michigan, c=US" ではなく "o=U of M, c=US" U-M も U of M にしたほうがよいでしょう --> この例では、読取り(read)アクセス権が c=US サブツリー配下のエントリに 与えられますが、"o=U of M, c=US" サブツリー配下に限っては検索(search) アクセス権しか与えられません。このアクセス権指定の順序を逆にすると、 すべての "U of M" エントリは "c=US" エントリでもあるので、 "U of M" の方の指定が全く適用されなくなってしまいます。 <p> <!-- [orig] The next example again shows the importance of ordering, both of the access directives and the "by" clauses. It also shows the use of an attribute selector to grant access to a specific attribute and various <who> selectors. --> 次の例も順序の重要性を示していますが、今度はアクセス権指定の他に "by" 節の 順序についても示しています。 またこの例では、特定の属性へのアクセス権を与える属性セレクタと、 さまざまな <who> セレクタの利用法についても示しています。 <!-- [orig] <tscreen><verb> access to dn=".*, o=U of M, c=US" attr=homePhone by self write by dn=".*, o=U of M, c=US" search by domain=.*\.umich\.edu read by * compare access to dn=".*, o=U of M, c=US" by self write by dn=".*, o=U of M, c=US" search by * none </verb></tscreen> --> <!--??? [誤り] 前の行に続く(by〜)なら字下げをしないと --> <tscreen><verb> access to dn=".*, o=U of M, c=US" attr=homePhone by self write by dn=".*, o=U of M, c=US" search by domain=.*\.umich\.edu read by * compare access to dn=".*, o=U of M, c=US" by self write by dn=".*, o=U of M, c=US" search by * none </verb></tscreen> <p> <!-- [orig] This example applies to entries in the "o=U of M, c=US" subtree. To all attributes except homePhone, the entry itself can write them, other U-M entries can search by them, anybody else has no access. The homePhone attribute is writable by the entry, searchable by other U-M entries, readable by clients connecting from somewhere in the umich.edu domain, and comparable by everybody else. --> <!-- ??? [誤り] U-M は U of M にしたほうがよいでしょう --> この例は、"o=U of M, c=US" サブツリーのエントリに適用されます。 属性 homePhone を除くすべての属性に対し、当該エントリ自体には 書込み権(write)を与え、他の "U of M" 配下のエントリには 検索権(search)を与え、その他のエントリにはアクセス権を与えません。 属性 homePhone に対しては、当該エントリ自体には書込み権(write)を与え、 他の "U of M" エントリには検索権(search)を与え、umich.edu ドメイン内の どこからか接続するクライアントには読取り権を与え、その他のエントリには 比較権(compare)を与えます。 <p> <!-- [orig] Sometimes it is usefull to permit a particular DN to add or remove itself from an attribute. For example, if you would like to create a group and allow people too add and remove only their own DN from the member attribute, you could accomplish it with an access directive like this: --> <!--??? [誤字] `usefull' は `useful' の誤り `too' は `to' の誤り --> 特定の DN に属性の追加と除去を許すことが有用なことがあります。 たとえば、あるグループを作成し、人々に member 属性への追加と 除去を自分自身の DN に限ってできるようにしたい場合、 次のようなアクセス権宣言で実現できます。 <!-- [orig] <tscreen><verb> access to attr=member,entry by dnattr=member selfwrite </verb></tscreen> --> <!--??? [誤り] 継続行が字下げされていない --> <tscreen><verb> access to attr=member,entry by dnattr=member selfwrite </verb></tscreen> <p> <!-- [orig] The dnattr <who> selector says that the access applies to entries listed in the member attribute. The selfwrite access selector says that such members can only add or delete their own DN from the attribute, not other values. The addition of the entry attribute is required because access to the entry is required to access any of the entry's attributes. --> セレクタ dnattr <who> は、アクセス権が member 属性にリストされている エントリに適用されることを指定します。アクセス権セレクタ selfwrite は、 そのような member 達が自分自身の DN だけを属性から追加/削除できることを指定 します。また、entry 属性を追加しておくことが必要です。なぜなら、 エントリのどの属性にアクセスするにせよ、エントリへのアクセス権が必要に なるからです。 <p> <bf>[訳注]</bf> "entry" はエントリ内に実在しない特殊な属性で、 属性へのアクセス権指定でエントリへのアクセス権を指定するために 使うものです。 <p> <!-- [orig] Note that the attr=member construct in the <what> clause is a shorthand for the clause "dn=* attr=member" (i.e., it matches the member attribute in all entries). --> <what> 節の中の attr=member 構成要素は、節 "dn=* attr=member" の 省略形であることに注目してください(すなわち、すべてのエントリの member 属性に一致します)。 <p> <!-- [orig] Note: Take a look on OpenLDAP Administrator's Guide at <url url="http://openldap.org" name=" http://www.openldap.org"> to learn more about Access Control on Ldap. --> 注記:LDAP のアクセス制御についてもっと知りたければ OpenLDAP Administrator's Guide (<htmlurl url="http://openldap.org" name="http://www.openldap.org">) を調べてください。 <!-- [orig] <sect1>Configuration File Example --> <sect1>設定ファイルの例 <p> <!-- [orig] The following is an example configuration file, interspersed with explanatory text. It defines two databases to handle different parts of the X.500 tree; both are LDBM database instances. The line numbers shown are provided for reference only and are not included in the actual file. First, the global configuration section: --> 以下は設定ファイルの例です。例の所々には説明をつけてあります。 これは二つのデータベースを定義していて、それぞれ X.500 ツリーの別々の部分を処理します。両方ともデータベースには LDBM を使っています。説明の都合上、例には行番号をつけていますが、 実際のファイルには行番号をつけません。まずはグローバル設定セクション から説明します。 <tscreen><verb> 1. # example config file - global configuration section 2. include /usr/local/etc/schema/core.schema 3. referral ldap://root.openldap.org 4. access to * by * read </verb></tscreen> <p> <!-- [orig] Line 1 is a comment. Line 2 includes another config file which containing core schema definitions. The referral directive on line 3 means that queries not local to one of the databases defined below will be referred to the LDAP server running on the standard port (389) at the host root.openldap.org. --> 行 1 はコメントです。行 2 は core スキーマ定義を含んだ 別の設定ファイルを取り込みます。行 3 の referral ディレクティブは、後に定義するデータベースのどれかにローカル でない問合せについて、ホスト root.openldap.org で動作している標準ポート(389)の LDAP サーバを参照することを意味します。 <p> <!-- [orig] Line 4 is a global access control. It is used only if no database access controls match or when the target objects are not under the control of any database (such as the Root DSE). --> 行 4 はグローバルなアクセス制御です。これは、データベースのアクセス制御に 一致するものがない場合、あるいは、アクセスの対象となるオブジェクトが (Root DSE のように)どのデータベースの制御下にもない場合にのみ使われます。 <p> <!-- [orig] The next section of the configuration file defines an LDBM backend that will handle queries for things in the "dc=example,dc=com" portion of the tree. The database is to be replicated to two slave slapds, one on truelies, the other on judgmentday. Indexes are to be maintained for several attributes, and the <it/userPassword/ attribute is to be protected from unauthorized access. --> 設定ファイルの例の次の部分は、ツリーの "dc=example,dc=com" 配下 にあるものについての問合せを処理する LDBM バックエンドを定義します。 このデータベースは二つのスレーブ slapd に複製されます。 スレーブの一つは truelies で、もう一つは judgmentday です。 いくつかの属性について索引が管理され、<it/userPassword/ 属性は認証されていないものからのアクセスから保護されます。 <tscreen><verb> 5. # ldbm definition for the example.com 6. database ldbm 7. suffix "dc=example, dc=com" 8. directory /usr/local/var/openldap 9. rootdn "cn=Manager, dc=example, dc=com" 10. rootpw secret 11. # replication directives 12. replogfile /usr/local/var/openldap/slapd.replog 13. replica host=slave1.example.com:389 14. binddn="cn=Replicator, dc=example, dc=com" 15. bindmethod=simple credentials=secret 16. replica host=slave2.example.com 17. binddn="cn=Replicator, dc=example, dc=com" 18. bindmethod=simple credentials=secret 19. # indexed attribute definitions 20. index uid pres,eq 21. index cn,sn,uid pres,eq,approx,sub 22. index objectClass eq 23. # ldbm access control definitions 24. access to attr=userPassword 25. by self write 26. by anonymous auth 27. by dn="cn=Admin,dc=example,dc=com" write 28. by * none 29. access to * 30. by self write 31. by dn="cn=Admin,dc=example,dc=com" write 32. by * read </verb></tscreen> <p> <!-- [orig] Line 5 is a comment. The start of the database definition is marked by the database keyword on line 6. Line 7 specifies the DN suffix for queries to pass to this database. Line 8 specifies the directory in which the database files will live. --> 行 5 はコメントです。データベース定義の始まりは、 行 6 の database キーワードで示します。行 7 は、このデータベース に渡す問合せのための DN 接尾辞を指定します。行 8 は、 データベースファイルを置くディレクトリを指定します。 <p> <!-- [orig] Lines 9 and 10 identify the database "super user" entry and associated password. This entry is not subject to access control or size or time limit restrictions. --> 行 9 と 10 は、このデータベースの「スーパユーザ」エントリと そのパスワードを指定します。このエントリは アクセス制御あるいはサイズ/時間制限に従いません。 <p> <!-- [orig] Lines 11 through 18 are for replication. Line 11 specifies the replication log file (where changes to the database are logged - this file is written by slapd and read by slurpd). Lines 12 through 14 specify the hostname and port for a replicated host, the DN to bind as when performing updates, the bind method (simple) and the credentials (password) for the binddn. Lines 15 through 18 specify a second replication site. --> 行 11 から 18 は複製の設定です。行 11 は複製ログファイルを 指定します(データベースの変更が記録されます - このファイルには slapd が書き込み、slurpd が読み出します)。行 12 から 14 は 複製が作られるホスト、更新を行うときのバインドのための DN、 バインド方法(簡易認証)、binddn のための証明書(パスワード)を 指定します。行 15 から 18 は、第2の複製サイトを指定します。 <p> <!-- [orig] Lines 20 through 22 indicate the indexes to maintain for various attributes. --> 行 20 から 22 は、さまざまな属性のために管理する索引を指定します。 <p> <!-- [orig] Lines 24 through 32 specify access control for entries in the database. For all entries, the userPassword attribute is writable by the entry itself and by the "admin" entry. It may be used for authentication/authorization purposes, but is otherwise not readable. All other attributes are writable by the entry and the "admin" entry, but may be read by authenticated users. --> 行 24 から 32 は、データベース内のエントリのためのアクセス制御を 指定します。すべてのエントリの {{EX:userPassword}} 属性は、 そのエントリ自身および "admin" エントリから更新可能です。 この属性は認証の目的には使えますが読み取れません。 その他すべての属性は、そのエントリ自身および "admin" エントリから 更新可能で、認証されたユーザから読み取れます。 <p> <!-- [orig] The next section of the example configuration file defines another LDBM database. This one handles queries involving the dc=example,dc=net subtree. Note that without line 38, the read access would be allowed due to the global access rule at line 4. --> 設定ファイルの例の次の部分は、別の LDBM データベースを定義します。 この LDBM データベースは dc=example,dc=net サブツリーに 関する問合せを処理します。行 38 がないと、行 4 のグローバルアクセス 規則により読み取りアクセスが許可されることに注意してください。 <tscreen><verb> 33. # ldbm definition for example.net 34. database ldbm 35. suffix "dc=example, dc=net" 36. directory /usr/local/var/ldbm-example-net 37. rootdn "cn=Manager, dc=example, dc=com" 38. access to * by users read </verb></tscreen> <!-- [orig] <sect>Running the LDAP Server<label id="4"> --> <sect>LDAP サーバの実行<label id="4"> <p> <bf>[訳注]</bf> この章の説明は基本的に OpenLDAP 2.0.x に基づいています。 <p> <!-- [orig] <it/slapd/ is designed to be run as a stand-alone server. This allows the server to take advantage of caching, manage concurrency issues with underlying databases, and conserve system resources. Running from inetd(8) is NOT an option. --> <it/slapd/ はスタンドアローンサーバとして動作するように設計されて います。これによりサーバは、キャッシング、基盤データベース における並行処理問題の管理、システムリソースの維持といった利点が 得られます。inetd(8) から実行するオプションはなくなりました。 <!-- [orig] <sect1>Command Line Options<label id="4.1"> --> <sect1>コマンドラインオプション<label id="4.1"> <p> <!-- [orig] <it/slapd/ supports a number of command-line options as detailed in the manual page. This section details a few commonly used options: --> <it/slapd/ は、マニュアルページに詳説されているように多くの コマンドラインオプションをサポートしています。この節では よく使われる少数のオプションについて詳説します。 <p> <descrip> <tag/ -f <filename> / <!-- [orig] <tscreen><verb> This option specifies an alternate configuration file for slapd. The default is normally /usr/local/etc/openldap/slapd.conf. </verb></tscreen> <p> --> このオプションは、slapd の設定ファイルを明示します。 デフォルトは普通 /usr/local/etc/openldap/slapd.conf です。 <tag/ -h <URLs> / <!-- [orig] <tscreen><verb> This option specifies alternative listener configurations. The default is ldap:/// which implies LDAP over TCP on all interfaces on the default LDAP port 389. You can specify specific host-port pairs or other protocol schemes (such as ldaps:// or ldapi://). For example, -h "ldaps:// ldap://127.0.0.1:667" will create two listeners: one for LDAP over SSL on all interfaces on the default LDAP/SSL port 636, and one for LDAP over TCP on the localhost (loopback) interface on port 667. Hosts may be specified using IPv4 dotted-decimal form or using host names. Port values must be numeric. </verb></tscreen> <p> --> このオプションは代替のリスナ設定を指定します。 デフォルトは ldap:/// です。 これはデフォルトの LDAP ポート 389 ですべてのインタフェースを扱う TCP上の LDAP を意味します。 このオプションには、特定のポスト/ポートのペアもしくは他の プロトコルスキーム(ldaps:// や ldapi:// など)を指定できます。 たとえば -h "ldaps:// ldap://127.0.0.1:667" は、 二つのリスナを作成します。一つはデフォルトの LDAP/SSL ポート 636 ですべてのインタフェースを扱う SSL 上の LDAP です。もう一つは ポート 667 で localhost (loopback)のインタィェース を扱う TCP上の LDAP です。ホストは、IPv4 の数値とドットを使った 形式でもホスト名ででも指定できます。 <tag/ -n <service-name> / <!-- [orig] <tscreen><verb> This option specifies the service name used for logging and other purposes. The default service name is slapd. </verb></tscreen> <p> --> このオプションは、ログ採取などで使われるサービス名を指定します。 デフォルトのサービス名は slapd です。 <tag/ -l <syslog-local-user> / <!-- [orig] <tscreen><verb> This option specifies the local user for the syslog(8) facility. Values can be LOCAL0, LOCAL1, LOCAL2, ..., and LOCAL7. The default is LOCAL4. This option may not be supported on all systems. </verb></tscreen> <p> --> このオプションは syslog(8) 機能のローカルユーザを指定します。 値は LOCAL0, LOCAL1, LOCAL2, から LOCAL7 まで指定できます。デフォルトは LOCAL4 です。 このオプションはシステムによってサポートされていないことがあります。 <tag/ -u user -g group / <!-- [orig] <tscreen><verb> These options specify the user and group, respectively, to run as. user can be either a user name or uid. group can be either a group name or gid. </verb></tscreen> <p> --> これらのオプションは、それぞれ slapd を実行するための ユーザとグループを指定します。user にはユーザ名か uid を指定します。group にはグループ名か gid を指定します。 <tag/ -r directory / <!-- [orig] <tscreen><verb> This option specifies a run-time directory. slapd will chroot(2) to this directory after opening listeners but before reading any configuration files or initializing any backends. </verb></tscreen> <p> --> このオプションは実行時ディレクトリを指定します。 slapd はリスナをオープンした後、設定ファイルの読込みや バックエンドの初期化をする前に、このディレクトリに chroot(2) します。 <tag/ -d <level> | ? / <!-- [orig] <tscreen><verb> This option sets the slapd debug level to <level>. When level is a `?' character, the various debugging levels are printed and slapd exits, regardless of any other options you give it. Current debugging levels are: --> このオプションは slapd のデバッグレベルを <level> に設定します。 レベルが `?' 文字の場合、さまざまなデバッグレベルを表示し、他の オプション指定を無視して slapd は終了します。現在サポートされてい るデバッグレベルには次のものがあります。 <!-- [orig] -1 enable all debugging 0 no debugging 1 trace function calls 2 debug packet handling 4 heavy trace debugging 8 connection management 16 print out packets sent and received 32 search filter processing 64 configuration file processing 128 access control list processing 256 stats log connections/operations/results 512 stats log entries sent 1024 print communication with shell backends 2048 print entry parsing debugging --> <verb> -1 すべてのデバッグレベルを有効にする 0 デバッグしない 1 関数呼出しのトレース 2 パケット処理のデバッグ 4 詳細なデバッグトレース 8 接続管理 16 パケット送受信の印字 32 検索フィルタ処理 64 設定ファイル処理 128 アクセス制御リスト処理 256 接続/操作/結果の統計ログ 512 エントリ送信の統計ログ 1024 shell バックエンドとの通信の印字 2048 エントリ解析のデバッグ印字 </verb> <!-- [orig] You may enable multiple levels by specifying the debug option once for each desired level. Or, since debugging levels are additive, you can do the math yourself. That is, if you want to trace function calls and watch the config file being processed, you could set level to the sum of those two levels (in this case, -d 65). Or, you can let slapd do the math, (e.g. -d 1 -d 64). Consult <ldap.h> for more details. --> <p> 複数のデバッグレベルを有効にすることもできます。要求するレベル それぞれについてデバッグオプションを指定してもよいですし、 デバッグレベルを加算して指定してもかまいません。つまり、関数呼出し のトレースと設定ファイルの処理の観察を行いたければ、レベルをその 二つのレベルの合計に設定すればよいのです(この場合は -d 65)。 また、そのような加算を slapd にさせることもできます(たとえば -d 1 -d 64)。より詳しくは <ldap.h%gt; ファイルを参照してください。 <!-- [orig] Note: slapd must have been compiled with -DLDAP_DEBUG defined for any debugging information beyond the two stats levels to be available. </verb></tscreen> --> <p> 注記:統計ログを出力する二つのレベル以外のデバッグ情報を出力できるように するには、slapd を -DLDAP_DEBUG 付きで slapd をコンパイルしておか なければなりません。 <p> <bf>[訳注]</bf> OpenLDAP 2.0.x では -d ? 指定が無くなりました。 </descrip> <!-- [orig] <sect1>Starting the LDAP server --> <sect1>LDAP サーバの起動 <p> <!-- [orig] In general, slapd is run like this: --> 一般に slapd は次のように実行します。 <!-- [orig] <p> /usr/local/etc/libexec/slapd [<option>]* --> <verb> /usr/local/etc/libexec/slapd [<option>]* </verb> <p> <!-- [orig] where /usr/local/etc/libexec is determined by configure and <option> is one of the options described above (or in slapd(8)). Unless you have specified a debugging level (including level 0), slapd will automatically fork and detach itself from its controlling terminal and run in the background. --> ここで /usr/local/etc/libexec は、configure スクリプトで 決定された場所で、<option> は前述した(あるいは slapd(8) に説明のある)オプションです。デバッグレベルを指定しなければ(レベルに 0 を指定した場合も含めて)、slapd は自動的に fork し、 制御端末から自分を切り離してバックグラウンドで動作します。 <!-- [orig] <sect1>Killing the LDAP server<label id="4.2"> --> <sect1>LDAP サーバの終了<label id="4.2"> <p> <!-- [orig] To kill off slapd safely, you should give a command like this: --> 安全に slapd を終了させるには、次のようにコマンドを与えます。 <p> kill -TERM `cat $(ETCDIR)/slapd.pid` <p> <bf>[訳注]</bf> OpenLDAP 2.0.x では `-TERM' ではなく `-INT' を指定することになっていなす。 <p> <!-- [orig] Killing slapd by a more drastic method may cause its LDBM databases to be corrupted, as it may need to flush various buffers before it exits. Note that slapd writes its pid to a file called slapd.pid in the directory you configured in slapd.conf file, for example: /usr/local/var/slapd.pid --> <!--??? [執筆者に確認] ディレクトリだけでなくファイル名も指定するのだが --> slapd が終了する前にはさまざまなバッファをフラッシュする必要が あるため、より強制的に終了させる手段を使うと LDBM データベースが 不正になる恐れがあります。slapd は、slapd.conf ファイルに設定した ディレクトリの slapd.pid というファイル(たとえば /usr/local/var/slapd.pid) に pid を書き込みます。 <!-- [orig] You can change the location of this pid file by changing the SLAPD_PIDFILE variable in include/ldapconfig.h.edit --> <!--??? [執筆者に確認] slapd.pid ファイルを include/ldapconfig.h.edit を編集して設定するのは ミシガン大のものの仕様である。OpenLDAP では slapd.conf で設定するように変更 されている。 --> <p> include/ldapconfig.h.edit 中の SLAPD_PIDFILE を変更することによって、 この pid ファイルの位置を変更できます。 <p> <bf>[訳注]</bf> 現在の OpenLDAP では slapd.conf のグローバルオプションで pid ファイルの 位置を設定するように変更されています。たとえば `<tt>pidfile /usr/local/var/slapd.pid</tt>' と指定します。 <p> <!-- [orig] Slapd will also write its arguments to a file called slapd.args in the directory you configured in slapd.conf file, for example /usr/local/var/slapd.args --> また、slapd は、slapd.conf ファイルに設定したディレクトリの slapd.args というファイル(たとえば /usr/local/var/slapd.args)に slapd の引数を書き込みます。 <!-- [orig] You can change the location of the args file by changing the SLAPD_ARGSFILE variable in include/ldapconfig.h.edit. --> <!--??? [執筆者に確認] slapd.args ファイルを include/ldapconfig.h.edit を編集して設定するのは ミシガン大のものの仕様である。OpenLDAP では slapd.conf で設定するように変更 されている。 --> include/ldapconfig.h.edit 中の SLAPD_ARGSFILE を変更することによって、 この引数ファイルの位置を変更できます。 <p> <bf>[訳注]</bf> 現在の OpenLDAP では slapd.conf のグローバルオプション で引数ファイルの位置を設定するように変更されています。たとえば `<tt>argsfile /usr/local/var/slapd.args</tt>' と指定します。 <!-- [orig] <sect>Database Creation and Maintenance --> <sect>データベース作成/管理ツール <p> <!-- [orig] This section tells you how to create a slapd database from scratch. There are two ways to create a database. First, you can create the database on-line using LDAP. With this method, you simply start up slapd and add entries using the LDAP client of your choice. This method is fine for relatively small databases (a few hundred or thousand entries, depending on your requirements). --> この節では、slapd データベースを 0 から作成する方法と、 問題が発生したときのトラブルシューティングについて説明します。 データベースを作成するのには二つの方法があります。 その一つは LDAP を用いてオンラインでデータベースを作成する というものです。この方法では、単純に slapd を起動し、 適当な LDAP クライアントを用いてエントリを追加します。 この方法は、比較的小さなデータベース(用件に応じて数百から千程度)の 作成に適しています。 <p> <!-- [orig] The second method of database creation is to do it off-line, using the index generation tools. This method is best if you have many thousands of entries to create, which would take an unacceptably long time using the LDAP method, or if you want to ensure the database is not accessed while it is being created. --> データベースを作成するもう一つの方法は、slapd 用に提供される 特殊なユーティリティを用いてオフラインで行うというものです。 この方法は、LDAP を使っていては耐えられないほどの長い時間が かかってしまうような何千以上ものエントリがある場合、もしくは データベースの作成中にデータベースへのアクセスが無いように することを保証したい場合に最適な方法です。 <!-- [orig] <sect1>Creating a Database online --> <sect1>オンラインでデータベースを作成する方法 <p> <!-- [orig] The OpenLDAP software package comes with an utility called ldapadd, used to add entries while the LDAP server is running. If you choose to create the Database online, you can use the ldapadd tool to add entries. After adding the first entries, you can still use ldapadd to add more entries. You should be sure to set the following configuration options on your sladp.conf file before starting slapd: --> OpenLDAP ソフトウェアパッケージには ldapadd というツールが付属していて、 これは動作している LDAP サーバに対してエントリを追加するために利用します。 オンラインでデータベースを作成するつもりなら、エントリの追加に ldapadd ツールを使えます。最初にエントリを追加した後に、さらにエントリを追加 するのにも ldapadd を使えます。slapd を始動する前に slapd.conf ファイルに ある次の設定オプションを設定しておいてください。 <!-- [orig] <p> suffix <dn> --> <verb> suffix <dn> </verb> <p> <!-- [orig] As described in the <ref id="3" name="section 3">, this option says what entries are to be held by this database. You should set this to the DN of the root of the subtree you are trying to create. For example: --> <ref id="3" name="LDAP サーバの設定">で説明したように、このオプションには、 このデータベースに格納されるエントリ群が何であるかを記述します。 これは作成しようとしているサブツリーのルートの DN に設定します。 たとえば次のように設定します。 <!-- [orig] <p> suffix "o=TUDelft, c=NL" --> <verb> suffix "o=TUDelft, c=NL" </verb> <p> <!-- [orig] You should be sure to specify a directory where the index files should be created: --> 索引ファイルを作成するディレクトリを設定してください。 <!-- [orig] <p> directory <directory> --> <verb> directory <directory> </verb> <p> <!-- [orig] For example: --> たとえば次のように設定します。 <!-- [orig] <p> directory /usr/local/tudelft --> <verb> directory /usr/local/tudelft </verb> <p> <!-- [orig] You need to make it so you can connect to slapd as somebody with permission to add entries. This is done through the following two options in the database definition: --> エントリを追加する権限を持ったユーザで slapd に接続できるように設定 する必要があります。これはデータベース定義中の二つのオプションを 用いて行います。 <!-- [orig] <p> rootdn <dn> <p> rootpw <passwd> /* Remember to use crypto password here !!! */ --> <!--??? /* */ でコメントはいれられない --> <!--??? [誤字] 'crypto' は 'crypt' の誤り --> <verb> rootdn <dn> rootpw <passwd> /* ここのパスワードに crypt を使うのを忘れないで !!! */ </verb> <p> <bf>[訳注]</bf> 実際には /* 〜 */ でコメントを入れることはできません。 <p> <!-- [orig] These options specify a DN and password that can be used to authenticate as the "superuser" entry of the database (i.e., the entry allowed to do anything). The DN and password specified here will always work, regardless of whether the entry named actually exists or has the password given. This solves the chicken-and-egg problem of how to authenticate and add entries before any entries yet exist. --> これらのオプションは、データベースの「スーパユーザ」エントリ(すなわち 何でもできるエントリ)として認証するのに使う DN とパスワードを指定します。 これで指定する DN とパスワードは、実際にこの名前のエントリがあるか、 そして指定のパスワードを持っているかにかかわらず常に有効です。 これは、まだ何もエントリが無い状態での認証とエントリの追加をどうするか という「鶏と卵」問題を解決します。 <p> <!-- [orig] Finally, you should make sure that the database definition contains the index definitions you want: --> 最後に、データベース定義に望む索引定義を含めます。 <!-- [orig] <p> index {<attrlist> | default} [pres,eq,approx,sub,none] --> <verb> index {<attrlist> | default } [pres,eq,approx,sub,none] </verb> <p> <!-- [orig] For example, to index the cn, sn, uid and objectclass attributes the following index configuration lines could be used. --> たとえば、cn, sn, uid, objectclass 属性に索引をつけるには、 次のような index 設定行を使います。 <!-- [orig] <p> index cn,sn,uid <p> index objectclass pres,eq <p> index default none --> <verb> index cn,sn,uid index objectclass pres,eq index default none </verb> <p> <!-- [orig] Once you have configured things to your liking, start up slapd, connect with your LDAP client, and start adding entries. For example, to add a the TUDelft entry followed by a Postmaster entry using the ldapadd tool, you could create a file called /tmp/newentry with the contents: --> ここまで設定したら slapd を起動して、あなたの LDAP クライアントで 接続して、エントリの追加を開始してください。たとえば、TUDelft エントリ とそれに属する Postmaster エントリを ldapadd ツールを用いて追加する には、その内容を記述した /tmp/newentry というファイルを作成します。 <!-- [orig] <tscreen><verb> o=TUDelft, c=NL objectClass=organization description=Technical University of Delft Netherlands cn=Postmaster, o=TUDelft, c=NL objectClass=organizationalRole cn=Postmaster description= TUDelft postmaster - postmaster@tudelft.nl </verb></tscreen> --> <verb> o=TUDelft, c=NL objectClass=organization o=TUDelft description=Technical University of Delft Netherlands cn=Postmaster, o=TUDelft, c=NL objectClass=organizationalRole cn=Postmaster description= TUDelft postmaster - postmaster@tudelft.nl </verb> <p> <!-- [orig] and then use a command like this to actually create the entry: --> 実際にエントリを作成するには次のようなコマンドを使います。 <!-- [orig] <tscreen><verb> ldapadd -f /tmp/newentry -D "cn=Manager, o=TUDelft, c=NL" -w secret </verb></tscreen> --> <verb> ldapadd -f /tmp/newentry -D "cn=Manager, o=TUDelft, c=NL" -w secret </verb> <p> <!-- [orig] The above command assumes that you have set rootdn to "cn=Manager, o=TUDelft, c=NL" and rootpw to "secret". If you don't want to type the password on the command line, use the -W option for the ldapadd command instead of -w "password". You will be prompted to enter the password: --> 上のコマンド利用例では、rootdn が "cn=Manager, o=TUDelft, c=NL"、 rootpw が "secret" に設定されているものとします。コマンドラインに パスワードをタイプしたくなければ、ldapadd コマンドのオプション -w "password" の代わりに -W オプションを使ってください。そうすると、 次のようにパスワードの入力が要求されるようになります。 <!-- [orig] <tscreen><verb> ldapadd -f /tmp/newentry -D "cn=Manager, o=TUDelft, c=NL" -W Enter LDAP Password: </verb></tscreen> --> <verb> ldapadd -f /tmp/newentry -D "cn=Manager, o=TUDelft, c=NL" -W Enter LDAP Password: </verb> <!-- [orig] <sect1>Creating a Database offline --> <sect1>オフラインでデータベースを作成する方法 <p> <bf>[訳注]</bf> この節の説明は基本的に OpenLDAP 2.0.x に基づいています。 <p> <!-- [orig] The second method of database creation is to do it off-line, using the index generation tools described below. This method is best if you have many thousands of entries to create, which would take an unacceptably long time using the LDAP method described above. These tools read the slapd configuration file and an input LDIF file containing a text representation of the entries to add. They produce the LDBM index files directly. There are several important configuration options you will want to be sure and set in the config file database definition first: --> データベースを作成する第2の方法は、後述する索引生成ツールを用いて オフラインで行うことです。何千以上ものエントリを格納する必要があり、 前述の LDAP を利用した方法を使ったのでは時間がかかりすぎるような場合 には、オフラインで生成するのが最適です。このツールは、slapd 用の設定 ファイルと、追加するエントリのテキスト表現が書かれた入力 LDIF ファイル とを読み込み、LDBM 索引ファイルを直接作成します。まずは、設定ファイルの データベース定義に設定しておくべき重要な設定オプションがいくつかあります。 <!-- [orig] <p> suffix <dn> --> <verb> suffix <dn> </verb> <p> <!-- [orig] As described in the preceding section, this option says what entries are to be held by this database. You should set this to the DN of the root of the subtree you are trying to create. For example: --> 前述したように、このオプションは、このデータベースに格納されるエントリ 群が何であるかを示しています。これは作成しようとしているサブツリーの ルートの DN に設定すべきです。たとえば次のように設定します。 <!-- [orig] <p> suffix "o=TUDelft, c=NL" --> <verb> suffix "o=TUDelft, c=NL" </verb> <p> <!-- [orig] You should be sure to specify a directory where the index files should be created: --> 索引ファイルを作成するディレクトリを設定してください。 <!-- [orig] <p> directory <directory> --> <verb> directory <directory> </verb> <p> <!-- [orig] For example: --> たとえば次のように設定します。 <!-- [orig] <p> directory /usr/local/tudelft --> <verb> directory /usr/local/tudelft </verb> <p> <!-- [orig] Next, you probably want to increase the size of the in-core cache used by each open index file. For best performance during index creation, the entire index should fit in memory. If your data is too big for this, or your memory too small, you can still make it pretty big and let the paging system do the work. This size is set with the following option: --> 次に、オープンされている各索引ファイルによって利用されるメモリ内 キャッシュのサイズを増やしておくとよいでしょう。索引の作成時に 最高の性能を出すためには、全体の索引がメモリに納まるようにします。 このようにするにはデータが大きすぎる、あるいはメモリが少なすぎる場合でも、 キャッシュサイズをできるだけ大きくしましょう。後はページングシステムが 作業してくれます。このサイズは次のオプションで設定します。 <!-- [orig] <p> dbcachesize <integer> --> <verb> dbcachesize <integer> </verb> <p> <!-- [orig] For example: --> たとえば次のように設定します。 <!-- [orig] <p> dbcachesize 50000000 --> <verb> dbcachesize 50000000 </verb> <p> <!-- [orig] This would create a cache 50 MB big, which is pretty big (at University of Michigan, the database has about 125K entries, and the biggest index file is about 45 MB). Experiment with this number a bit, and the degree of parallelism (explained below), to see what works best for your system. Remember to turn this number back down once your index files are created and before you run slapd. --> これは 50MB というかなり大きなサイズのキャッシュを作成します(ミシガン 大学では、データベースが約 125K エントリ、最大の索引ファイルが約 45MB です)。 このキャッシュサイズと並行度(後述)を実験してみて、システムが最適に動作 するようにしてください。索引ファイルを作成したら、slapd を実行する前に キャッシュサイズを小さな値に戻しておくのを忘れないでください。 <p> <!-- [orig] Finally, you need to specify which indexes you want to build. This is done by one or more index options. --> 最後に、作成する索引を指定する必要があります。 これは、一つ以上の index オプションによって行われます。 <!-- [orig] <p> index {<attrlist> | default} [pres,eq,approx,sub,none] --> <verb> index {<attrlist> | default} [pres,eq,approx,sub,none] </verb> <p> <!-- [orig] For example: --> たとえば次のように設定します。 <!-- [orig] <p> index cn,sn,uid pres,eq,approx <p> index default none --> <verb> index cn,sn,uid pres,eq,approx <p> index default none </verb> <p> <!-- [orig] This would create presence, equality and approximate indexes for the cn, sn, and uid attributes, and no indexes for any other attributes. See the configuration file on <ref id="3" name="section 3"> for more information on this option. --> これは、属性 cn, sn, and uid について存在、等価性、近似の索引を作成し、 他の属性については索引を作成しません。このオプションについて詳しくは <ref id="3" name="LDAP サーバの設定">の設定ファイルを参照してください。 <p> <!-- [orig] Once you've configured things to your liking, you create the primary database and associated indexes by running the slapadd(8) program: --> ここまで設定したら、slapadd(8) プログラムを実行して主データベースと 関連する索引を作成します。 <!-- [orig] <p> slapadd -l <inputfile> -f <slapdconfigfile> [-d <debuglevel>] [-n <integer>|-b <suffix>] --> <verb> slapadd -l <inputfile> -f <slapdconfigfile> [-d <debuglevel>] [-n <integer>|-b <suffix>] </verb> <p> <!-- [orig] The arguments have the following meanings: --> 引数の意味は次のとおりです。 <!-- [orig] <tscreen><verb> -l <inputfile> </verb></tscreen> <p> --> <descrip> <tag/-l <inputfile>/ <!-- [orig] Specifies the LDIF input file containing the entries to add in text form (Take a look on the next section). --> 追加するエントリをテキスト形式で記述した LDIF 入力ファイルを指定します (LDIF については次節を参照)。 <!-- [orig] <tscreen><verb> -f <slapdconfigfile> </verb></tscreen> <p> --> <tag/-f <slapdconfigfile>/ <!-- [orig] Specifies the slapd configuration file that tells where to create the indexes, what indexes to create, etc. --> 索引を作成する場所、作成する索引などを知らせる slapd 設定ファイルを 指定します。 <!-- [orig] <tscreen><verb> -d <debuglevel> </verb></tscreen> <p> --> <tag/-d <debuglevel>/ <!-- [orig] Turn on debugging, as specified by <debuglevel>. The debug levels are the same as for slapd. See the Command-Line Options section in Running slapd. --> <debuglevel> で指定したデバッグモードにします。 指定するデバッグレベルは slapd と同じです。「LDAP サーバの実行」の章の 「<ref id="4.1" name="コマンドラインオプション">」を参照してください。 <!-- [orig] <tscreen><verb> -n <databasenumber> </verb></tscreen> <p> --> <!-- [orig] An optional argument that specifies which database to modify. The first database listed in the configuration file is 1, the second 2, etc. By default, the first ldbm database in the configuration file is used. Should not be used in conjunction with -b. --> どのデータベースを更新するかを指定するオプション引数。 設定ファイル中に定義されている最初のデータベースは 1、 2番目のデータベースは 2 というように指定します。 デフォルトでは、設定ファイルに定義されている最初の ldbm データベースが使われます。オプション -b と併せて指定しては なりません。 <!-- [orig] <tscreen><verb> -b <suffix> </verb></tscreen> <p> --> <tag/-b <suffix>/ <!-- [orig] An optional argument that specifies which database to modify. The provided suffix is matched against a database suffix directive to determine the database number. Should not be used in conjunction with -n. --> どのデータベースを更新するかを指定するオプション引数。 与えるサフィックスは、データベース番号を決定するために、 データベースの suffix ディレクティブと照合されます。 オプション -n と併せて指定してはなりません。 </descrip> <p> <!-- [orig] Sometimes it may be necessary to regenerate indices (such as after modifying slapd.conf(5)). This is possible using the slapindex(8) program. slapindex is invoked like this: --> 時には索引の再作成が必要になることもあります(slapd.conf(5) を変更した後など)。このようなことは、slapindex(8) プログラム を使ってできます。slapindex は次の書式で起動します。 <!-- [orig] <p> slapindex -f <slapdconfigfile> [-d <debuglevel>] [-n <databasenumber>|-b <suffix>] --> <verb> slapindex -f <slapdconfigfile> [-d <debuglevel>] [-n <databasenumber>|-b <suffix>] </verb> <p> <!-- [orig] Where the -f, -d, -n and -b options are the same as for the slapadd(1) program. slapindex rebuilds all indices based upon the current database contents. --> オプション -f, -d, -n, -b の意味は slapadd(1) プログラムと同じです。 slapindex は、現在のデータベースの内容を基にすべての索引を再作成します。 <p> <!-- [orig] There is another program called slapcat that is used to dump the database to an LDIF file. This can be useful when you want to make a human-readable backup of your database or when you want to edit your database off-line. The program is invoked like this: --> データベースを LDIF ファイルにダンプするのに使う slapcat という プログラムが用意されています。これは、データベースの可読性の あるバックアップをとりたいとき、データベースをオフラインで編集 したいときなどに有用です。このプログラムは次の書式で起動します。 <!-- [orig] <p> slapcat -l <filename> -f <slapdconfigfile> [-d <debuglevel>] [-n <databasenumber>|-b <suffix>] --> <verb> slapcat -l <filename> -f <slapdconfigfile> [-d <debuglevel>] [-n <databasenumber>|-b <suffix>] </verb> <p> <!-- [orig] where -n or -b is used to select the database in the slapd.conf(5) specified using -f. The corresponding LDIF output is written to standard output or to the file specified using the -l option. --> オプション -n または -b は、{{EX:-f}} で指定する slapd.conf(5) に設定されているデータベースを選ぶのに使います。 相当する LDIF 出力は、標準出力か -l オプションで指定する ファイルに書き出されます。 <!-- [orig] <sect1>More on the LDIF format --> <sect1>LDIF フォーマットについてさらに <p> <bf>[訳注]</bf> この節の説明は基本的に OpenLDAP 2.0.x に基づいています。 <p> <!-- [orig] The LDAP Data Interchange Format (LDIF) is used to represent LDAP entries in a simple text format. The basic form of an entry is: --> LDAP データ交換フォーマット(LDIF - LDAP Data Interchange Format)は、 LDAP エントリを簡単なテキストフォーマットで表現するために利用されます。 エントリの基本的な形式は次のようなものです。 <!-- <tscreen><verb> #comment dn: <distinguished name> <attrdesc>: <attrvalue> <attrdesc>: <attrvalue> ... </verb></tscreen> --> <verb> # コメント dn: <識別名> <属性記述子>: <属性値> <属性記述子>: <属性値> ... </verb> <p> <!-- [orig] Lines starting with a '#' character are comments. An attribute description (attrdesc) may be a simple attribute type like cn or objectClass or 1.2.3 (an OID associated with an attribute type) or may include options such as cn;lang_en_US or userCertificate;binary. --> 文字 '#' で始まる行はコメントです。属性記述子は、 cn, objectClass, 1.2.3 (属性型の OID)のような単なる属性型であり、 cn;lang_en_US, userCertificate;binary のようにオプションも付けられます。 <p> <!-- [orig] A line may be continued by starting the next line with a single space or tab character. For example: --> 行を単一のスペースまたはタブ文字で開始すると前の行に継続できます。 たとえば次のようにできます。 <tscreen><verb> dn: cn=Barbara J Jensen, dc=example, dc= com cn: Barbara J Jensen </verb></tscreen> <p> <!-- [orig] is equivalent to: --> これは次のものと同等です。 <tscreen><verb> dn: cn=Barbara J Jensen, dc=example, dc=com cn: Barbara J Jensen </verb></tscreen> <p> <!-- [orig] Multiple attribute values are specified on separate lines. e.g., --> 属性値が複数ある場合は行を分けて指定します。たとえば次のようになります。 <tscreen><verb> cn: Barbara J Jensen cn: Babs Jensen </verb></tscreen> <p> <!-- [orig] If an <attrvalue> contains non-printing characters or begins with a space, a colon (':'), or a less than ('<'), the <attrdesc> is followed by a double colon and the base64 encoding of the value. For example, the value " begins with a space" would be encoded like this: --> <属性値> に印字できない文字が含まれていたり、スペース、コロン(':')、 小なり記号('{{EX:<}}')で始まる場合には、<属性記述子> に続けてコロンを 二つ置き、base64 表記でエンコードした値を書きます。たとえば、 値が " begins with a space" であるときは次のようになります。 <tscreen><verb> cn:: IGJlZ2lucyB3aXRoIGEgc3BhY2U= </verb></tscreen> <p> <!-- [orig] You can also specify a URL containing the attribute value. For example, the following specifies the jpegPhoto value should be obtained from the file /path/to/file.jpeg. --> 属性値を保持した URL を指定することもできます。 次に示す例は、jpegPhoto の値をファイル /path/to/file.jpeg から得ることを指定します。 <!-- [orig] <tscreen><verb> cn:< file://path/to/file.jpeg </verb></tscreen> --> <!--??? OpenLDAP 2.0 Administrator's Guide によれば... --> <tscreen><verb> cn:< file:///path/to/file.jpeg </verb></tscreen> <!-- [orig] Multiple entries within the same LDIF file are separated by blank lines. Here's an example of an LDIF file containing three entries. --> <p> 同じ LDIF 中の複数のエントリは空行で分離します。 次に示すのは、三つのエントリを含んだ LDIF ファイルの例です。 <!-- [orig] <tscreen><verb> # Barbara's Entry dn: cn=Barbara J Jensen, dc=example, dc=com cn: Barbara J Jensen cn: Babs Jensen objectClass: person sn: Jensen # Bjorn's Entry dn: cn=Bjorn J Jensen, dc=example, dc=com cn: Bjorn J Jensen cn: Bjorn Jensen objectClass: person sn: Jensen # Base64 encoded JPEG photo jpegPhoto:: /9j/4AAQSkZJRgABAAAAAQABAAD/2wBDABALD A4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQ ERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVG # Jennifer's Entry dn: cn=Jennifer J Jensen, dc=example, dc=com cn: Jennifer J Jensen cn: Jennifer Jensen objectClass: person sn: Jensen # JPEG photo from file jpegPhoto:< file://path/to/file.jpeg </verb></tscreen> --> <!--??? 複数行にわたるバイナリ値の指定で字下げされていない --> <tscreen><verb> # Barbara's Entry dn: cn=Barbara J Jensen,dc=example,dc=com cn: Barbara J Jensen cn: Babs Jensen objectClass: person sn: Jensen # Bjorn's Entry dn: cn=Bjorn J Jensen,dc=example,dc=com cn: Bjorn J Jensen cn: Bjorn Jensen objectClass: person sn: Jensen # Base64 encoded JPEG photo jpegPhoto:: /9j/4AAQSkZJRgABAAAAAQABAAD/2wBDABALD A4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQ ERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVG # Jennifer's Entry dn: cn=Jennifer J Jensen,dc=example,dc=com cn: Jennifer J Jensen cn: Jennifer Jensen objectClass: person sn: Jensen # JPEG photo from file jpegPhoto:< file:///path/to/file.jpeg </verb></tscreen> <p> <!-- [orig] Notice that the jpegPhoto in Bjorn's entry is base 64 encoded and the jpegPhoto in Jennifer's entry is obtained from the location indicated by the URL. --> ここで、Bjorn のエントリ中の jpegPhoto が base 64 エンコードで、Jennifer のエントリ中の jpegPhoto が URL によって示された場所から取得されることに注目してください。 <p> <!-- [orig] Trailing spaces are not trimmed from values in an LDIF file. Nor are multiple internal spaces compressed. If you don't want them in your data, don't put them there. --> LDIF ファイルにおいて、値の後に続くスペースが切捨てられることは ありません。また、値の中のスペースが縮められることもありません。データ 中にスペースを置きたくない場合は、LDIF にもスペースを置いてはなりません。 <!-- [orig] <sect1>The ldapsearch, ldapdelete and ldapmodify utilities --> <sect1>ldapsearch, ldapdelete, ldapmodify ユーティリティ <p> <bf>[訳注]</bf> この節の説明は基本的に OpenLDAP 1.2.x に基づいています。 OpenLDAP 2.0.x ではオプションがいくつか追加/変更されています。 <p> <!-- [orig] ldapsearch - ldapsearch is a shell accessible interface to the ldap_search(3) library call. Use this utility to search for entries on our LDAP databse backend. --> ldapsearch - ldapsearch は、ldap_search(3) ライブラルコールに対応する コマンドラインインタフェースです。このユーティリティは、LDAP データ ベースバックエンド中のエントリを検索するために使います。 <p> <!-- [orig] The synopsis to call ldapsearch is the following (take a look at the ldapsearch man page to see what each option mean): --> ldapsearch を起動する書式は次のとおりです(各オプションの意味は ldapsearch の man ページを見てください)。 <!-- [orig] <tscreen><verb> ldapsearch [-n] [-u] [-v] [-k] [-K] [-t] [-A] [-B] [-L] [-R] [-d debuglevel] [-F sep] [-f file] [-D binddn] [-W] [-w bindpasswd] [-h ldaphost] [-p ldapport] [-b searchbase] [-s base|one|sub] [-a never|always|search|find] [-l timelimit] [-z sizelimit] filter [attrs...] </verb></tscreen> --> <tscreen><verb> ldapsearch [-n] [-u] [-v] [-k] [-K] [-t] [-A] [-B] [-L] [-R] [-d debuglevel] [-F sep] [-f file] [-D binddn] [-W] [-w bindpasswd] [-h ldaphost] [-p ldapport] [-b searchbase] [-s base|one|sub] [-a never|always|search|find] [-l timelimit] [-z sizelimit] filter [attrs...] </verb></tscreen> <p> <!-- [orig] ldapsearch opens a connection to an LDAP server, binds, and performs a search using the filter filter. The filter should conform to the string representation for LDAP filters as defined in RFC 1558. If ldapsearch finds one or more entries, the attributes specified by attrs are retrieved and the entries and values are printed to standard output. If no attrs are listed, all attributes are returned. --> ldapsearch は LDAP サーバへに対してコネクションを張り、バインドした後、 フィルタ filter を用いて検索します。この filter は、RFC 1558 に定義 されている LDAP フィルタの文字列表現に従わねばなりません。ldapsearch が 1個以上のエントリを見つけると、attrs に指定した属性が取り出され、 そのエントリと値が標準出力に印字されます。attrs の指定がなければ、 全属性が返されます。 <p> <!-- Here are some examples of use of ldapsearch: --> 次に ldapsearch の利用例をいくつか示します。 <tscreen><verb> ldapsearch -b 'o=TUDelft,c=NL' 'objectclass=*' ldapsearch -b 'o=TUDelft,c=NL' 'cn=Rene van Leuken' ldasearch -u -b 'o=TUDelft,c=NL' 'cn=Luiz Malere' sn mail </verb></tscreen> <p> <!-- [orig] The -b option stands for searchbase (initial search point) and the -u option stands for userfriendly output information. --> オプション -b は検索ベース(先頭の検索ポイント)を指定し、-u オプションは ユーザフレンドリ形式を出力に含めることを指定します。 <p> <!-- [orig] ldapdelete - ldapdelete is a shell accessible interface to the ldap_delete(3) library call. Use this utility to delete entries on our LDAP databse backend. --> ldapdelete - ldapdelete は、ldap_delete(3) ライブラルコールに対応する コマンドラインインタフェースです。このユーティリティは、LDAP データ ベースバックエンド中のエントリを削除するために使います。 <p> <!-- [orig] The synopsis to call ldapdelete is the following (take a look at the ldapdelete man page to see what each option mean): --> ldapdelete を起動する書式は次のとおりです(各オプションの意味は ldapdelete の man ページを見てください)。 <!-- [orig] <tscreen><verb> ldapdelete [-n] [-v] [-k] [-K] [-c] [-d debuglevel] [-f file] [-D binddn] [-W] [-w passwd] [-h ldaphost] [-p ldapport] [dn]... </verb></tscreen> --> <tscreen><verb> ldapdelete [-n] [-v] [-k] [-K] [-c] [-d debuglevel] [-f file] [-D binddn] [-W] [-w passwd] [-h ldaphost] [-p ldapport] [dn]... </verb></tscreen> <p> <!-- [orig] ldapdelete opens a connection to an LDAP server, binds, and deletes one or more entries. If one or more dn arguments are provided, entries with those Distinguished Names are deleted. Each dn should be a string-represented DN as defined in RFC 1779. If no dn arguments are provided, a list of DNs is read from standard input (or from file if the -f flag is used). --> ldapdelete は LDAP サーバに対してコネクションを張り、バインドした後、 1個以上のエントリを削除します。1個以上の dn 引数が与えられていれば、 その識別名を持つエントリが削除されます。個々の dn は、RFC 1779 に定義 されている文字列表現の DN でなければなりません。引数 dn が与えられて いなければ、標準入力(あるいは -f フラグで指定したファイル file)から DN のリストを読み込みます。 <p> <!-- [orig] Here are some examples of use of ldapdelete: --> 次に ldapdelete の利用例をいくつか示します。 <tscreen><verb> ldapdelete 'cn=Luiz Malere,o=TUDelft,c=NL' ldapdelete -v 'cn=Rene van Leuken,o=TUDelft,c=NL' -D 'cn=Luiz Malere,o=TUDelft,c=NL' -W </verb></tscreen> <p> <!-- [orig] The -v option stands for verbose mode, the -D option stands for Binddn (the dn to authenticate against) and the -W option stands for password prompt. --> オプション -v は冗長モードにすることを指定し、-D オプションはバインド する dn (認証の対象となる dn)を指定し、-W オプションはパスワードの 入力を要求することを指定します。 <p> <!-- [orig] ldapmodify - ldapmodify is a shell accessible interface to the ldap_modify(3) and ldap_add(3) library calls. Use this utility to modify entries on our LDAP databse backend. --> ldapmodify - ldapmodify は、ldap_modify(3) と ldap_add(3) のライブラリ コールに対応するコマンドラインインタフェースです。このユーティリティは、 LDAP データベースバックエンド中のエントリを更新するために使います。 <p> <!-- [orig] The synopsis to call ldapmodify is the following (take a look at the ldapmodify man page to see what each option mean): --> ldapmodify を起動する書式は次のとおりです(各オプションの意味は ldapmodify の man ページを見てください)。 <!-- [orig] <tscreen><verb> ldapmodify [-a] [-b] [-c] [-r] [-n] [-v] [-k] [-d debuglevel] [-D binddn] [-W] [-w passwd] [-h ldaphost] [-p ldapport] [-f file] ldapadd [-b] [-c] [-r] [-n] [-v] [-k] [-K] [-d debuglevel] [-D binddn] [-w passwd] [-h ldaphost] [-p ldapport] [-f file] </verb></tscreen> --> <tscreen><verb> ldapmodify [-a] [-b] [-c] [-r] [-n] [-v] [-k] [-d debuglevel] [-D binddn] [-W] [-w passwd] [-h ldaphost] [-p ldapport] [-f file] ldapadd [-b] [-c] [-r] [-n] [-v] [-k] [-K] [-d debuglevel] [-D binddn] [-w passwd] [-h ldaphost] [-p ldapport] [-f file] </verb></tscreen> <p> <!-- [orig] ldapadd is implemented as a hard link to the ldapmodify tool. When invoked as ldapadd the -a (add new entry) flag of ldapmodify is turned on automatically. ldapmodify opens a connection to an LDAP server, binds, and modifies or adds entries. The entry information is read from standard input or from file through the use of the -f option. --> ldapadd は、ldapmodify ツールへのハードリンクになっています。ldapadd と して起動されると、フラグ -a (新しいエントリの追加)が暗黙に指定されたもの とみなします。ldapmodify は LDAP サーバへに対してコネクションを張り、 バインドした後、エントリを更新/追加します。エントリ情報は標準入力 あるいは -f オプションで指定したファイル file から読み込まれます。 <p> <!-- [orig] Here are some examples of use of ldapmodify: --> 次に ldapmodify の利用例をいくつか示します。 <p> <!-- [orig] Assuming that the file /tmp/entrymods exists and has the contents: --> ファイル /tmp/entrymods があり、その内容は次のようになっているとします。 <tscreen><verb> dn: cn=Modify Me, o=University of Michigan, c=US changetype: modify replace: mail mail: modme@terminator.rs.itd.umich.edu - add: title title: Grand Poobah - add: jpegPhoto jpegPhoto: /tmp/modme.jpeg - delete: description - </verb></tscreen> <p> <!-- [orig] The command: --> 次のコマンドを実行します。 <tscreen><verb> ldapmodify -b -r -f /tmp/entrymods </verb></tscreen> <p> <!-- [orig] will replace the contents of the "Modify Me" entry's mail attribute with the value "modme@terminator.rs.itd.umich.edu", add a title of "Grand Poobah", and the contents of the file /tmp/modme.jpeg as a jpegPhoto, and completely remove the description attribute. --> これにより、エントリ "Modify Me" の mail 属性の内容を値 "modme@terminator.rs.itd.umich.edu" で置換し、 "Grand Poobah" の title を追加して、ファイル "/tmp/modme.jpeg" の内容を jpegPhoto として追加して、description 属性を完全に除去します。 <p> <!-- [orig] The same modifications as above can be performed using the older ldapmodify input format: --> 次の古い ldapmodify 入力フォーマットを用いても、上と同じ更新が行えます。 <tscreen><verb> cn=Modify Me, o=University of Michigan, c=US mail=modme@terminator.rs.itd.umich.edu +title=Grand Poobah +jpegPhoto=/tmp/modme.jpeg -description </verb></tscreen> <p> <!-- [orig] And plus the command bellow: --> この場合も同様に ldapmodify を起動します。 <tscreen><verb> ldapmodify -b -r -f /tmp/entrymods </verb></tscreen> <p> <!-- [orig] Assuming that the file /tmp/newentry exists and has the contents: --> ファイル /tmp/newentry があり、その内容は次のようになっているとします。 <tscreen><verb> dn: cn=Barbara Jensen, o=University of Michigan, c=US objectClass: person cn: Barbara Jensen cn: Babs Jensen sn: Jensen title: the world's most famous manager mail: bjensen@terminator.rs.itd.umich.edu uid: bjensen </verb></tscreen> <p> <!-- [orig] The command: --> 次のコマンドを実行します。 <tscreen><verb> ldapadd -f /tmp/entrymods </verb></tscreen> <p> <!-- [orig] Assuming that the file /tmp/newentry exists and has the contents: --> ファイル /tmp/newentry があり、その内容は次のようになっているとします。 <tscreen><verb> dn: cn=Barbara Jensen, o=University of Michigan, c=US changetype: delete </verb></tscreen> <p> <!-- [orig] The command: --> 次のコマンドを実行します。 <tscreen><verb> ldapmodify -f /tmp/entrymods </verb></tscreen> <p> <!-- [orig] will remove Babs Jensen's entry. --> これは、Babs Jensen のエントリを除去します。 <p> <!-- [orig] The -f option stands for file (read the modification information from a file instead of standard input), the -b option stands for binary (any values starting with a '/' on the input file are interpreted as binaries), the -r stands for replace (replace existing values by default). --> オプション -f は(標準入力の代わりに更新情報を読み込む) ファイルを指定し、-b オプションはバイナリを指定し (入力ファイル中で '/' で始まる値はバイナリであると 解釈される)、-r は更新(デフォルトで既存の値を更新)を指定します。 <!-- [orig] <sect>Additional Information and Features --> <sect>追加情報と補足 <p> <!-- [orig] In this section you will find information about the Netscape Address Book, a LDAP client that can be used to query your Directory. Also presented are details on how to implement Roaming Access using the Netscape Navigator, version 4.5 or above and your LDAP server. There has been a lot of talk on the OpenLDAP mailing lists about Roaming Access, since this is a feature that is not totally implemented. Most of the people don't like the way Netscape Navigator operates with the LDAP server while making downloads and uploads to it. So, if after reading this you find that the Roaming Access is not working the way you would like, nevermind. A lot of people passed through this situation already. The purpose of introducing this feature here is more for giving people an idea about the capabilities of the LDAP protocol. To finish you will see some information about safely killing the slapd process and about slapd logs. --> この節には、ディレクトリへの問合せに使える Netscape のアドレス帳 (Address Book)についての情報があります。また、バージョン 4.5 以上の Netscape Navigator と LDAP サーバを使ってローミングアクセスを実現する 方法について詳しく説明します。OpenLDAP のメーリングリストでは、 ローミングアクセスについて多くの議論がありました。それはこの機能が うまく実現できないためです。大部分の人々は Netscape Navigator が ダウンロードとアップロードするのに LDAP サーバを使うのを好みません。 したがって、これを読んでローミングアクセスが思うように動作しないという ことがわかっても気にしないでください。多くの人々が既にこの状況を経験 しているのです。ここでこの機能を紹介する目的は、LDAP プロトコルの 可能性についてのアイデアを人々により多く与えるためです。最後には、 slapd プロセスを安全に中断する方法や slapd のログについての情報が あります。 <!-- [orig] <sect1>Roaming Access --> <sect1>ローミングアクセス <p> <bf>[訳注]</bf> この節の説明は基本的に OpenLDAP 1.2.x に基づいています。 OpenLDAP 2.0.x では属性やオブジェクトクラスの拡張方法などが変更になっています。 <p> <!-- [orig] The goal of Roaming Access is that wherever you are on the Net, you can retrieve your bookmarks, preferences, mail filters, etc. using Netscape Navigator and a LDAP server. This is a very nice feature. Imagine that wherever you access the Web, you can have your own settings on the browser. If you will travel and you need to access that currency site that is stored on your local bookmarks, don't worry. Upload the bookmarks and other configuration files to a LDAP server and you can retrieve them all later, independent of the place you will be. --> ローミングアクセスの目的は、ネット上のどこにいても Netscape Navigator と LDAP サーバを用いて、ブックマーク、設定、メールフィルタなどを取り出せる ようにすることです。これは非常に便利な機能です。あなたがどこで Web に アクセスしようとも、そこで使うブラウザにはあなた自身の設定があるのです。 もしあなたが旅行に出た先で、あなたのローカルブックマークに登録してある 相場のサイトにアクセスしたい場合も心配ありません。ブックマークや設定 ファイルは LDAP サーバにアップロードされ、後であなたがどこにいようとも ブックマークや設定ファイルをすべて取り出せます。 <p> <bf>[訳注]</bf> 残念ながら Netscape 6 ではローミングアクセス機能が無くなりました。 <p> <!-- [orig] To implement Roaming Access you have to follow these steps: --> ローミングアクセスを実現するには次のステップに従う必要があります。 <!-- [orig] <itemize> <item>Change your attributes description file <item>Change your objectclass description file <item>Change the LDIF file to include profiles <item>Configure Netscape Navigator to use the LDAP server as a Roaming Access Server <item>Restart the LDAP server with the new settings. </itemize> --> <enum> <item>属性記述ファイルを変更する <item>オブジェクトクラス記述ファイルを変更する <item>プロファイルを格納するための LDIF ファイルを作成する <item>ローミングアクセスサーバとして LDAP サーバを使うように Netscape Navigator を設定する <item>新しい設定で LDAP サーバを再起動する </enum> <!-- [orig] <p> - Changing the attributes file: You need to add new attributes on the attribute list present on the file slapd.at.conf (this is a file you include on your slapd.conf and it's normally located at /usr/local/etc/openldap): --> <sect2>属性ファイルの変更 <p> slapd.at.conf (これは slapd.conf に取り込まれるファイルで、 通常 /usr/local/etc/openldap にあります)に与えられている属性の一覧に 次の新しい属性を追加する必要があります。 <!-- [orig] <tscreen><verb> attribute nsLIPtrURL ces attribute nsLIPrefs ces attribute nsLIProfileName cis attribute nsLIData bin attribute nsLIElementType cis attribute nsLIServerType cis attribute nsLIVersion cis </verb></tscreen> --> <!--??? [執筆者に確認] Netscape の解説によれば attribute nsServerPort cis も必要 --> <tscreen><verb> attribute nsLIPtrURL ces attribute nsLIPrefs ces attribute nsLIProfileName cis attribute nsLIData bin attribute nsLIElementType cis attribute nsLIServerType cis attribute nsLIVersion cis attribute nsServerPort cis </verb></tscreen> <p> <bf>[訳注]</bf> OpenLDAP 2.0.x の場合、/usr/local/etc/openldap/schema/ に適当な ファイルを用意して次の定義を追加し、それを slapd.conf に取り込む ようにします。 <tscreen><verb> attributetype ( 2.16.840.1.113730.3.1.70 NAME 'serverRoot' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) attributetype ( 2.16.840.1.113730.3.1.76 NAME 'serverHostName' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetype ( 2.16.840.1.113730.3.1.280 NAME 'nsServerPort' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetype ( 2.16.840.1.113730.3.1.399 NAME 'nsLIPtrURL' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetype ( 2.16.840.1.113730.3.1.400 NAME 'nsLIPrefs' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetype ( 2.16.840.1.113730.3.1.401 NAME 'nsLIProfileName' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) attributetype ( 2.16.840.1.113730.3.1.402 NAME 'nsLIData' EQUALITY bitStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) attributetype ( 2.16.840.1.113730.3.1.403 NAME 'nsLIElementType' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) attributetype ( 2.16.840.1.113730.3.1.404 NAME 'nsLIServerType' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) attributetype ( 2.16.840.1.113730.3.1.405 NAME 'nsLIVersion' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) </verb></tscreen> <!-- [orig] <p> - Changing the objectclass file: You also have to add some new classes to your slapd.oc.conf (this is another file you include on your slapd.conf and it's normally located at /usr/local/etc/openldap) in order to enable Roaming Access: --> <sect2>オブジェクトクラスファイルの変更 <p> slapd.oc.conf (これは slapd.conf に取り込まれるファイルで、 普通 /usr/local/etc/openldap にあります)に 次の新しいクラスを追加する必要があります。 <!-- [orig] <tscreen><verb> objectclass nsLIPtr requires objectclass allows nsliptrurl, owner objectclass nsLIProfile requires objectclass, nsliprofilename allows nsliprefs, uid, owner objectclass nsLIProfileElement requires objectclass, nslielementtype allows owner, nslidata, nsliversion objectclass nsLIServer requires objectclass, serverhostname allows description, cn, nsserverport, nsliservertype, serverroot </verb></tscreen> --> <!--??? [誤り] require と allow をインデントする必要がある。 --> <tscreen><verb> objectclass nsLIPtr requires objectclass allows nsliptrurl, owner objectclass nsLIProfile requires objectclass, nsliprofilename allows nsliprefs, uid, owner objectclass nsLIProfileElement requires objectclass, nslielementtype allows owner, nslidata, nsliversion objectclass nsLIServer requires objectclass, serverhostname allows description, cn, nsserverport, nsliservertype, serverroot </verb></tscreen> <p> <bf>[訳注]</bf> OpenLDAP 2.0.x の場合、/usr/local/etc/openldap/schema/ に適当な ファイルを用意して次の定義を追加し、それを slapd.conf に取り込む ようにします。 <tscreen><verb> objectclass ( 2.16.840.1.113730.3.2.74 NAME 'nsLIPtr' SUP top MUST objectClass MAY ( nsLIPtrURL $ owner ) ) objectclass ( 2.16.840.1.113730.3.2.75 NAME 'nsLIProfile' SUP top MUST ( objectClass $ nsLIProfileName ) MAY ( nsLIPrefs $ uid $ owner ) ) objectclass ( 2.16.840.1.113730.3.2.76 NAME 'nsLIProfileElement' SUP top MUST ( objectClass $ nsLIElementType ) MAY ( owner $ nsLIData $ nsLIVersion ) ) objectclass ( 2.16.840.1.113730.3.2.77 NAME 'nsLIServer' SUP top MUST ( objectClass $ serverHostName ) MAY ( cn $ description $ nsLIServerType $ nsServerPort $ serverRoot ) ) </verb></tscreen> <!-- [orig] - Changing the LDIF file: Now you have to modify your LDIF file, adding profiles entries to each user that wish to try the Roaming Access feature of Netscape. Look an example of a simple LDIF file with profiles entries: --> <sect2>LDIF ファイルの作成 <!--??? [執筆者に確認] LDIF の作成の前に slapd.conf の設定が必要なはず。 まず、 lastmod on にして運用属性 modifyTimestamp が維持されるようにしなければならない。 さらに、次のアクセス権を設定する必要がある。 access to dn=".*,ou=Roaming,o=myOrg,c=NL" by dnattr=owner write access to attr=userpassword by * none by self write 以上を設定したら、slapd を再起動しておく。 --> <p> <bf>[訳注]</bf> このステップに入る前に slapd.conf の設定をしておきましょう。 まず OpenLDAP 1.2.x の場合 `lastmod on' にして運用属性 modifyTimestamp が自動的に管理されるようにしなければなりません。 さらに、次のアクセス権を設定して slapd を再起動してください。 <verb> OpenLDAP 1.2.x の場合: access to dn=".*,ou=Roaming,o=myOrg,c=NL" by dnattr=owner write access to attr=userpassword by * none by self write OpenLDAP 2.0.x の場合: access to dn=".*,ou=Roaming,o=myOrg,c=NL" by dnattr=owner write access to attr=userpassword by self write by anonymous auth by dn="cn=Manager,o=myOrg,c=NL" write by * none access to * by self write by anonymous auth </verb> <p> 次に LDIF ファイルを作成する必要があります。Netscape のローミンング アクセス機能を使ってみたい各ユーザ用に、プロファイルエントリを追加 します。以下に、プロファイルエントリを持つ LDIF ファイルの簡単な例を 示します。 <!-- [orig] <tscreen><verb> dn: o=myOrg,c=NL o: myOrg objectclass: organization dn: cn=seallers,ou=People,o=myOrg,c=NL cn: seallers userpassword: myPassword objectclass: top objectclass: person dn: nsLIProfileName=seallers,ou=Roaming,o=myOrg,c=NL changetype: add objectclass: top owner: cn=seallers,ou=People,o=myOrg,c=NL objectclass: top objectclass: nsLIProfile </verb></tscreen> --> <!--??? [誤り] ou=People と ou=Roaming のエントリがない person の必要属性 sn がない nsLIProfile の必要属性 nsLIProfileName がない --> <!--??? [執筆者に確認] LDIF ファイルを作成するだけではなくて、これを実際に ldapadd あるいは ldif2ldbm を使ってディレクトリに格納しなければならない --> <tscreen><verb> dn: o=myOrg,c=NL objectClass: top objectClass: organization o: myOrg dn: ou=People,o=myOrg,c=NL objectClass: top objectClass: organizationalUnit ou: People dn: cn=seallers,ou=People,o=myOrg,c=NL userPassword: myPassword objectClass: top objectClass: person cn: seallers sn: seallers dn: ou=Roaming,o=myOrg,c=NL objectClass: top objectClass: organizationalUnit ou: Roaming dn: nsLIProfileName=seallers,ou=Roaming,o=myOrg,c=NL objectClass: top objectClass: nsLIProfile nsLIProfileName: seallers owner: cn=seallers,ou=People,o=myOrg,c=NL </verb></tscreen> <p> <bf>[訳注]</bf> もちろん、LDIF ファイルを作成するだけではなくて、これを実際に ldapadd などを使ってディレクトリに格納してください。 <!-- [orig] The next step is to configure Netscape to enable the Roaming Access against your LDAP server. Just follow the sequence: --> <sect2>Netscape Navigator の設定 <p> 次のステップは、LDAP サーバに対してローミングアクセスが可能となるように Netscape Navigator を設定することです。 <p> <!-- [orig] - Go to Menu Edit -> Preferences -> Roaming User --> <itemize> <item>メニュー「編集」→「設定」→「ローミング ユーザ」を選択します。 </itemize> <p> <!-- [orig] Now you have to first enable Roaming Access for this profile, clicking on the checkbox corresponding to this option. --> まず、このプロファイルでローミングアクセスを可能にしなければなりません。 当該のチェックボックスをクリックします。 <p> <!-- [orig] - Fill the username box with an appropriate value, for instance john --> <!--??? [執筆者に相談] ここまでの過程からすると、入力例は `seallers' のほうがよいだろう --> <itemize> <item>ユーザ名のボックスに適切な値、たとえば seallers を入力します。 </itemize> <p> <!-- [orig] Pull down the arrow of the Roaming User option on the left side of the Preferences Window to see the suboptions of Roaming Access. --> 「設定」ウィンドウの左側にある「ローミング ユーザ」オプションの矢印を プルダウンして、ローミングアクセスのサブオプションを表示します。 <p> <!-- [orig] - Click on Server Information and enable the option LDAP Server and fill the boxes with the following information: --> <itemize> <item>「サーバ情報」をクリックして「LDAP ディレクトリ サーバ」オプションを 有効にし、ボックスに次のような情報を入力します。 <p> <!-- [orig] Address: ldap://myHost/nsLIProfileName=$USERID,ou=Roaming,o=myOrg,c=NL <p> User DN: cn=$USERID,ou=People,o=myOrg,c=NL --> <tscreen><verb> Address: ldap://myHost/nsLIProfileName=$USERID,ou=Roaming,o=myOrg,c=NL User DN: cn=$USERID,ou=People,o=myOrg,c=NL </verb></tscreen> </itemize> <p> <!-- [orig] IMPORTANT: Netscape automatically substitutes the $USERID variable for the name of the profile you selected before running the browser. So if you selected the profile seallers, it will substitute $USERID for seallers, if you selected profile gonzales, it will substitute $USERID for gonzales. If you are not familiar with profiles, run the Profile Manager application that comes on the Netscape Comunicator package. It's an application designed to satisfy the multiple users of a browser on the same machine, so each one can have their own settings on the browser. --> <!--??? [執筆者に確認] $USERID は ローミング ユーザの設定で入力したユーザ名で置き換わるのでは? --> 重要:Netscape は、ブラウザを実行する前に、あなたが選択した プロファイルの名前で $USERID を自動的に置き換えます。したがって、 あなたがプロファイル seallers を選択していれば $USERID は seallers に置き換わり、プロファイル gonzales を選択していれば $USERID は gonzales に置き換わります。プロファイルについてよく知らなければ、 Netscape Comunicator パッケージについてくる Profile Manager アプリケーションを起動してください。これは、同じマシン上で複数 ユーザが安全にブラウザを扱えるよう設計されたアプリケーションであり、 個々のユーザが自分だけのブラウザ設定を保有できます。 <p> <bf>[訳注]</bf> 訳者が確認したところでは、$USERID は ローミング ユーザの設定で入力した ユーザ名で置き換わるようです。 <p> <!-- [orig] The final step is to restart the server. Take a look on the <ref id="4.2" name="section 4.2"> to see how you do that safely and on <ref id="4" name="section 4"> to see how to start it again. --> <!--??? [執筆者に確認] なぜにここで再起動する? --> <sect2>LDAP サーバの再起動 <p> 最終ステップは、サーバの再起動です。LDAP サーバを安全に終了させる 方法については <ref id="4.2" name="LDAP サーバを終了する方法">、 再び起動する方法については<ref id="4" name="LDAP サーバの実行">を 参照してください。 <p> <bf>[訳注]</bf> 訳者が確認したところでは、ここで再起動する必要があるのは LDAP サーバ ではなくて Netscape です。 <!-- [orig] <sect1>Netscape Address Book --> <sect1>Netscape のアドレス帳 <p> <!-- [orig] Once you have your LDAP server up and running, you can access it with many different clients (e.g. ldapsearch command line utility). A very interesting one is the Netscape Address Book. It's available from version 4.x of Netscape but you have to use the 4.5 or above version for a stable interoperation with your LDAP server. --> LDAP サーバが実行していれば、いろいろなクライアント(たとえば ldapsearch コマンドラインユーティリティ)で LDAP サーバにアクセスできます。非常に 興味深いクライアントに Netscape のアドレス帳があります。これは Netscape のバージョン 4.x から利用できるようになっていますが、LDAP サーバと安全に やりとりするためには 4.5 以上のものを使う必要があります。 <p> <bf>[訳注]</bf> 残念ながら Netscape 6 では LDAP サーバへのアクセス機能が無くなりました。 <p> <!-- [orig] Just follow the sequence: --> アドレス帳を使えるようにするには次のようにしてください。 <p> <!-- [orig] Open Netscape Navigator -> Go to Communicator Menu -> Address Book --> Netscape Navigator の起動 -> Communicator メニューの選択 -> アドレス帳(Address Book) <p> <!-- [orig] The Netscape Address Book will be launched with some default LDAP directories. You have to add your own LDAP directory too! --> Netscape のアドレス帳には、デフォルトの LDAP ディレクトリが既にいくつか 登録されています。あなたの LDAP ディレクトリも登録する必要があります! <p> <!-- Go to File Menu -> New Directory --> ファイル(File)メニューの選択 -> 新しいディレクトリ(New Directory) <p> <!-- [orig] Fill the boxes with your server information. For example: --> あなたのサーバの情報を入力します。たとえば次のように設定します。 <p> <!-- [orig] - Description: TUDelft - LDAP Server: dutedin.et.tudelft.nl - Server Root: o=TUDelft, c=NL --> <itemize> <item>Description : TUDelft <item>LDAP Server : dutedin.et.tudelft.nl <item>Server Root : o=TUDelft, c=NL </itemize> <p> <!-- [orig] The default LDAP port is 389. Don't change it, unless you changed this option while building your server. --> デフォルトの LDAP ポートは 389 であり、サーバ側でこのオプションを 変更しているのでない限りポートを変更しないでください。 <p> <!-- [orig] Now, make simple queries to your server, using the box Show Names Containing, or advanced queries, using the Search for button. --> これで、ボックス Show Names Containing を使ってあなたのサーバに簡単な 問合せができますし、Search ボタンで複雑な問合せもできるようになっています。 <sect1>LDAP Migration Tools <p> <!-- [orig] The LDAP Migration Tools are a collection of Perl scripts used to convert configuration files to the LDIF format. The scripts are provided by PADL Software Ltd. I recommend you to take a look at the license terms before using them, even being free. If you plan to use your LDAP server to authenticate users, this tools may be very useful. Use the Migration Tools to convert your NIS or password archives to the LDIF format, making these files compatible with your LDAP Server. Apply also these Perl Scripts to migrate users, groups, aliases, hosts, netgroups, networks, protocols, RPCs and services from existing nameservices (NIS, flat files and NetInfo) to the LDIF format. To download the LDAP Migration Tools and get more information, go to the following address: --> <!--??? [執筆者に相談] `configuration files' じゃあ何のことだかわからない --> LDAP Migration Tools は、設定ファイル(configuration files)を LDIF フォーマットに変換する Perl スクリプト集です。このスクリプト集は PADL Software Ltd によって提供されていて、利用する前にライセンス条項 に目をとおしておくことを勧めますが、とにかくフリーです。ユーザの認証に LDAP サーバを利用しようとしているなら、このツールは非常に有用です。 Migration Tools は、NIS やパスワードのアーカイブを LDIF に変換し、 それらのファイルと互換のある情報を LDAP サーバで使えるようにします。 また、ユーザ、グループ、hosts, aliases, netgroups, networks, protocols, RPC そして既存のネームサービス(NIS、フラットファイル、NetInfo)の サービスを LDIF フォーマットに移行するのにも、この Perl スクリプト集を 適用してください。LDAP Migration Tools のダウンロードとさらなる情報を 入手するには、次のアドレスに行ってください。 <p> <tscreen><htmlurl url="http://www.padl.com/tools.html" name="http://www.padl.com/tools.html"></tscreen> <p> <!-- [orig] The package comes with a README file and the name of the script files are intuitive. Take a first look on the README file and then start applying the scripts. --> このパッケージには README ファイルが付いていて、スクリプトファイルの 名前は機能を表しています。まずは README ファイルに目をとおして、 その後にスクリプトの適用を開始してください。 <!-- [orig] <sect1>Authentication using LDAP --> <sect1>LDAP を用いた認証 <p> <!-- [orig] Your LDAP server can authenticate users using a mechanism called PAM (Pluggable Authentication Modules). Since the beginnings of UNIX, authenticating a user has been accomplished via the user entering a password and the system checking if the entered password corresponds to the encrypted official password that is stored in /etc/passwd. --> PAM (Pluggable Authentication Modules)という機構を用いて、LDAP は ユーザを認証できます。UNIX が登場した当時からユーザの認証は、 ユーザがパスワードを入力し、その入力されたパスワードが /etc/passwd に 格納されている暗号化された正式なパスワードに該当するかをシステムが 検査することにより行われてきました。 <p> <!-- [orig] That was in the beginning. Since then, a number of new ways for authenticating users became popular, including more complicated replacements for the /etc/passwd file and hardware devices called Smart cards. The problem is that each time a new authentication schema is developed, it requires all the necessary programs (login, ftpd etc...) to be rewritten to support it. PAM provides a way to develop programs that are independent of authentication scheme. These programs need "authentication modules" to be attatched to them at run-time in order to work. --> <!--??? [誤字] `attatched' は `attached' の間違いであろう --> これは初期のことであり、その後、多くのユーザの認証が一般的になりました。 その中には /etc/passwd をより複雑にしたものや、スマートカードという ハードウェアデバイスもありました。このような認証の問題は、新しい認証方式 が開発されるたびに、その新しい認証方法をサポートするために認証が必要な プログラム(login, ftpd など)のすべてを書き換えなければならないことです。 PAM は、認証方式から独立してプログラムを開発する手段を提供します。この ようなプログラムは、実行時に認証を行うために接続する「認証モジュール」 を必要とします。 <p> <!-- [orig] The authentication module for LDAP is available as a tar ball on the following address: --> LDAP のための認証モジュールは次のアドレスから tar ball の形式で 入手できます。 <p> <tscreen><htmlurl url="http://www.padl.com/pam_ldap.html" name="http://www.padl.com/pam_ldap.html"></tscreen> <p> <!-- [orig] Here I assume that your Linux distribution is already PAM prepared. If not take a look at this URL: <url url=" http://www.kernel.org/pub/linux/libs/pam" name="http://www.kernel.org/pub/linux/libs/pam">. Various Linux distributions use different standard settings related to PAM. Usually, the PAM configuration files reside on the <tt>/etc/pam.d/</tt> directory. There you can find a file for each service running on your box. As an example, if you want to use the LDAP server for logging users in after your Linux boot up, you should make your Linux PAM compatible (as described in the beginning of this paragraph), install the LDAP PAM module and edit a file called login in the PAM configuration directory (/etc/pam.d/) with the following content: --> ここでは、既に Linux ディストリビューションに PAM が用意されているもの とします。もし PAM が用意されていなければ <htmlurl url="http://www.kernel.org/pub/linux/libs/pam" name="http://www.kernel.org/pub/linux/libs/pam"> を参照してください。 実際のところ、さまざまな Linux ディストリビューションでの PAM の 標準設定はそれぞれ違っています。普通、PAM の設定ファイルは <tt>/etc/pam.d/</tt> ディレクトリに存在します。このディレクトリには、 マシンで実行する各サービスごとに一つのファイルがあります。 たとえば、Linux のブートアップの後でユーザのログイン処理に LDAP サーバを 使いたいなら、(この段落の最初に説明してあるように)あなたの Linux で PAM を使えるようにし、LDAP PAM モジュールをインストールし、/etc/pam.d/ ディレクトリにある login という PAM 設定ファイルを編集して次のような 内容にします。 <tscreen><verb> #%PAM-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pam_nologin.so auth sufficient /lib/security/pam_ldap.so auth required /lib/security/pam_unix_auth.so try_first_pass account sufficient /lib/security/pam_ldap.so account required /lib/security/pam_unix_acct.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_ldap.so password required /lib/security/pam_pwdb.so use_first_pass session required /lib/security/pam_unix_session.so </verb></tscreen> <!--??? [執筆者に相談] LDAP サーバに入れる情報の説明が何もない。 また、pam_ldap は認証を行うだけなので、uid, gid, ホームディレクトリ などの読出しも LDAP からできるように nss_ldap を使うようにする。 --> <p> <bf>[訳注]</bf> pam_ldap は認証を行うだけなので、uid, gid, ホームディレクトリなどの 読出しも LDAP でできるように NSS (Name Service Switch)のモジュール nss_ldap をインストールしておく必要があるでしょう。nss_ldap も PADL Software の Web サイトから入手できます。また、ディレクトリ内のエントリ の作成には、前述の LDAP Migration Tools を使うとよいでしょう。 <!-- [orig] <sect1>Graphical LDAP tools --> <sect1>グラフィカルな LDAP ツール <p> <itemize> <item>Kldap </itemize> <p> <!-- [orig] <tscreen> Kldap is a graphical LDAP client written for KDE. Kldap has a nice interface and is able to show all the information tree stored on your Directory. You can check some screenshots from the application and download it at: </tscreen> --> <tscreen> Kldap は KDE のために書かれたグラフィカルな LDAP クライアントです。Kldap はよいインタフェースを持ち、ディレクトリに 格納された情報ツリーをすべて参照できます。次の Web サイトで、この アプリケーションのスクリーンショットのチェックとダウンロードができます。 </tscreen> <p> <tscreen><htmlurl url="http://www.mountpoint.ch/oliver/kldap/" name="http://www.mountpoint.ch/oliver/kldap "></tscreen> <p> <itemize> <item>GQ </itemize> <p> <!-- [orig] <tscreen> GQ is another graphical LDAP client with a simpler interface. It was written for GNOME. It also runs under KDE, the same way Kldap runs under GNOME. The address for downloading and getting more information is: </tscreen> --> <tscreen> GQ という簡潔なインタフェースを備えたグラフィカル LDAP クライアントもあります。 これは GNOME のために書かれたものです。GQ は KDE でも動作しますし、 Kldap も GNOME で動かせます。次の Web サイトで、ダウンロードやさらなる 情報を取得できます。 </tscreen> <p> <tscreen><htmlurl url="http://biot.com/gq/" name="http://biot.com/gq/"></tscreen> <sect1>Logs <p> <!-- [orig] Slapd uses the syslog(8) facility to generate logs. The default user of the syslog(8) facility is LOCAL4, but values from LOCAL0, LOCAL1, up to LOCAL7 are allowed. --> slapd はログを生成するのに syslog(8) 機能を用います。syslog(8) 機能の デフォルトユーザは LOCAL4 ですが、LOCAL0, LOCAL1 から LOCAL7 までの どれかにすることもできます。 <p> <!-- [orig] In order to enable the generation of logs you have to edit your syslog.conf file, usually located in the /etc directory. --> ログを生成をできるようにするには、たいていは /etc ディレクトリにある syslog.conf ファイルを編集しなければなりません。 <p> <!-- [orig] Create a line like this: --> 次のような行を追加します。 <!-- [orig] <p> local4.*     /usr/adm/ldalog --> <tscreen><verb> local4.* /usr/adm/ldalog </verb></tscreen> <p> <!-- [orig] This will use the default user LOCAL4 for the syslog facility. If you are not familiar with the sintax of this line, take a look at the man pages of syslog, syslog.conf and syslogd. If you want to change the default user or to specify the level of the logs generated, you have the following options while starting slapd: --> <!--??? [誤字] `sintax' は `syntax' の誤りであろう --> この設定では syslog 機能にデフォルトユーザ LOCAL4 を使います。この行の 構文を知らなければ、syslog, syslog.conf, syslogd の man ページを見て ください。デフォルトユーザを変更したり、生成するログのレベルを指定する には、slapd を起動するときに次のオプションを指定します。 <p> -s syslog-level <!-- [orig] This option tells slapd at what level debugging statements should be logged to the syslog(8) facility. The level describes the severity of the message, and is a keyword from the following ordered list (higher to lower): emerg, alert, crit, err, warning, notice, info, and debug. Ex: slapd -f myslapd.conf -s debug --> <!--??? [執筆者に確認] 指定するレベルの値(emerg, alert, crit, err, warning, notice, info, debug)は どこの情報だろう? ミシガン大のものも OpenLDAP も数値で指定するようだが。 --> <tscreen> このオプションは、syslog(8) 機能にどのレベルのデバッグ情報を出力するかを slapd に伝えます。このレベルはメッセージの重大度を述べていて、次に(高い ほうから低いほうに)あげるキーワードのいずれかである:emerg, alert, crit, err, warning, notice, info, debug. たとえば次のように指定します。 <tscreen><verb> slapd -f myslapd.conf -s debug </verb></tscreen> <p> <bf>[訳注]</bf> この説明は何かの勘違いのようです。 実際にはどのデバッグ情報を出力するかを数値で指定します。 指定する数値については slapd.conf の loglevel オプションを 参照してください。 </tscreen> <p> -l syslog-local-user <!-- [orig] Selects the local user of the syslog(8) facility. Values can be LOCAL0, LOCAL1, and so on, up to LOCAL7. The default is LOCAL4. However, this option is only permitted on systems that support local users with the syslog(8) facility. --> <tscreen> syslog(8) 機能のローカルユーザを指定します。値には LOCAL0, LOCAL1 など LOCAL7 まで指定できます。デフォルトは LOCAL4 です。しかし、このオプション は syslog(8) 機能でローカルユーザをサポートするシステムでのみ許されます。 </tscreen> <p> <!-- [orig] Now take a look at the logs generated. They can help you tremendously in solving problems with queries, updates, binding, etc. --> さて、生成されたログを見てみてください。このログは、問合せ、更新、バインドなどで起きる問題を解決するのに 大きな助けとなります。 <!-- [orig] <sect>References --> <sect>情報源 <p> <!-- [orig] On this section you will find additional documentation about LDAP: useful URLs, cool books and definition RFCs. --> この節では、LDAP についてさらに知りたい人のために、有用な URL、クールな書籍、RFC仕様を紹介します。 <sect1>URLs <p> <!-- [orig] Here are the URLs that contain very useful information about LDAP. From these URLs, this HOWTO was made, so if after reading this document you need more specific information, you probably will find here: --> 次に示すのは LDAP について非常に有用な情報を含んだ URL です。 この HOWTO はこれらの URL から作ったので、この文書を読んだ後でより詳細な 情報が必要なら、これらの URL で見つけられるかもしれません。 <itemize> <item> <!-- [orig] University of Michigan LDAP Page: --> ミシガン大学の LDAP ページ: </itemize> <p> <!-- [orig] <url url="http://www.umich.edu/˜dirsvcs/ldap/index.html" name=" http://www.umich.edu/˜dirsvcs/ldap/index.html"> --> <tscreen> <htmlurl url="http://www.umich.edu/˜dirsvcs/ldap/index.html" name=" http://www.umich.edu/˜dirsvcs/ldap/index.html"> </tscreen> <itemize> <item> <!-- [orig] University of Michigan LDAP Documentation Page: --> ミシガン大学の LDAP 文書ページ: </itemize> <p> <!-- [orig] <url url="http://www.umich.edu/˜dirsvcs/ldap/doc/" name="http://www.umich.edu/˜dirsvcs/ldap/doc/"> --> <tscreen> <htmlurl url="http://www.umich.edu/˜dirsvcs/ldap/doc/" name=" http://www.umich.edu/˜dirsvcs/ldap/doc/"> </tscreen> <itemize> <item>OpenLDAP Administrator's Guide: </itemize> <p> <!-- [orig] <url url="http://www.openldap.org/doc/admin" name="http://www.openldap.org/doc/admin"> --> <tscreen> <htmlurl url="http://www.openldap.org/doc/admin" name="http://www.openldap.org/doc/admin"> </tscreen> <itemize> <item> <!-- [orig] Manually Implementing Roaming Access: --> Netscape のローミングアクセスを手作業で実現する方法: </itemize> <p> <!-- [orig] <url url="http://help.netscape.com/products/client/communicator/manual_roaming2.html" name=" http://help.netscape.com/products/client/communicator/manual_roaming2.html"> --> <tscreen> <htmlurl url="http://help.netscape.com/products/client/communicator/manual_roaming2.html" name=" http://help.netscape.com/products/client/communicator/manual_roaming2.html"> </tscreen> <itemize> <item> <!-- [orig] Customizing LDAP Settings for Communicator 4.5: --> Netscape Communicator 4.5 の LDAP 設定のカスタマイズ: </itemize> <p> <!-- [orig] <url url="http://developer.netscape.com/docs/manuals/communicator/ldap45.htm" name=" http://developer.netscape.com/docs/manuals/communicator/ldap45.htm"> --> <tscreen> <htmlurl url="http://developer.netscape.com/docs/manuals/communicator/ldap45.htm" name=" http://developer.netscape.com/docs/manuals/communicator/ldap45.htm"> </tscreen> <itemize> <item> Introducing to Directory Service (X.500): </itemize> <p> <!-- [orig] <url url="http://www.nic.surfnet.nl/surfnet/projects/x500/introducing/" name=" http://www.nic.surfnet.nl/surfnet/projects/x500/introducing/"> --> <tscreen> <htmlurl url="http://www.nic.surfnet.nl/surfnet/projects/x500/introducing/" name=" http://www.nic.surfnet.nl/surfnet/projects/x500/introducing/"> </tscreen> <itemize> <item> Linux Directory Service: </itemize> <p> <!-- [orig] <url url="http://www.rage.net/ldap/" name="http://www.rage.net/ldap/"> --> <tscreen> <htmlurl url="http://www.rage.net/ldap/" name="http://www.rage.net/ldap/"> </tscreen> <!-- [orig] </itemize> --> <!-- [orig] <sect1>Books --> <sect1>書籍 <!-- [orig] <p>These are the most popular and useful books about LDAP: --> <p>これらは LDAP について最もよく知られた有用な書籍です。 <itemize> <item>Implementing LDAP by Mark Wilcox <item>LDAP: Programming Directory-Enabled Applications with Lightweight Directory Access Protocol by Howes and Smith [松島栄樹、岡薫 訳 「LDAP インターネット ディレクトリ アプリケーション プログラミング」、 ピアソン刊] <item>Understanding and Deploying LDAP Directory Servers by Howes, Smith, and Good </itemize> <!-- [orig] <sect1>RFCs --> <sect1>RFC <!-- [orig] <p>The RFCs that support the LDAP development efforts: --> <p>LDAP の開発をサポートする RFC です。 <itemize> <item>RFC 1558: A String Representation of LDAP Search Filters <item>RFC 1777: Lightweight Directory Access Protocol <item>RFC 1778: The String Representation of Standard Attribute Syntaxes <item>RFC 1779: A String Representation of Distinguished Names <item>RFC 1781: Using the OSI Directory to Achieve User Friendly Naming <item>RFC 1798: Connectionless LDAP <item>RFC 1823: The LDAP Application Programming Interface <item>RFC 1959: An LDAP URL Format <item>RFC 1960: A String Representation of LDAP Search Filters <item>RFC 2251: Lightweight Directory Access Protocol (v3) <item>RFC 2307: LDAP as a Network Information Service </itemize> </article>