PingDirectory

Installing the PingDirectoryProxy server

After you install the PingDirectory server, you can install and set up the PingDirectoryProxy server.

You can install using interactive mode, which guides you through the setup, or non-interactive mode, which requires that you enter the appropriate CLI commands for server setup.

Installing the server in interactive mode

The setup command provides an interactive text-based interface to install a PingDirectoryProxy server instance.

Installing the first server

Steps

  1. Change to the server root directory.

    Example:
    cd PingDirectoryProxy
  2. Run the setup command.

    $ ./setup
    shell
  3. Read the Ping Identity End-User License Agreement, and type yes to continue.

  4. Press Enter to accept the default of no in response to adding this new server to an existing topology.

    Would you like to add this server to an existing Directory Proxy Server topology? (yes / no) [no]:
  5. Enter the fully qualified host name for this server, or press Enter to accept the default.

  6. Create the initial root user DN for this server, or press Enter to accept the default.

  7. Enter and confirm a password for this account.

  8. To enable the PingDirectoryProxy server services (Configuration, Documentation, and Directory REST API) and admin console over HTTPS, press Enter to accept the default. After setup, individual services can be enabled or disabled by configuring the HTTPS Connection Handler.

  9. Enter the port where the PingDirectoryProxy server should accept connections from HTTPS clients, or press Enter to accept the default.

  10. Enter the port where the PingDirectoryProxy server should accept connections from LDAP clients, or press Enter to accept the default.

  11. The next two options enable LDAPS and StartTLS. Press Enter to accept the default (yes), or type no. If either are enabled, certificate options are required. To use the Java KeyStore (JKS) or the PKCS#12 key store, the key store path and the key PIN are required. To use the PKCS#11 token, only the key PIN is required.

  12. Choose a certificate server option:

    Choose from:
    • 1) Generate self-signed certificate (recommended for testing purposes only)

    • 2) Use an existing certificate located on a Java Keystore (JKS)

    • 3) Use an existing certificate located on a PKCS#12 keystore

    • 4) Use an existing certificate on a PKCS#11 token

  13. Choose the desired encryption for backups and log files from the choices provided:

    Choose from:
    • Encrypt data with a key generated from an interactively provided passphrase. Using a passphrase (obtained interactively or read from a file) is the recommended approach for new deployments, and you should use the same encryption passphrase when setting up each server in the topology

    • Encrypt data with a key generated from a passphrase read from a file

    • Encrypt data with a randomly generated key. This option is primarily intended for testing purposes, especially when only testing with a single instance, or if you intend to import the resulting encryption settings definition into other instances in the topology

    • Encrypt data with an imported encryption settings definition. This option is recommended if you are adding a new instance to an existing topology that has older server instances with data encryption enabled

    • Do not encrypt server data

  14. To configure your PingDirectoryProxy server to use entry balancing, type yes, or accept the default no. In an entry balancing environment, entries immediately beneath the balancing base DN are divided into disjoint subsets. Each subset of data is handled by a separate set of one or more directory server instances, which replicate this subset of data between themselves. Choosing yes will enable more memory be allocated to the server and tools.

  15. Choose the option for the amount of memory to assign to this server.

  16. Enter an option to set up the server with the current configuration, provide new parameters, or cancel.

  17. After setup is complete, choose the next configuration option.

    This server is now ready for configuration What would you like to do?
    
       1) Start 'create-initial-proxy-config' to create a basic
          initial configuration (recommended for new users)
       2) Start 'dsconfig' to create a configuration from scratch
       3) Quit
    
    Enter choice [1]:

Installing additional servers

About this task

The setup command provides an interactive text-based interface to install a PingDirectoryProxy server instance that clones a previously installed PingDirectoryProxy server instance.

Steps

  1. Change to the server root directory.

    Example:
    cd PingDirectoryProxy
  2. Use the setup command.

    $ ./setup
    shell
  3. Read the Ping Identity End-User License Agreement, and type yes to continue.

  4. Enter yes in response to add this new server to an existing topology.

    Would you like to add this server to an existing Directory Proxy Server topology? (yes / no) [no]: yes
  5. Enter the host name of the PingDirectoryProxy server from which configuration settings are copied during setup.

    Enter the host name of the peer Directory Proxy Server from which you would like
    to copy configuration settings. [proxy.example.com]:
  6. Type the port number of the peer PingDirectoryProxy server from which configuration settings are copied during setup. You can press Enter to accept the default port, which is 389.

    Enter the port of the peer Directory Proxy Server [389]:
  7. Enter the option corresponding to the type of connection you want to use to connect to the peer PingDirectoryProxy server.

    How would you like to connect to the peer Directory Proxy Server?
      1) None
      2) SSL
      3) StartTLS
    
    Enter choice [1]:
  8. Type the root user DN of the peer PingDirectoryProxy server, or press Enter to accept the default (cn=Directory Manager), and then type and confirm the root user password.

    Enter the manager account DN for the peer Directory Proxy Server [cn=Directory Manager]:
    Enter the password for cn=Directory Manager:
  9. Enter the host name of the new local PingDirectoryProxy server.

    Enter the fully qualified host name or IP address of the local host [proxy.example.com]:
  10. Choose the location of your new PingDirectoryProxy server instance or enter a new one.

  11. Enter an option to set up the server with the current configuration, provide new parameters, or cancel.

  12. After setup is complete, choose the next configuration option.

Installing the server in non-interactive mode

You can run the setup command in non-interactive mode to automate the installation process using a script or to run the command directly from the command line.

The following sections describe how to install the first PingDirectoryProxy server, how to install additional servers, and how to install the server with a trust store.

Installing the first server

About this task

The setup command automatically chooses the maximum heap size. You can manually tune the maximum amount of memory devoted to the server’s process heap using the --maxHeapSize option. The --maxHeapSize option is only valid if the --entryBalancing option is also present.

If you’re using entry balancing, tune the amount of memory devoted to the PingDirectoryProxy server using the --entryBalancing option as follows:

--entryBalancing --maxHeapSize 1g

The amount of memory allowed when using the --entryBalancing option is calculated and depends on the amount of system memory available.

Steps

  1. Run the setup command with the --no-prompt option.

    The command uses the default root user distinguished name (DN) (cn=Director Manager) with the specified --rootUserPassword option. You must include the --acceptLicense, --instanceName, and --location options or the setup command will generate an error message.

    $ env JAVA_HOME=/ds/java ./setup --no-prompt \
    --rootUserDN "cn=Directory Manager" \
    --rootUserPassword "password" --ldapPort 389 \
    --acceptLicense \
    --instanceName ds1 --location Denver
    shell

Installing additional servers

Steps

  1. Run the setup tool with the --no-prompt option.

    $ env JAVA_HOME=/ds/java ./setup --no-prompt \
    --rootUserDN "cn=Directory Manager" \
    --rootUserPassword "password" --ldapPort 1389 \
    --localHostName proxy2.example.com \
    --peerHostName proxy1.example.com --peerPort 389 \
    --peerUseNoSecurity --acceptLicense --instanceName ds1 \
    --location austin1
    shell

Installing the server with a trust store

About this task

If you’ve already configured a trust store, you can run the setup command to enable security. The following example enables both SSL and StartTLS security. It also specifies a JKS and trust store that define the server certificate and trusted CA. The passwords for the key store files are defined in the corresponding .pin files, where the password is written on the first line of the file.

The server expects the password to the private key within the key store to be the same as the password to the key store. If it isn’t the same, you can define the private key password within the admin console or using the dsconfig command by editing the Key Manager Provider standard configuration object.

Preparing key stores, trust stores, and .pin files before setup

Running setup doesn’t copy your key and trust store files or their associated .pin files to the server root. You should manually copy those files into the config directory of the server root, as follows:

  • config/keystore

  • config/keystore.pin

  • config/truststore

  • config/truststore.pin

If you choose to leave these files in their original locations and supply the original reference paths when running setup, don’t delete them afterwards. The server uses the files directly from those original locations.

Steps

  1. To install a PingDirectoryProxy server with a trust store, run the setup command.

    $ env JAVA_HOME=/ds/java ./setup \
      --no-prompt --rootUserDN "cn=Directory Manager" \
      --rootUserPassword "password" --ldapPort 389 \
      --enableStartTLS --ldapsPort 636 \
      --useJavaKeystore /path/to/devkeystore.jks \
      --keyStorePasswordFile /path/to/devkeystore.pin \
      --certNickName server-cert \
      --useJavaTrustStore /path/to/devtruststore.jks \
      --trustStorePasswordFile /path/to/devtruststore.pin \
      --acceptLicense \
      --instanceName ds1 --location Denver
    
    In order to update the trust store, the password must be provided
    
    See 'prepare-external-server --help' for general overview
    
    Testing connection to ds-east-01.example.com:1636 ..... Done
    Testing 'cn=Proxy User,cn=Root DNs,cn=config' access .....
    Created 'cn=Proxy User,cn=Root DNs,cn=config'
    
    Testing 'cn=Proxy User,cn=Root DNs,cn=config' access ..... Done
    Testing 'cn=Proxy User,cn=Root DNs,cn=config' privileges ..... Done
    Verifying backend 'dc=example,dc=com' ..... Done
    shell