CR-1868 Fix for OPENDJ-977: Review OpenDJ docs for editorial problems
1 files renamed
23 files modified
| | |
| | | |
| | | <para>Account lockout disables a user account after a specified |
| | | number of successive authentication failures. When you implement account |
| | | lockout, you can opt to have the directory server unlock the account |
| | | lockout, you can opt to have OpenDJ directory server unlock the account |
| | | again after a specified interval, or you can leave the account locked |
| | | until the password is reset.</para> |
| | | |
| | |
| | | failures. Account lockout is not transactional across a replication topology, |
| | | however. Under normal circumstances, replication nevertheless propagates |
| | | lockout quickly. If ever replication is delayed, an attacker with direct |
| | | access to multiple replica could get more than the specified number of tries |
| | | to authenticate before being locked out on all replicas.</para> |
| | | access to multiple replicas could try to authenticate up to the specified |
| | | number of times on each replica before being locked out on all replicas.</para> |
| | | </note> |
| | | |
| | | <para>This chapter shows you how to set up account lockout policies, |
| | |
| | | </itemizedlist> |
| | | |
| | | <para>When you login to OpenDJ Control Panel, you authenticate over LDAP. |
| | | This means that if a user can run the Control Panel, she can use it to manage |
| | | This means that if users can run the Control Panel, they can use it to manage |
| | | a running server. Yet, to start and stop the server process through OpenDJ |
| | | Control Panel, you must start the Control Panel on the system where OpenDJ |
| | | runs, as the user who owns the OpenDJ server files (such as the user who |
| | |
| | | command.</para> |
| | | </listitem> |
| | | </varlistentry> |
| | | <!-- |
| | | <varlistentry> |
| | | <term><link xlink:href="admin-guide#dsframework-1" |
| | | xlink:role="http://docbook.org/xlink/role/olink">dsframework</link></term> |
| | |
| | | users.</para> |
| | | </listitem> |
| | | </varlistentry> |
| | | --> |
| | | <varlistentry> |
| | | <term><link xlink:href="admin-guide#dsjavaproperties-1" |
| | | xlink:role="http://docbook.org/xlink/role/olink">dsjavaproperties</link></term> |
| | | <listitem> |
| | | <para>Apply changes you make to OpenDJ/config/java.properties, which sets |
| | | JVM runtime options.</para> |
| | | <para>Apply changes you make to |
| | | <filename>opendj/config/java.properties</filename>, which sets Java |
| | | runtime options.</para> |
| | | </listitem> |
| | | </varlistentry> |
| | | <varlistentry> |
| | |
| | | <listitem> |
| | | <para>Modify the specified attribute values for the specified |
| | | entries.</para> |
| | | <para>Use the ldapmodify command with the -a option to add new |
| | | entries.</para> |
| | | <para>Use the <command>ldapmodify</command> command with the |
| | | <option>-a</option> option to add new entries.</para> |
| | | </listitem> |
| | | </varlistentry> |
| | | <varlistentry> |
| | |
| | | <term><link xlink:href="admin-guide#ldifmodify-1" |
| | | xlink:role="http://docbook.org/xlink/role/olink">ldifmodify</link></term> |
| | | <listitem> |
| | | <para>Similar to the ldapmodify command, modify specified attribute values |
| | | for specified entries in an LDIF file.</para> |
| | | <para>Similar to the <command>ldapmodify</command> command, modify |
| | | specified attribute values for specified entries in an LDIF file.</para> |
| | | </listitem> |
| | | </varlistentry> |
| | | <varlistentry> |
| | | <term><link xlink:href="admin-guide#ldifsearch-1" |
| | | xlink:role="http://docbook.org/xlink/role/olink">ldifsearch</link></term> |
| | | <listitem> |
| | | <para>Similar to the ldapsearch command, search a branch of data in LDIF |
| | | for entries matching the LDAP filter you specify.</para> |
| | | <para>Similar to the <command>ldapsearch</command> command, search a branch |
| | | of data in LDIF for entries matching the LDAP filter you specify.</para> |
| | | </listitem> |
| | | </varlistentry> |
| | | <varlistentry> |
| | |
| | | <listitem> |
| | | <para>Generate directory data in LDIF, based on templates that define how |
| | | the data should appear.</para> |
| | | <para>The make-ldif command is designed to help you quickly generate test |
| | | data that mimics data you expect to have in production, but without |
| | | compromising private information.</para> |
| | | <para>The <command>make-ldif</command> command is designed to help you |
| | | quickly generate test data that mimics data you expect to have in |
| | | production, but without compromising private information.</para> |
| | | </listitem> |
| | | </varlistentry> |
| | | <varlistentry> |
| | |
| | | happened after the backup was made. Replication uses internal change log |
| | | records to determine what changes to apply.</para> |
| | | |
| | | <para>Internal change log records are no kept forever, though. Replication |
| | | <para>Internal change log records are not kept forever, though. Replication |
| | | is configured to purge the change log of old changes, preventing the log |
| | | from growing indefinitely. Yet, for replication to determine what changes |
| | | to apply to a restored replica, it must find change log records dating back |
| File was renamed from opendj-sdk/opendj3/src/main/docbkx/admin-guide/chap-listeners.xml |
| | |
| | | ! Copyright 2011-2013 ForgeRock AS |
| | | ! |
| | | --> |
| | | <chapter xml:id='chap-listeners' |
| | | <chapter xml:id='chap-connection-handlers' |
| | | xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' |
| | | xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' |
| | | xsi:schemaLocation='http://docbook.org/ns/docbook http://docbook.org/xml/5.0/xsd/docbook.xsd' |
| | | xmlns:xlink='http://www.w3.org/1999/xlink' |
| | | > |
| | | <title>Configuring Servers For Client Application Access</title> |
| | | xmlns:xinclude='http://www.w3.org/2001/XInclude'> |
| | | <title>Configuring Connection Handlers</title> |
| | | <indexterm><primary>Ports</primary><secondary>Configuring</secondary></indexterm> |
| | | <para>This chapter shows you how to configure OpenDJ directory server to |
| | | listen for directory client requests, using connection handlers. You can view |
| | |
| | | a trusted party.</para> |
| | | |
| | | <para>In practice this means that both OpenDJ and client applications must |
| | | have the certificates used to sign each others' certificates in their |
| | | put the certificates that were used to sign each others' certificates in their |
| | | respective trust stores. Conventionally, certificates are therefore signed by |
| | | a Certificate Authority (CA). A CA is trusted to sign other certificates. The |
| | | Java runtime environment for example comes with a trust store holding |
| | |
| | | server certificate without further configuration.</para> |
| | | |
| | | <para>In summary, if you need a certificate to be recognized automatically, |
| | | then use a CA-signed certificate from a well-known CA.</para> |
| | | get the certificate signed by a well-known CA.</para> |
| | | |
| | | <para>You can, however, choose to have your certificates signed some other |
| | | way. You can set up your own CA. You can use a CA whose signing certificate |
| | |
| | | Certificate was added to keystore</screen> |
| | | |
| | | <para>When working with a certificate in printable encoding format (.pem) |
| | | rather than binary format, use the keytool <option>-rfc</option> option, |
| | | too.</para> |
| | | rather than binary format, use the <option>-rfc</option> option, too.</para> |
| | | |
| | | <para>Restart OpenDJ after adding certificates to the trust store to make |
| | | sure that OpenDJ reads the updated trust store file.</para> |
| | |
| | | <title>To Enable StartTLS on the LDAP Port</title> |
| | | |
| | | <step> |
| | | <para>Ensure you have a server certificate installed.</para> |
| | | <para>Make sure you have a server certificate installed.</para> |
| | | |
| | | <screen>$ keytool |
| | | -list |
| | | -alias server-cert |
| | | -keystore /path/to/opendj/config/keystore |
| | | -storepass `cat /path/to/opendj/config/keystore.pin` |
| | | server-cert, Jun 17, 2013, PrivateKeyEntry, |
| | | Certificate fingerprint (SHA1): 92:B7:4C:4F:2E:24:...:EB:7C:22:3F |
| | | </screen> |
| | | </step> |
| | | <step> |
| | | <para>Activate StartTLS on the current LDAP port.</para> |
| | |
| | | <title>To Set Up LDAPS Access</title> |
| | | |
| | | <step> |
| | | <para>Ensure you have a server certificate installed.</para> |
| | | <para>Make sure you have a server certificate installed.</para> |
| | | |
| | | <screen>$ keytool |
| | | -list |
| | | -alias server-cert |
| | | -keystore /path/to/opendj/config/keystore |
| | | -storepass `cat /path/to/opendj/config/keystore.pin` |
| | | server-cert, Jun 17, 2013, PrivateKeyEntry, |
| | | Certificate fingerprint (SHA1): 92:B7:4C:4F:2E:24:...:EB:7C:22:3F |
| | | </screen> |
| | | </step> |
| | | <step> |
| | | <para>Configure the server to activate LDAPS access.</para> |
| | |
| | | <example xml:id="simple-filter-search"> |
| | | <title>Search: Simple Filter</title> |
| | | |
| | | <para>The following example searches for entries with UID containing |
| | | <literal>jensen</literal>, returning only DNs and uid values.</para> |
| | | <para>The following example searches for entries with user IDs |
| | | (<literal>uid</literal>) containing <literal>jensen</literal>, returning |
| | | only DNs and user ID values.</para> |
| | | |
| | | <screen>$ ldapsearch --port 1389 --baseDN dc=example,dc=com "(uid=*jensen*)" uid |
| | | dn: uid=ajensen,ou=People,dc=example,dc=com |
| | |
| | | perform a simple bind.</para> |
| | | |
| | | <para>For example, suppose Babs Jensen enters her email address, |
| | | <literal>bjensen@example.com</literal> and her password for login. The client |
| | | application might search for the entry matching |
| | | <literal>bjensen@example.com</literal>, and her password in order to log in. |
| | | The client application might search for the entry matching |
| | | <literal>(mail=bjensen@example.com)</literal> under base DN |
| | | <literal>dc=example,dc=com</literal>. Alternatively, the client application |
| | | might know to extract the user ID <literal>bjensen</literal> from the address, |
| | |
| | | the identifier string and the entry DN. This translation is the job of a |
| | | component called an identity mapper. Identity mappers are used to perform |
| | | PLAIN SASL authentication (with a user name and password), SASL GSSAPI |
| | | authentication (Kerberos V5), SASL CRAM MD5 and DIGEST MD5 authentication, |
| | | and to handle authorization IDs during password modify extended operations and |
| | | proxied authorization. One use of PLAIN SASL is to translate user names from |
| | | HTTP Basic authentication to LDAP authentication.</para> |
| | | authentication (Kerberos V5), SASL CRAM MD5 and DIGEST MD5 authentication. |
| | | They also handle authorization IDs during password modify extended operations |
| | | and proxied authorization.</para> |
| | | |
| | | <para>The following example shows PLAIN SASL authentication using the default |
| | | Exact Match identity mapper. In this (contrived) example, Babs Jensen reads |
| | | the hashed value of her password. (According to the access controls in the |
| | | example data, she must authenticate to read her password.) Notice the |
| | | authentication ID is her user ID rather than a DN, |
| | | <literal>u:bjensen</literal>.</para> |
| | | <para>One use of PLAIN SASL is to translate user names from HTTP Basic |
| | | authentication to LDAP authentication. The following example shows PLAIN SASL |
| | | authentication using the default Exact Match identity mapper. In this |
| | | (contrived) example, Babs Jensen reads the hashed value of her password. |
| | | (According to the access controls in the example data, Babs must authenticate |
| | | to read her password.) Notice the authentication ID is her user ID, |
| | | <literal>u:bjensen</literal>, rather than the DN of her entry.</para> |
| | | |
| | | <screen>$ ldapsearch |
| | | --port 1389 |
| | |
| | | |
| | | <para>The Exact Match identity mapper searches for a match between the string |
| | | provided (here, <literal>bjensen</literal>) and the value of a specified |
| | | attribute (by default the <literal>uid</literal> user ID attribute). If |
| | | attribute (by default the <literal>uid</literal> attribute). If |
| | | you know users are entering their email addresses, you could create an |
| | | exact match identity mapper for email addresses, and then use that for PLAIN |
| | | SASL authentication as in the following example.</para> |
| | |
| | | <para>The Regular Expression identity mapper uses a regular expression to |
| | | extract a substring from the string provided, and then searches for a match |
| | | between the substring and the value of a specified attribute. In the case |
| | | of example data where an email address is user ID + @ + domain, you can use |
| | | the default Regular Expression identity mapper in the same way as the email |
| | | mapper from the previous example. The default regular expression pattern is |
| | | of example data where an email address is <replaceable>user ID</replaceable> |
| | | + @ + <replaceable>domain</replaceable>, you can use the default Regular |
| | | Expression identity mapper in the same way as the email mapper from the |
| | | previous example. The default regular expression pattern is |
| | | <literal>^([^@]+)@.+$</literal>, and the part of the identity string matching |
| | | <literal>([^@]+)</literal> is used to find the entry by user ID.</para> |
| | | |
| | |
| | | <literal>u:</literal> form rather than using <literal>dn:</literal>, you can |
| | | set the identity mapper with the global configuration setting, |
| | | <literal>proxied-authorization-identity-mapper</literal>. For example, if you |
| | | get UID values from the client, such as <literal>bjensen</literal>, you can |
| | | use the Exact Match Identity Mapper to match those to DNs based on an |
| | | get user ID values from the client, such as <literal>bjensen</literal>, you |
| | | can use the Exact Match Identity Mapper to match those to DNs based on an |
| | | attribute of the entry. Use the <command>dsconfig</command> command |
| | | interactively to investigate the settings you need.</para> |
| | | </section> |
| | |
| | | |
| | | <para>When the client presents its certificate to OpenDJ, by default OpenDJ |
| | | has to be able to trust the client certificate before it can accept the |
| | | connection.</para> |
| | | connection. If OpenDJ cannot trust the client certificate, it cannot |
| | | establish a secure connection.</para> |
| | | |
| | | <screen>$ keytool |
| | | -import |
| | |
| | | ! |
| | | ! CCPL HEADER END |
| | | ! |
| | | ! Copyright 2011-2012 ForgeRock AS |
| | | ! Copyright 2011-2013 ForgeRock AS |
| | | ! |
| | | --> |
| | | <chapter xml:id='chap-mv-servers' |
| | |
| | | You can move OpenDJ data between servers and operating systems. Most of the |
| | | configuration is also portable.</para> |
| | | |
| | | <indexterm><primary>Certificates</primary></indexterm> |
| | | <itemizedlist> |
| | | <para>Two aspects of the configuration are not portable.</para> |
| | | <listitem> |
| | | <indexterm><primary>Certificates</primary></indexterm> |
| | | <para>Server certificates contain the host name of the system. Even if you |
| | | did not set up secure communications when you installed the server, the |
| | | server still has a certificate used for secure communications on the |
| | |
| | | server.</para> |
| | | |
| | | <para>For example, the ACIs on the following entry allow anonymous read |
| | | access to all attributes except passwords, and allow full read-write access |
| | | to directory administrators under <literal>dc=example,dc=com</literal>.</para> |
| | | access to all attributes except passwords, and allow read-write access |
| | | for directory administrators under <literal>dc=example,dc=com</literal>.</para> |
| | | |
| | | <programlisting language="ldif">dn: dc=example,dc=com |
| | | objectClass: domain |
| | |
| | | attribute type <literal>ds-cfg-global-aci</literal>. Modify global ACIs from |
| | | the Access Control Handler menu in <command>dsconfig</command>.</para> |
| | | |
| | | <indexterm> |
| | | <primary>Replication</primary> |
| | | <secondary>Data access</secondary> |
| | | </indexterm> |
| | | |
| | | <itemizedlist> |
| | | <para>Default global ACIs set up the following access rules.</para> |
| | | <listitem> |
| | |
| | | to entry updates and entry identification.</para> |
| | | </listitem> |
| | | <listitem> |
| | | <indexterm> |
| | | <primary>Replication</primary> |
| | | <secondary>Data access</secondary> |
| | | </indexterm> |
| | | <para>Access to replication data is denied.</para> |
| | | </listitem> |
| | | </itemizedlist> |
| | |
| | | userPassword: {PBKDF2}10000:L4dCYqSsNnf47YZ3a6aC8K2E3DChhHHhpcoUzg==</screen> |
| | | |
| | | <para>Notice that with <literal>deprecated-password-storage-scheme</literal> |
| | | set appropriately, Kirsten Vaughan's password was rehashed after she |
| | | set appropriately, Kirsten Vaughan's password was hashed again after she |
| | | authenticated successfully.</para> |
| | | </section> |
| | | |
| | |
| | | <para>As another example, you might exclude a custom attribute called |
| | | <literal>sessionToken</literal> from being replicated.</para> |
| | | |
| | | <screen>dsconfig |
| | | <screen>$ dsconfig |
| | | set-replication-domain-prop |
| | | --port 4444 |
| | | --hostname opendj.example.com |
| | |
| | | |
| | | <variablelist> |
| | | <varlistentry> |
| | | <term>Create</term> |
| | | <term><link linkend="create-rest">Create</link></term> |
| | | <listitem> |
| | | <para>Add a resource that does not yet exist</para> |
| | | </listitem> |
| | | </varlistentry> |
| | | |
| | | <varlistentry> |
| | | <term>Read</term> |
| | | <term><link linkend="read-rest">Read</link></term> |
| | | <listitem> |
| | | <para>Retrieve a single resource</para> |
| | | </listitem> |
| | | </varlistentry> |
| | | |
| | | <varlistentry> |
| | | <term>Update</term> |
| | | <term><link linkend="update-rest">Update</link></term> |
| | | <listitem> |
| | | <para>Replace an existing resource</para> |
| | | </listitem> |
| | | </varlistentry> |
| | | |
| | | <varlistentry> |
| | | <term>Delete</term> |
| | | <term><link linkend="delete-rest">Delete</link></term> |
| | | <listitem> |
| | | <para>Remove an existing resource</para> |
| | | </listitem> |
| | | </varlistentry> |
| | | |
| | | <varlistentry> |
| | | <term>Patch</term> |
| | | <term><link linkend="patch-rest">Patch</link></term> |
| | | <listitem> |
| | | <para>Modify part of an existing resource</para> |
| | | </listitem> |
| | | </varlistentry> |
| | | |
| | | <varlistentry> |
| | | <term>Action</term> |
| | | <term><link linkend="action-rest">Action</link></term> |
| | | <listitem> |
| | | <para>Perform a predefined action</para> |
| | | </listitem> |
| | | </varlistentry> |
| | | |
| | | <varlistentry> |
| | | <term>Query</term> |
| | | <term><link linkend="query-rest">Query</link></term> |
| | | <listitem> |
| | | <para>List a set of resources</para> |
| | | </listitem> |
| | |
| | | ! |
| | | ! CCPL HEADER END |
| | | ! |
| | | ! Copyright 2011-2012 ForgeRock AS |
| | | ! Copyright 2011-2013 ForgeRock AS |
| | | ! |
| | | --> |
| | | <chapter xml:id='chap-samba' |
| | |
| | | <indexterm><primary>Samba</primary></indexterm> |
| | | |
| | | <para><link xlink:href="http://www.samba.org/" xlink:show="new">Samba</link>, |
| | | the Windows interoperability suite for Linux and Unix, stores accounts because |
| | | Unix and Windows password storage management is not interoperable. The default |
| | | the Windows interoperability suite for Linux and UNIX, stores accounts because |
| | | UNIX and Windows password storage management is not interoperable. The default |
| | | account storage mechanism is designed to work well with relatively small |
| | | numbers of accounts and configurations with one domain controller. For larger |
| | | installations, you can configure Samba to use OpenDJ for storing Samba |
| | |
| | | <varlistentry> |
| | | <term><literal>X-PATTERN</literal></term> |
| | | <listitem> |
| | | <para>used to define a syntax based on a regular expression pattern, where |
| | | <para>Used to define a syntax based on a regular expression pattern, where |
| | | valid regular expressions are those defined for <link xlink:show="new" |
| | | xlink:href="http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html" |
| | | ><literal>java.util.regex.Pattern</literal></link>. The following attribute |
| | |
| | | <itemizedlist> |
| | | <para>Use one of the following techniques.</para> |
| | | <listitem> |
| | | <para>Use the start-ds command.</para> |
| | | <screen>$ OpenDJ/bin/start-ds</screen> |
| | | <para>Use the <command>start-ds</command> command.</para> |
| | | <screen>$ opendj/bin/start-ds</screen> |
| | | <para>Alternatively, you can specify the --no-detach option to start |
| | | the server in the foreground.</para> |
| | | </listitem> |
| | |
| | | <para>Unless you run OpenDJ as root, use the --userName |
| | | <replaceable>userName</replaceable> option to specify the user |
| | | who installed OpenDJ.</para> |
| | | <screen>$ sudo OpenDJ/bin/create-rc-script |
| | | <screen>$ sudo opendj/bin/create-rc-script |
| | | --outputFile /etc/init.d/opendj |
| | | --userName mark |
| | | [sudo] password for mark: |
| | |
| | | <listitem> |
| | | <para>(Windows) Register OpenDJ as a Windows Service, and then manage |
| | | the service through Windows administration tools.</para> |
| | | <screen>C:\Users\Mark> OpenDJ\bat\windows-service.bat --enableService</screen> |
| | | <screen>C:\Users\Mark> opendj\bat\windows-service.bat --enableService</screen> |
| | | </listitem> |
| | | </itemizedlist> |
| | | |
| | |
| | | <itemizedlist> |
| | | <para>Use one of the following techniques.</para> |
| | | <listitem> |
| | | <para>Use the stop-ds command.</para> |
| | | <screen>$ OpenDJ/bin/stop-ds</screen> |
| | | <para>Use the <command>stop-ds</command> command.</para> |
| | | <screen>$ opendj/bin/stop-ds</screen> |
| | | </listitem> |
| | | <listitem> |
| | | <para>(UNIX) Create an RC script, and then use the script to stop |
| | | the server.</para> |
| | | <screen>$ sudo OpenDJ/bin/create-rc-script |
| | | <screen>$ sudo opendj/bin/create-rc-script |
| | | --outputFile /etc/init.d/opendj |
| | | --userName mark |
| | | [sudo] password for mark: |
| | |
| | | <listitem> |
| | | <para>(Windows) Register OpenDJ as a Windows Service, and then manage |
| | | the service through Windows administration tools.</para> |
| | | <screen>C:\Users\Mark> OpenDJ\bat\windows-service.bat --enableService</screen> |
| | | <screen>C:\Users\Mark> opendj\bat\windows-service.bat --enableService</screen> |
| | | </listitem> |
| | | </itemizedlist> |
| | | </section> |
| | |
| | | <itemizedlist> |
| | | <para>Use one of the following techniques.</para> |
| | | <listitem> |
| | | <para>Use the stop-ds command.</para> |
| | | <screen>$ OpenDJ/bin/stop-ds --restart</screen> |
| | | <para>Use the <command>stop-ds</command> command.</para> |
| | | <screen>$ opendj/bin/stop-ds --restart</screen> |
| | | </listitem> |
| | | <listitem> |
| | | <para>(UNIX) Create an RC script, and then use the script to stop |
| | | the server.</para> |
| | | <screen>$ sudo OpenDJ/bin/create-rc-script |
| | | <screen>$ sudo opendj/bin/create-rc-script |
| | | --outputFile /etc/init.d/opendj |
| | | --userName mark |
| | | [sudo] password for mark: |
| | |
| | | <listitem> |
| | | <para>(Windows) Register OpenDJ as a Windows Service, and then manage |
| | | the service through Windows administration tools.</para> |
| | | <screen>C:\Users\Mark> OpenDJ\bat\windows-service.bat --enableService</screen> |
| | | <screen>C:\Users\Mark> opendj\bat\windows-service.bat --enableService</screen> |
| | | </listitem> |
| | | </itemizedlist> |
| | | </section> |
| | |
| | | production, and then conduct experiments to determine how best to meet |
| | | the requirements defined in the SLA.</para> |
| | | |
| | | <para>Use <command>make-ldif</command> to generate sample data that match |
| | | what you expect to find in production.</para> |
| | | <para>Use <link xlink:show="new" xlink:href="admin-guide#make-ldif-1" |
| | | xlink:role="http://docbook.org/xlink/role/olink">make-ldif</link> to generate |
| | | sample data that match what you expect to find in production.</para> |
| | | |
| | | <para>The OpenDJ LDAP Toolkit provides three command-line tools to help |
| | | with basic performance testing.</para> |
| | | |
| | | <itemizedlist> |
| | | <listitem> |
| | | <para>The <command>authrate</command> command measures bind throughput and |
| | | response time.</para> |
| | | <para>The <link xlink:show="new" xlink:href="dev-guide#authrate-1" |
| | | xlink:role="http://docbook.org/xlink/role/olink">authrate</link> command |
| | | measures bind throughput and response time.</para> |
| | | </listitem> |
| | | <listitem> |
| | | <para>The <command>modrate</command> command measures modification |
| | | throughput and response time.</para> |
| | | <para>The <link xlink:show="new" xlink:href="dev-guide#modrate-1" |
| | | xlink:role="http://docbook.org/xlink/role/olink">modrate</link> command |
| | | measures modification throughput and response time.</para> |
| | | </listitem> |
| | | <listitem> |
| | | <para>The <command>searchrate</command> command measures search throughput |
| | | and response time.</para> |
| | | <para>The <link xlink:show="new" xlink:href="dev-guide#searchrate-1" |
| | | xlink:role="http://docbook.org/xlink/role/olink">searchrate</link> command |
| | | measures search throughput and response time.</para> |
| | | </listitem> |
| | | </itemizedlist> |
| | | |
| | |
| | | --set etime-resolution:nanoseconds |
| | | --no-prompt</screen> |
| | | |
| | | <para>For more extensive testing, try the <link |
| | | xlink:href="http://slamd.com/">SLAMD Distributed Load Generation |
| | | Engine</link>. SLAMD is built to test more than just directory, but is |
| | | particularly well suited to test directory service performance, is |
| | | <para>For more extensive testing, try the <link xlink:show="new" |
| | | xlink:href="http://dl.thezonemanager.com/slamd/">SLAMD Distributed Load |
| | | Generation Engine</link>. SLAMD is built to test more than just directory, |
| | | but is particularly well suited to test directory service performance, is |
| | | well documented, and is available under the Sun Public License. SLAMD is |
| | | designed both to offer an easy to used web-based interface, and also to |
| | | allow you to customize jobs to match the access patterns you expect from |
| | |
| | | <xinclude:include href='chap-admin-tools.xml' /> |
| | | <xinclude:include href='chap-server-process.xml' /> |
| | | <xinclude:include href='chap-import-export.xml' /> |
| | | <xinclude:include href='chap-listeners.xml' /> |
| | | <xinclude:include href='chap-connection-handlers.xml' /> |
| | | <xinclude:include href='chap-privileges-acis.xml' /> |
| | | <xinclude:include href='chap-ldap-operations.xml' /> |
| | | <xinclude:include href='chap-rest-operations.xml' /> |
| | |
| | | ! |
| | | ! CCPL HEADER END |
| | | ! |
| | | ! Copyright 2011 ForgeRock AS |
| | | ! Copyright 2011-2013 ForgeRock AS |
| | | ! |
| | | --> |
| | | <chapter xml:id='chap-understanding-ldap' |
| | |
| | | <para>Lightweight Directory Access Protocol has been around since the early |
| | | 1990s. LDAP was originally developed as an alternative protocol that would |
| | | allow directory access over Internet protocols rather than OSI protocols, |
| | | and be lightweight enough for desktop implementations. By the mid 1990, LDAP |
| | | and be lightweight enough for desktop implementations. By the mid 1990s, LDAP |
| | | directory servers became generally available and widely used.</para> |
| | | |
| | | <para>Until the late 1990s, LDAP directory servers were designed primarily |
| | |
| | | <literal>dc=mycompany,dc=com</literal> or <literal>o=myOrganization</literal>. |
| | | Thus when you lookup entries, you specify the parent entry to look under |
| | | in the same way you need to know whether to look in the New York, Paris, |
| | | or Tokyo phone book to find someone's telephone number.<footnote> |
| | | or Tokyo phone book to find a telephone number.<footnote> |
| | | <para>The root entry for the directory, technically the entry with DN |
| | | <literal>""</literal> (the empty string), is called the root DSE, and |
| | | contains information about what the server supports, including the other |
| | |
| | | </textobject> |
| | | </mediaobject> |
| | | |
| | | <itemizedlist xml:id="standard-ldap-operations"> |
| | | <para>The standard operations are as follows.</para> |
| | | <listitem> |
| | | <indexterm> |
| | | <primary>Authentications</primary> |
| | | </indexterm> |
| | | <indexterm> |
| | | <primary>Searches</primary> |
| | | </indexterm> |
| | | <indexterm> |
| | | <primary>Comparisons</primary> |
| | | </indexterm> |
| | | <indexterm> |
| | | <primary>Modifications</primary> |
| | | </indexterm> |
| | | <indexterm> |
| | | <primary>Adds</primary> |
| | | </indexterm> |
| | | <indexterm> |
| | | <primary>Deletes</primary> |
| | | </indexterm> |
| | | <indexterm> |
| | | <primary>Renames</primary> |
| | | </indexterm> |
| | | <itemizedlist xml:id="standard-ldap-operations"> |
| | | <para>The standard operations are as follows.</para> |
| | | <listitem> |
| | | <para>Bind (authenticate). The first operation in an LDAP session involves |
| | | the client binding to the LDAP server, with the server authenticating the |
| | | client. Authentication identifies the client's identity in LDAP terms, the |
| | |
| | | to directory data that the client wants to lookup or change.</para> |
| | | </listitem> |
| | | <listitem> |
| | | <indexterm> |
| | | <primary>Searches</primary> |
| | | </indexterm> |
| | | <para>Search (lookup). After binding, the client can request that the server |
| | | return entries based on an LDAP filter, which is an expression that the |
| | | server uses to find entries that match the request, and a base DN under |
| | |
| | | <literal>(mail=bjensen@example.com)</literal>.</para> |
| | | </listitem> |
| | | <listitem> |
| | | <indexterm> |
| | | <primary>Comparisons</primary> |
| | | </indexterm> |
| | | <para>Compare. After binding, the client can request that the server |
| | | compare an attribute value the client specifies with the value stored |
| | | on an entry in the directory.</para> |
| | | </listitem> |
| | | <listitem> |
| | | <indexterm> |
| | | <primary>Modifications</primary> |
| | | </indexterm> |
| | | <para>Modify. After binding, the client can request that the server |
| | | change one or more attribute values stored on one or more entries. Often |
| | | administrators do not allow clients to change directory data, so request |
| | |
| | | application if you want to update data.</para> |
| | | </listitem> |
| | | <listitem> |
| | | <indexterm> |
| | | <primary>Adds</primary> |
| | | </indexterm> |
| | | <para>Add. After binding, the client can request to add one or more |
| | | new LDAP entries to the server. </para> |
| | | </listitem> |
| | | <listitem> |
| | | <indexterm> |
| | | <primary>Deletes</primary> |
| | | </indexterm> |
| | | <para>Delete. After binding, the client can request that the server |
| | | delete one or more entries. To delete and entry with other entries |
| | | underneath, first delete the children, then the parent.</para> |
| | | </listitem> |
| | | <listitem> |
| | | <indexterm> |
| | | <primary>Renames</primary> |
| | | </indexterm> |
| | | <para>Modify DN. After binding, the client can request that the server |
| | | change the distinguished name of the entry. For example, if Barbara |
| | | changes her unique identifier from <literal>bjensen</literal> to something |
| | |
| | | ! |
| | | ! CCPL HEADER END |
| | | ! |
| | | ! Copyright 2011-2012 ForgeRock AS |
| | | ! Copyright 2011-2013 ForgeRock AS |
| | | ! |
| | | --> |
| | | <chapter xml:id='chap-writing' |
| | |
| | | order to track successful or failed binds for password policy reasons.</para> |
| | | </footnote></para> |
| | | |
| | | <itemizedlist> |
| | | <listitem> |
| | | <indexterm> |
| | | <primary>Adds</primary> |
| | | </indexterm> |
| | | <indexterm> |
| | | <primary>Modifications</primary> |
| | | </indexterm> |
| | | <indexterm> |
| | | <primary>Renames</primary> |
| | | </indexterm> |
| | | <indexterm> |
| | | <primary>Deletes</primary> |
| | | </indexterm> |
| | | <indexterm> |
| | | <primary>Authorizations</primary> |
| | | </indexterm> |
| | | |
| | | <itemizedlist> |
| | | <listitem> |
| | | <para>An add request is used to create a new entry in an LDAP directory. |
| | | The entry must have a unique distinguished name that belongs under a base |
| | | DN served by the directory. The entry must have a list of attributes that |
| | |
| | | </listitem> |
| | | |
| | | <listitem> |
| | | <indexterm> |
| | | <primary>Modifications</primary> |
| | | </indexterm> |
| | | <para>A modify request is used to add, delete, or replace attribute values |
| | | on an entry in an LDAP directory. The resulting entry must be valid |
| | | according to the directory schema.</para> |
| | | |
| | | <indexterm> |
| | | <primary>Renames</primary> |
| | | </indexterm> |
| | | <para>A modify DN request is used to rename or move a directory entry. |
| | | In both cases the distinguished name changes. Renaming involves changing |
| | | the relative distinguished name, for example from |
| | |
| | | </listitem> |
| | | |
| | | <listitem> |
| | | <indexterm> |
| | | <primary>Deletes</primary> |
| | | </indexterm> |
| | | |
| | | <para>A delete request is used to remove an entry from an LDAP |
| | | directory.</para> |
| | | |
| | |
| | | </listitem> |
| | | </itemizedlist> |
| | | |
| | | <indexterm> |
| | | <primary>Authorizations</primary> |
| | | </indexterm> |
| | | <para>As a rule, your client application must be authorized to create, |
| | | update, and delete directory data. Therefore to prepare to change directory |
| | | data, you first get a connection, and then bind on that connection as a |
| | |
| | | ! |
| | | ! CCPL HEADER END |
| | | ! |
| | | ! Copyright 2011-2012 ForgeRock AS |
| | | ! Copyright 2011-2013 ForgeRock AS |
| | | ! |
| | | --> |
| | | <preface xml:id='preface' |
| | |
| | | <title>Who Should Read this Guide</title> |
| | | |
| | | <para>This guide is written for Java developers who want to build directory |
| | | client applications with OpenDJ SDK.</para> |
| | | client applications with OpenDJ LDAP SDK.</para> |
| | | |
| | | <para>This guide starts by explaining LDAP directories briefly, and |
| | | describing best practices for LDAP client applications. Then it demonstrates |
| | | how to install and use OpenDJ SDK to build LDAP clients.</para> |
| | | how to install and use OpenDJ LDAP SDK to build LDAP clients.</para> |
| | | |
| | | <para>You do not need to be an LDAP wizard to learn something from this |
| | | guide. You do need some background in writing Java 6 and client-server |
| | |
| | | <para>This chapter covers command-line installation with additional |
| | | information on setup options.</para> |
| | | |
| | | <itemizedlist> |
| | | <listitem><para><xref linkend="before-you-install" /></para></listitem> |
| | | <listitem><para><xref linkend="command-line-install" /></para></listitem> |
| | | <listitem><para><xref linkend="install-deb" /></para></listitem> |
| | | <listitem><para><xref linkend="install-rpm" /></para></listitem> |
| | | <listitem><para><xref linkend="install-properties-file" /></para></listitem> |
| | | <listitem><para><xref linkend="install-rest2ldap-servlet" /></para></listitem> |
| | | <listitem><para><xref linkend="install-dsml-gateway" /></para></listitem> |
| | | </itemizedlist> |
| | | |
| | | <procedure xml:id="before-you-install"> |
| | | <title>To Prepare For Installation</title> |
| | | |
| | |
| | | <step xml:id="app-server-needed-for-dsml"> |
| | | <indexterm><primary>DSML gateway</primary></indexterm> |
| | | |
| | | <para>If you plan to install OpenDJ DSML gateway, make sure you have an |
| | | appropriate application server installed.</para> |
| | | <para>If you plan to install OpenDJ DSML gateway or OpenDJ REST LDAP gateway, |
| | | make sure you have an appropriate application server installed.</para> |
| | | </step> |
| | | |
| | | <step> |
| | |
| | | <term>LDAP port</term> |
| | | <listitem> |
| | | <para>The default for LDAP is 389. If you are working as a user |
| | | who cannot open port 389, setup suggests 1389 as a default.</para> |
| | | who cannot open port 389, setup suggests 1389 by default.</para> |
| | | </listitem> |
| | | </varlistentry> |
| | | <varlistentry> |
| | |
| | | </procedure> |
| | | |
| | | <note> |
| | | <para>You can install OpenDJ in unattended and silent fashion by using the |
| | | <command>setup</command> command with the <option>--no-prompt</option> |
| | | option, specifying values for all the other options you require.</para> |
| | | <para>You can install OpenDJ in unattended and silent fashion, too. See |
| | | the procedure, <xref linkend="install-properties-file" />.</para> |
| | | </note> |
| | | |
| | | <procedure xml:id="install-deb"> |
| | |
| | | to the backend holding data from <filename>Example.ldif</filename>.</para> |
| | | |
| | | <screen |
| | | >$ curl http://opendj.example.com:8080/rest2ldap/users/bjensen?_prettyPrint=true |
| | | >$ curl http://bjensen:hifalutin@opendj.example.com:8080/rest2ldap/users/bjensen |
| | | ?_prettyPrint=true |
| | | { |
| | | "_rev" : "000000002ee3b764", |
| | | "schemas" : [ "urn:scim:schemas:core:1.0" ], |
| | |
| | | |
| | | <para>If you generated example data, Babs Jensen's entry is not included. |
| | | Try a URL such as |
| | | <literal>http://opendj.example.com:8080/rest2ldap/users/user.0</literal> |
| | | <literal>http://user.0:password@opendj.example.com:8080/rest2ldap/users/user.0</literal> |
| | | instead.</para> |
| | | </step> |
| | | </procedure> |
| | |
| | | |
| | | <para>If you want only to try OpenDJ server software, and you do not plan to |
| | | store any real or important data that you want to keep, then read only this |
| | | section, or just try out installation without reading any further.</para> |
| | | chapter, or just try out installation without reading any further.</para> |
| | | |
| | | <xinclude:include href="../shared/itemizedlist-download.xml" /> |
| | | |
| | |
| | | ! |
| | | ! CCPL HEADER END |
| | | ! |
| | | ! Copyright 2011-2012 ForgeRock AS |
| | | ! Copyright 2011-2013 ForgeRock AS |
| | | ! |
| | | --> |
| | | <preface xml:id='preface' |
| | |
| | | |
| | | <para>If you want only to try OpenDJ server software, and you |
| | | do not plan to store any real or important data that you want to keep, |
| | | then you need not read this guide right now. Instead, visit the <link |
| | | xlink:href='http://www.forgerock.org/opendj.html' |
| | | >download page</link>, and click the link for the latest release to |
| | | start the Java WebStart installer wizard directly from your browser.</para> |
| | | then you need not read this entire guide. Instead, try <link |
| | | xlink:href="install-guide#chap-install-gui" |
| | | xlink:role="http://docbook.org/xlink/role/olink"><citetitle>Installing OpenDJ |
| | | With the QuickSetup Wizard</citetitle></link>.</para> |
| | | |
| | | <section> |
| | | <title>Who Should Read this Guide</title> |
| | |
| | | SPARC and x86, various Linux distributions, Microsoft Windows, |
| | | and Apple Mac OS X.</para> |
| | | |
| | | <para>OpenDJ software requires Java 6, specifically at least the Java |
| | | Standard Edition 6.0 (Sun version 1.6.0_10) runtime environment. ForgeRock |
| | | recommends that you use at least version 1.6.0_27 due to security |
| | | fixes.</para> |
| | | <para>OpenDJ software requires Java 6 or later, specifically at least the |
| | | Java Standard Edition 6.0 (Sun version 1.6.0_10) runtime environment. |
| | | ForgeRock recommends that you keep your Java installation up to date with |
| | | the latest security fixes.</para> |
| | | |
| | | <para>To build applications with the OpenDJ LDAP SDK, you need the |
| | | corresponding Java SDK.</para> |
| | |
| | | <title>OpenDJ Fixes, Limitations, & Known Issues</title> |
| | | |
| | | <para>This chapter covers the status of key issues and limitations for OpenDJ |
| | | <?eval ${docTargetVersion}?> and OpenDJ SDK <?eval ${currentSDKversion}?>. |
| | | <?eval ${docTargetVersion}?> and OpenDJ SDK <?eval ${docTargetVersion}?>. |
| | | For details and information on other issues, see the <link xlink:show="new" |
| | | xlink:href="https://bugster.forgerock.org/jira/browse/OPENDJ" >OpenDJ issue |
| | | tracker</link>.</para> |
| | |
| | | and secure store for the identities managed by your organization. Its |
| | | easy installation process, combined with the power of the Java |
| | | platform makes OpenDJ the simplest, fastest directory to deploy and |
| | | manage.</para> |
| | | manage. OpenDJ directory server comes with plenty of tools and a |
| | | full-featured LDAP SDK for Java. OpenDJ directory server also offers |
| | | REST access to directory data over HTTP.</para> |
| | | |
| | | <para>You can download OpenDJ software from the OpenDJ download page. |
| | | OpenDJ is free to download, evaluate, and use. You can even check out |
| | | and modify the source code to build your own version if you prefer.</para> |
| | | <para>OpenDJ is free to download, evaluate, and use in developing your |
| | | applications and solutions. You can also check out and modify the source |
| | | code to build your own version if you prefer. ForgeRock offers training |
| | | and support subscriptions to help you get the most out of your |
| | | deployment.</para> |
| | | |
| | | <para>These release notes are written for everyone working with the |
| | | OpenDJ <?eval ${docTargetVersion}?> release. Read these notes before you |
| | |
| | | xlink:href="install-guide#install-guide"><citetitle>Installation |
| | | Guide</citetitle></link> for more after you read these release notes. The |
| | | installation guide covers installation and upgrade for OpenDJ directory |
| | | server and OpenDJ DSML gateway.</para> |
| | | server, OpenDJ REST LDAP gateway, and OpenDJ DSML gateway.</para> |
| | | </preface> |
| | | |
| | | <xinclude:include href='chap-whats-new.xml' /> |