Sandor Molnar created KNOX-3378:
-----------------------------------

             Summary: Expose a secure (LDAPS) transport on the embedded Knox 
LDAP server
                 Key: KNOX-3378
                 URL: https://issues.apache.org/jira/browse/KNOX-3378
             Project: Apache Knox
          Issue Type: Sub-task
          Components: Server
    Affects Versions: 3.0.0
            Reporter: Sandor Molnar
            Assignee: Sandor Molnar
             Fix For: 3.0.0


Add an optional TLS transport to the embedded ApacheDS server managed by 
{{{}KnoxLDAPServerManager{}}}, so external clients can connect over LDAPS 
instead of plaintext LDAP.

+Changes:+
 - New configuration keys (defaults keep current behavior):
 - gateway.ldap.ssl.enabled - enable LDAPS (default false).
 - {{gateway.ldap.ssl.keystore.path}} - keystore holding the server 
certificate; defaults to the gateway identity keystore 
(getIdentityKeystorePath()).
 - {{gateway.ldap.ssl.keystore.password.alias}} - credential-store alias for 
the keystore password; defaults to the gateway identity keystore password.
 - {{gateway.ldap.ssl.enabled.cipher.suites}} - optional TLS cipher-suite 
allowlist.
 - {{KnoxLDAPServerManager}} enables SSL on the {{TcpTransport}} and sets the 
keystore file + certificate password on the LdapServer.
 - Keystore password resolved via {{AliasService}} (consistent with existing 
bind-password handling); falls back to the gateway identity keystore password 
when no dedicated alias is set.
 - Fail fast at startup with a clear message when SSL is enabled but no 
keystore is available.

+Notes/constraints:+
 - ApacheDS loads the keystore using the JVM default keystore type, so the 
configured keystore must be in that format.

+Acceptance criteria:+
 - With SSL enabled, the server completes a TLS handshake presenting the 
configured certificate.
 - Plaintext access to the secure port is rejected.
 - Anonymous/plaintext behavior is unchanged when 
{{{}gateway.ldap.ssl.enabled=false{}}}.
 - Unit tests cover: successful TLS handshake with the configured cert, 
plaintext rejection, and missing-keystore startup failure.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to