LDAPS Connections
The SAE supports LDAPS (LDAP over SSL) connections to the directory server. LDAPS is not a standard, but it is well supported by most directories, including OpenLDAP, Sun ONE Directory Server, and DirX. Secure channels protected by SSL are useful for such purposes as sending and receiving attributes that contain passwords and keys.
The SAE employs multiple directory connections for its components. For example, the UserDataManager and ServiceDataManager components each have their own independent directory connections. The SAE is capable of simultaneous LDAP and LDAPS connections, so you can configure the SAE to use LDAPS for some directory connections and LDAP for other directory connections. For example, if you want the data exchanged between UserDataManager and the directory to be more secure, you can configure the connection to use LDAPS.
For public data that does not require the security of SSL (such as the ServiceDataManager's directory connection), you can configure LDAP rather than LDAPS. LDAPS connections use more CPU and network bandwidth resources than LDAP connections and are slower than LDAP connections.
When a directory client initiates an LDAPS connection, the SSL connection is established if the client trusts the X.509 SSL server certificate sent by the server. The server requires a bind DN and password to authenticate the client before it establishes the LDAP connection over SSL. The client then sends data over the SSL connection. The SDX software does not support certificate authentication for directory clients. The following steps illustrate the authentication and connection sequence:
- Directory client initiates LDAPS connection.
- Directory server sends the X.509 SSL server certificate that it has received from a certificate authority.
- Client checks certificate against its trust certificate store. If it matches, certificate is trusted.
- Client proceeds with establishing SSL connection.
- When SSL connection is up, client sends bind DN and password to server to establish LDAP connection.
- Server authenticates client and establishes the LDAP over SSL connection.
Configuring LDAPS
To configure LDAPS connections:
- Configure the directory server to support LDAPS connections to directory clients.
- Ensure that the directory clients trust the CA that issued the server certificate.
- Configure the SAE to find the trust certificate store.
- Configure the SAE to use LDAPS to communicate with the directory server.
Configuring the Directory Server
You must configure your directory server to support SSL connections. This configuration consists of setting up the directory server with an X.509 SSL server certificate and enabling SSL. Typically, you must first obtain a signed certificate for the directory server from a CA, install the certificate for the server, and configure the directory server to trust the CA's certificate. Then, follow your directory server documentation to enable SSL; the procedure varies among directory servers.
There are many well-known CAs. You can also set up your own CA to sign the directory certificate. The CA must be trusted by the directory clients that are going to use LDAPS to communicate with the directory. Many tools are available to set up a CA; one such is OpenSSL (http://www.openssl.org).
Establishing Trust
Each directory client must have a certificate database and must trust the CA. Otherwise, the client will be unable to use the SSL connection to the directory server.
Java applications, such as the SAE, implicitly trust certificates stored in the /jre/lib/security/cacerts certificate file, which is a JRE system-wide certificate trust store. By default, the file contains certificates from some well-known CAs. If a certificate for the CA that you use for the directory server is available in cacerts, you can skip this step. View the file on the host where you installed the JRE.
If your CA is not in cacerts, you can import it into this file or into any certificate store that is in the JKS format (supported by the Java 2 SDK). All Java applications running in a given JRE trust all CAs present in the cacerts file.
In some circumstances you might want the CA certificate to be located elsewhere. For example, suppose you want your SAE to trust only the certificate for the CA that signs the directory server's certificate. Another case is if you do not want other applications that are running in the same JRE to trust the CA's certificate. In either case, use the Java keytool to import that CA's certificate into a store different from the default cacerts file. The following example imports the CA's certificate ca.crt into a trust store named as ldapclient.keystore.
keytool -import -v -trustcacerts -alias saeldap -noprompt -file ./ca.crt -keystore ldapclient.keystore -storepass zaqwsxSee http://java.sun.com/j2se/1.4.1/docs/tooldocs/solaris/keytool.html for more information.
Configuring the SAE to Find the Certificate Store
If you are using a certificate file other than the default, then specify the name and path of the file in the Security.ssl.trustcertstore property in the /opt/UMC/ssp/etc/default.properties file. The following example points to the trustcerts file:
Security.ssl.trustcertstore = /opt/UMC/ssp/etc/trustcertsAlternatively, to enable the SAE to use the default cacerts file, you must comment out the Security.ssl.trustcertstore property.
Configuring LDAPS Communication
To enable an LDAPS connection for an SAE component, set its security protocol property to ldaps. To disable an LDAPS connection for that component, comment out the property. Table 27 lists some SAE components and their corresponding LDAP configuration properties.
UserCacheDataSource.repository.ldap.server.security.protocol
By default, directory servers use port 389 to accept an LDAP connection. For LDAPS connections, the default port number is 636, but you can use a different number. You must set the server port number in the server port properties of the SAE components listed in Table 28.
Modifying Properties for LDAPS
You can modify the following properties by editing /opt/UMC/ssp/etc/default.properties:
Select the configuration object file in SDX Admin under I=SAE,ou=staticConfiguration,ou=Configuration,o=Management,o=umc to modify any of the following properties:
- UserDataSource.repository.ldap.server.security.protocol
- UserCacheDataSource.repository.ldap.server.security.protocol
- ServiceDataSource.repository.ldap.server.security.protocol
- Plugin.ldapAuth.securityProtoco
- LicenseMgr.repository.ldap.server.security.protocol property
- UserDataSource.repository.ldap.server.port
- UserCacheDataSource.repository.ldap.server.port
- ServiceDataSource.repository.ldap.server.port
- LicenseMgr.repository.ldap.server.port
Select the configuration object file in SDX Admin under I=EASP,ou=staticConfiguration,ou=Configuration,o=Management,o=umc to modify either of the following properties: