Skip to content

Security Configuration

This document covers security configuration values and meanings. It does not serve as the source for how to configure security, but rather what the different values mean. These are not covered in the docs nor does any reasonable help information exist in the config manager or yaml files.

Supported Configurations

Security is configured either through an LDAP server or a plugin. Additionally, these are supported in both legacy deployments that use environment.xml and containerized deployments using Kubernetes and Helm charts. While these methods differ, the configuration values remain the same. Focus is placed on the different values and not the deployment target. Differences based on deployment can be found in the relevant platform documents.

Security Managers

Security is implemented via a security manager interface. Managers are loaded and used by components within the system to check authorization and authentication. LDAP is an exception to the loadable manager model. It is not a compliant loadable module like other security plugins. For that reason, the configuration for each is separated into two sections below: LDAP and Plugin Security Managers.

LDAP

LDAP is a protocol that connects to an Active Directory server (AD). The term LDAP is used interchangeably with AD. Below are the configuration values for an LDAP connection. These are valid for both legacy (environment.xml) and containerized deployments. For legacy deployments the configuration manager is the primary vehicle for setting these values. However, some values are not available through the tool and must be set manually in the environment.xml if needed for a legacy deployment.

In containerized environments, a LDAP configuration block is required for each component. Currently, this results in a verbose configuration where much of the information is repeated.

LDAP is capable if handling user authentication and feature access authorization (such as filescopes).

ValueExampleMeaning
adminGroupNameHPCCAdminsGroup name containing admin users for the AD
cacheTimeout60Timeout in minutes to keep cached security data
ldapCipherSuiteN/AUsed when AD is not up to date with latest SSL libs.
AD admin must provide
ldapPort389 (default)Insecure port
ldapSecurePort636 (default)Secure port over TLS
ldapProtocolldapldap for insecure (default), using ldapPort
ldaps for secure using ldapSecurePort
ldapTimeoutSec60 (default 5 for debug, 60 otherwise)Connection timeout to an AD before rollint to next AD
serverTypeActiveDirectoryIdentifies the type of AD server. (2)
filesBasednou=files,ou=ecl_kr,DC=z0lpf,DC=onmicrosoft,DC=comDN where filescopes are stored
groupsBasednou=groups,ou=ecl_kr,DC=z0lpf,DC=onmicrosoft,DC=comDN where groups are stored
modulesBaseDnou=modules,ou=ecl_kr,DC=z0lpf,DC=onmicrosoft,DC=comDN where permissions for resource are stored (1)
systemBasednOU=AADDC Users,DC=z0lpf,DC=onmicrosoft,DC=comDN where the system user is stored
usersBasednOU=AADDC Users,DC=z0lpf,DC=onmicrosoft,DC=comDN where users are stored (3)
systemUserhpccAdminAppears to only be used for IPlanet type ADs, but may still be required
systemCommonNamehpccAdminAD username of user to proxy all AD operations
systemPasswordSystem user passwordAD user password
ldapAdminSecretKeynoneKey for Kubernetes secrets (4) (5)
ldapAdminVaultIdnoneVault ID used to load system username and password (5)
ldapDomainnoneAppears to be a comma separated version of the AD domain name components (5)
ldapAddress192.168.10.42IP address to the AD
commonBasednDC=z0lpf,DC=onmicrosoft,DC=comOverrides the domain retrieved from the AD for the system user (5)
templateNamenoneTemplate used when adding resources (5)
authMethodnoneNot sure yet

Notes:

  1. modulesBaseDn is the same as resourcesBaseDn The code looks for first for modulesBaseDn and if not found will search for resourcesBaseDn
  2. Allowed values for serverType are ActiveDirectory, AzureActiveDirectory, 389DirectoryServer, OpenLDAP, Fedora389
  3. For AzureAD, users are managed from the AD dashboard, not via ECLWatch or through LDAP
  4. If present, ldapAdminVaultId is read and systemCommonName and systemPassword are read from the Kubernetes secrets store and not from the LDAP config values
  5. Must be configured manually in the environment.xml in legacy environments

Plugin Security Managers

Plugin security managers are separate shared objects loaded and initialized by the system. The manager interface is passed to components in order to provide necessary security functions. Each plugin has its own configuration. HPCC components can be configured to use a plugin as needed.

httpasswd Security Manager

See documentation for the settings and how to enable.

Single User Security Manager

To be added.

JWT Security Manager

To be added

Released under the Apache-2.0 License.