blob: 07d75f91becd1d2a1ec791c7fbc2b5df7f6ef802 [file]
#
# The hostname of your LDAP server. If omitted, "localhost" will be used by
# default. You will need to use a different value if your LDAP server is
# located elsewhere.
#
ldap-hostname: localhost
#
# The port your LDAP server listens on. If omitted, the standard LDAP or LDAPS
# port will be used, depending on the encryption method specified with
# `ldap-encryption-method` (if any). Unencrypted LDAP uses the standard port of
# 389, while LDAPS uses port 636. Unless you manually configured your LDAP
# server to do otherwise, your LDAP server probably listens on port 389.
#
ldap-port: 389
#
# The encryption mechanism that Guacamole should use when communicating with
# your LDAP server. Legal values are "none" for unencrypted LDAP, "ssl" for
# LDAP over SSL/TLS (commonly known as LDAPS), or "starttls" for STARTTLS. If
# omitted, encryption will not be used.
#
# If you do use encryption when connecting to your LDAP server, you will need
# to ensure that its certificate chain can be verified using the certificates
# in Java's trust store, often referred to as `cacerts`. If this is not the
# case, you will need to use Java's `keytool` utility to either add the
# necessary certificates or to create a new trust store containing those
# certificates.
#
# If you will be using your own trust store and not the default `cacerts`, you
# will need to specify the full path to that trust store using the system
# property `javax.net.ssl.trustStore`. Note that this is a system property and
# *not* a Guacamole property; it must be specified when starting the JVM using
# the `-D` option. Your servlet container will provide some means of specifying
# startup options for the JVM.
#
ldap-encryption-method: none
#
# Configures the SSL/TLS protocol version that will be used to contact the
# LDAP server, if LDAP encryption is enabled. Legal values are "SSLv3" for
# (legacy) SSL version 3 encryption, and "TLSv1", "TLSv1.1", "TLSv1.2", or
# "TLSv1.3" for the various versions of TLS, version 1.0 - 1.3. The default
# is to use the latest, TLSv1.3.
#
# Please note that the legacy versions of SSLv3 and TLSv1 and TLSv1.1 have
# many known vulnerabilities and attack vectors, and you should use the
# latest possible TLS version that your LDAP servers support in order
# to best protect communication between Guacamole and your LDAP servers.
#
ldap-ssl-protocol: TLSv1.3
#
# The maximum number of search results that can be returned by a single LDAP
# query. LDAP queries which exceed this maximum will fail. *This property is
# optional.* If omitted, each LDAP query will be limited to a maximum of 1000
# results.
#
ldap-max-search-results: 1000
#
# The DN (Distinguished Name) of the user to bind as when authenticating users
# that are attempting to log in. If specified, Guacamole will query the LDAP
# directory to determine the DN of each user that logs in. If omitted, each
# user's DN will be derived directly using the base DN specified with
# `ldap-user-base-dn`.
#
# :::{important}
# **The search DN is used only to resolve a user's username to their
# fully qualified DN during authentication.** Any further LDAP queries for
# retrieving objects like users, groups, and connection configurations will be
# done _using the LDAP credentials of the user that logged in_.
# :::
#
ldap-search-bind-dn: uid=guacamole,dc=example,dc=net
#
# The password to provide to the LDAP server when binding as
# `ldap-search-bind-dn` to authenticate other users. This property is only used
# if ldap-search-bind-dn is specified. If omitted, but `ldap-search-bind-dn` is
# specified, Guacamole will attempt to bind with the LDAP server without a
# password.
#
ldap-search-bind-password: some-password
#
# The attribute or attributes which contain the username within all Guacamole
# user objects in the LDAP directory. Usually, and by default, this will simply
# be "uid". If your LDAP directory contains users whose usernames are dictated
# by different attributes, multiple attributes can be specified here, separated
# by commas, but beware: *doing so requires that a search DN be provided with
# `ldap-search-bind-dn`*.
#
# If a search DN *is not* provided, then the single username attribute
# specified here will be used together with the user base DN to directly derive
# the full DN of each user. For example, if `ldap-user-base-dn` is
# "`ou=people,dc=example,dc=net`", and `ldap-username-attribute` is "uid", then
# a person attempting to login as "`user`" would be mapped to the following
# full DN: "`uid=user,ou=people,dc=example,dc=net`".
#
ldap-username-attribute: uid
#
# The attribute which contains the members within all group objects in the LDAP
# directory. Usually, and by default, this will simply be "member". If your
# LDAP directory contains groups whose members are dictated by a different
# attribute, it can be specified here.
#
ldap-member-attribute: member
#
# Specify whether the attribute defined in `ldap-member-attribute` (Usually
# "member") identifies a group member by DN or by username. Possible values:
# "dn" (the default, if not specified) or "uid".
#
# Example: an LDAP server may present groups using the `groupOfNames`
# scheme:
#
# ```
# dn: cn=group1,ou=Groups,dc=example,dc=net
# objectClass: groupOfNames
# cn: group1
# gidNumber: 12345
# member: uid=user1,ou=People,dc=example,dc=net
# member: uid=user2,ou=People,dc=example,dc=net
# ```
#
# `ldap-member-attribute` is `member` and `ldap-member-attribute-type` is `dn`.
#
# Example: an LDAP server may present groups using the `posixGroup`
# scheme:
#
# ```
# dn: cn=group1,ou=Groups,dc=example,dc=net
# objectClass: posixGroup
# cn: group1
# gidNumber: 12345
# memberUid: user1
# memberUid: user2
# ```
#
# `ldap-member-attribute` is `memberUid` and `ldap-member-attribute-type` is
# `uid`
#
ldap-member-attribute-type: uid
#
# The attribute or attributes to retrieve from the LDAP directory for the
# currently logged-in user, separated by commas. If specified, the attributes
# listed here are retrieved from each authenticated user and dynamically
# applied to the parameters of that user's connections as [parameter
# tokens](parameter-tokens) with the prefix "`LDAP_`". If omitted, LDAP user
# attributes will not be used for parameter tokens.
#
# When a user authenticates with LDAP and accesses a particular Guacamole
# connection, the values of these tokens will be the values of their
# corresponding attributes at the time of authentication. If the attribute has
# no value for the current user, then the corresponding token is not applied.
# If the attribute has multiple values, then the first value of the attribute
# is used.
#
# When converting an LDAP attribute name into a parameter token name, the name
# of the attribute is transformed into uppercase with each word separated by
# underscores, a naming convention referred to as "uppercase with underscores"
# or "[screaming snake case](https://en.wikipedia.org/wiki/Naming_convention_(programming)#Multiple-word_identifiers)".
#
# For example:
#
# | LDAP Attribute | Parameter Token |
# | ---------------------------------- | ---------------------------------------------- |
# | `lowercase-with-dashes` | `${LDAP_LOWERCASE_WITH_DASHES}` |
# | `CamelCase` | `${LDAP_CAMEL_CASE}` |
# | `headlessCamelCase` | `${LDAP_HEADLESS_CAMEL_CASE}` |
# | `lettersAndNumbers1234` | `${LDAP_LETTERS_AND_NUMBERS_1234}` |
# | `aRANDOM_mixOf-3NAMINGConventions` | `${LDAP_A_RANDOM_MIX_OF_3_NAMING_CONVENTIONS}` |
#
# Usage of parameter tokens is discussed in more detail in
# [](configuring-guacamole) in [](parameter-tokens).
#
ldap-user-attributes: email, employeeNumber
#
# The search filter used to query the LDAP tree for users that can log into and
# be granted privileges in Guacamole. *If this property is omitted the default of
# `(objectClass=*)` will be used.*
#
ldap-user-search-filter: (objectClass=*)
#
# The base of the DN for all Guacamole configurations. *This property is
# optional.* If omitted, the configurations of Guacamole connections will
# simply not be queried from the LDAP directory. If specified, this base DN
# will be used when querying the configurations accessible by a user once they
# have successfully logged in.
#
# Each configuration is analogous to a connection. Within Guacamole's LDAP
# support, each configuration functions as a group, having user members (via
# the `member` attribute) and optionally group members (via the `seeAlso`
# attribute), where each member of a particular configuration group will have
# access to the connection defined by that configuration.
#
ldap-config-base-dn: ou=Guacamole Connections,dc=example,dc=net
#
# The base of the DN for all user groups that may be used by other extensions
# to define permissions or that may referenced within Guacamole configurations
# using the standard seeAlso attribute. All groups which will be used to
# control access to Guacamole configurations must be descendents of this base
# DN. *If this property is omitted, LDAP groups will have no impact on
# Guacamole group memberships, and the `seeAlso` attribute will have no effect
# on Guacamole configurations.*
#
ldap-group-base-dn: ou=groups,dc=example,dc=net
#
# The attribute or attributes which define the unique name of user groups in
# the LDAP directory. Usually, and by default, this will simply be "cn". If
# your LDAP directory contains groups whose names are dictated by different
# attributes, multiple attributes can be specified here, separated by commas.
#
ldap-group-name-attribute: cn
#
# The search filter used to query the LDAP tree for groups that may be used by
# other extensions to define permissions. *If this property is omitted the
# default of `(objectClass=*)` will be used.*
#
# This has an effect only if `ldap-group-base-dn` is specified.
#
ldap-group-search-filter: (objectClass=*)
#
# Whether the LDAP connection follows (dereferences) aliases as it searches the
# tree. Possible values for this property are "never" (the default) so that
# aliases will never be followed, "searching" to dereference during search
# operations after the base object is located, "finding" to dereference in
# order to locate the search base, but not during the actual search, and
# "always" to always dereference aliases.
#
ldap-dereference-aliases: never
#
# Whether the LDAP module follows referrals when processing search results from
# an LDAP search. Referrals can be pointers to other parts of an LDAP tree, or
# to a different server/connection altogether. This is a boolean parameter,
# with valid options of "true" or "false." The default is false. When disabled,
# LDAP referrals will be ignored when encountered by the Guacamole LDAP client
# and the client will move on to the next result. When enabled, the LDAP
# client will follow the referral and process results within the referral,
# subject to the maximum hops parameter below.
#
ldap-follow-referrals: false
#
# The maximum number of referrals that will be processed before the LDAP client
# refuses to follow any more referrals. The default is 5. If the
# `ldap-follow-referrals` property is set to false (the default), this option
# has no effect. If the `ldap-follow-referrals` option is set to true, this
# will limit the depth of referrals followed to the number specified.
#
ldap-max-referral-hops: 5
#
# The timeout, in seconds, of any single LDAP operation. The default is 30
# seconds. When this timeout is reached LDAP operations will be aborted.
#
ldap-operation-timeout: 30