LDAP Auth Advanced Configuration
Parameters
See plugin common configurations for configuration options available to all plugins.
This plugin supports referencing sensitive parameter values from environment variables using the env:// prefix, or from a secret manager, such as HashiCorp Vault’s KV secrets engine, using the secret:// prefix. For more information, see environment variables in plugin and secrets.
Credentials
The following are plugin attributes available for configurations on credentials.
-
user_dn—string· requiredValid values: between 1 and 4096 characters
Distinguished name of the directory entry this consumer represents, such as
uid=johndoe,ou=users,dc=example,dc=org. It has to match the DN the plugin resolves through its directory search.
Routes or Services
The following are plugin attributes available for configurations on routes or services.
-
ldap_uri—string· requiredValid values: between 1 and 256 characters
Address of the LDAP directory, as
hostorhost:port. When the port is omitted,636is used ifuse_ldapsis enabled and389otherwise. -
base_dn—string· requiredValid values: between 1 and 4096 characters
Distinguished name of the subtree the plugin searches to resolve the user, such as
ou=users,dc=example,dc=org. -
attribute—string· optional · default:cnValid values: an RFC 4512 attribute description, at most 256 characters
Attribute matched against the user name supplied by the client. The search filter is
(attribute=username), souidsuits most OpenLDAP directories andsAMAccountNamesuits Active Directory. -
bind_dn—string· optionalValid values: between 1 and 4096 characters
Distinguished name the plugin binds as to perform the search. When unset, the search is performed anonymously. Setting it requires
ldap_password. -
ldap_password—string· optionalValid values: between 1 and 4096 characters
Password for
bind_dn. Required whenbind_dnis set. When Data Plane data encryption is enabled, this field is encrypted at rest. -
use_ldaps—boolean· optional · default:falseIf true, connect to the directory over LDAPS. Mutually exclusive with
use_starttls. -
use_starttls—boolean· optional · default:falseIf true, upgrade a plaintext connection to TLS with StartTLS. Mutually exclusive with
use_ldaps. -
ssl_verify—boolean· optional · default:trueIf true, verify the directory's TLS certificate when connecting over LDAPS or StartTLS.
-
timeout—integer· optional · default:10000Valid values: between 1 and 60000 inclusive
Timeout in milliseconds for the connection to the directory.
-
size_limit—integer· optional · default:2Valid values: greater than or equal to 2
Maximum number of entries the directory returns for the search. The default of
2is enough to detect an ambiguous user name, which the plugin rejects rather than binding as an arbitrary match. -
time_limit—integer· optional · default:5Valid values: greater than or equal to 0
Time limit in seconds the directory applies to the search. Set to
0to use the directory's own default. -
consumer_required—boolean· optional · default:trueIf true, the authenticated user has to map onto a consumer whose credential records their distinguished name, and a user without such a credential is rejected. Set to
falseto authenticate against the directory without involving consumers. -
header_type—string· optional · default:ldapValid values:
ldaporbasicAuthentication scheme the plugin accepts in the
AuthorizationorProxy-Authorizationheader, and the scheme it names in theWWW-Authenticatechallenge. In both cases the credential itself isbase64(username:password), sobasicproduces an ordinary HTTP Basic exchange. -
hide_credentials—boolean· optional · default:falseIf true, remove the header carrying the directory credentials once the client has been authenticated, so the username and password are not forwarded to the upstream. Available in API7 Enterprise from version 3.10.6.
-
realm—string· optional · default:ldapRealm reported in the
WWW-Authenticateheader of the challenge returned to unauthenticated clients. -
keepalive—boolean· optional · default:trueIf true, keep connections to the directory alive so that they are reused across requests.
-
keepalive_timeout—integer· optional · default:60000Valid values: greater than or equal to 1000
Idle time in milliseconds after which a pooled connection to the directory is closed.
-
keepalive_pool_size—integer· optional · default:5Valid values: greater than or equal to 1
Maximum number of pooled connections to the directory per worker.
-
keepalive_pool_name—string· optionalValid values: between 1 and 256 characters
Name of the connection pool. Set it to keep the connections of different plugin configurations in separate pools.