Skip to content

Remote agent properties

The following table provides descriptions of the key properties to apply in deployment.toml file to configure the agent and the user store that you need to connect.

Tip

Asgardeo now offers an optimized remote user store connection designed for high scalability and performance. Currently this version only allows connecting a read-only user store with the remote user authentication and attribute retrieval.

The new connection is continuously evolving to support more use cases in the future. For extended capabilities like read-write user stores, the classic remote user store remains available.

Configuration name Description Example
System configurations
idle_connections
(optional)
Number of connections the remote agent opens with the server.
The default is 10. Max allowed is 50.
idle_connections = 10
connection_retry_count
(optional)
The number of times the system retries a connection when an attempt fails.
Set -1 to try indefinitely.
connection_retry_count = 5
connection_retry_interval
(optional)
The interval (in seconds) between consecutive connection retry attempts. connection_retry_interval = 5
periodic_ping_interval
(optional)
The interval (in seconds) at which the agent sends a heartbeat or ping request to ensure the connection remains active.
The default is 10.
periodic_ping_interval = 10
User store connection configurations
type Type of the user store you are trying to connect to. You can update the type parameter as ldap if you are using LDAP (Lightweight Directory Access Protocol) and active_directory if you are using an Active Directory user store. type = "ldap"
connection_url Connection URL to the user store server. connection_url = "ldap://localhost:389"
connection_name The username used to connect to the user store and perform various operations. This user does not have to be an administrator in the user store, but this user MUST have permission to read the user list and users' attributes and to perform search operations on the user store. The value you specify is used as the DN ( Distinguish Name ) attribute of the user. connection_name = "uid=admin,ou=system"
connection_password Password for the ConnectionName user. connection_password = "password"
connection_timeout
(optional)
Timeout in making the initial user store connection. This is configured in milliseconds.
The default is 5000.
connection_timeout = 5000
connection_retry_count
(optional)
The maximum number of retries for establishing the connection to the user store if the first attempt fails.
Set -1 to try indefinitely.
connection_retry_count = -1
connection_pool_size
(optional)
The number of connections to be created in the user store connection pool.
The default is 10.
connection_pool_size = 10
max_result_size
(optional)
The maximum number of entries that can be returned in a single search result. Set 0 or remove the config to try indefinitely. max_result_size = 100
request_timeout
(optional)
The timeout (in seconds) for a user store request to return the result. Set 0 or remove the config to wait indefinitely. request_timeout = 15
enable_tls
(optional)
Whether TLS (Transport Layer Security) should be used for secure connections to the user store. enable_tls = true
use_start_tls
(optional)
Whether the connection should be upgraded to TLS using the STARTTLS command.
This configuration requires setting enable_tls to false.
use_start_tls = true
tls_cert_paths
(optional)
List of absolute paths to the user store certificates. tls_cert_paths = ["path/to/the/cert.pem"]
server_name
(optional)
Server name in the user store certificate. Requires only when the certificate is issued for a different cn. server_name = "ldap.wso2.com"
ca_cert_paths
(optional)
Paths to the CA (Certificate Authority) certificates for verifying the user store certificate. Requires only when the user store is using an unknown CA. ca_cert_paths = ["path/to/the/ca-certificates.crt"]
skip_server_cert_verification
(optional)
Whether to skip verifying the server's certificate during connection establishment.
The default value is false.
skip_server_cert_verification = false
User store properties
user_search_base DN of the context or object under which the user entries are stored in the user store. In this case, it is the "users" container. When the user store searches for users, it will start from this location of the directory. user_search_base = "ou=Users,dc=example,dc=org"
user_entry_object_class The object class used to construct user entries. user_entry_object_class = "inetOrgperson"
user_id_attribute The attribute used for uniquely identifying a user entry. The value of the attribute is considered as the unique user Id. user_id_attribute = "objectGuid"
user_name_attribute The attribute used for uniquely identifying a user entry. Users can be authenticated using their email address, UID, etc. The name of the attribute is considered as the username. user_name_attribute = "cn"
user_search_filter Filtering criteria used to search for a particular user entry. The user search operation only returns objects created from this class. user_search_filter = "(&(objectClass=user)(?=?))"
user_list_filter Filtering criteria for listing all the user entries in the user store. This query or filter is used when doing search operations on users. The user list operation only returns objects created from this class. user_list_filter = "(objectClass=user)"
multi_attribute_separator This property is used to define a character to separate multiple attributes. This ensures that it will not appear as part of a claim value. By default “,” is used to separate multiple attributes. You can define ",,," or "..." or a similar character sequence. multi_attribute_separator = ","
read_groups Specifies whether groups should be read from the user store. If this is disabled by setting it to false, none of the groups in the user store can be read, and the following group configurations are NOT mandatory: group_search_base, group_entry_object_class, group_search_filter, group_list_filter, group_name_attribute or membership_attribute. read_groups = "true"
group_search_base DN of the context under which group entries are stored in the user store. group_search_base = "ou=Groups,dc=example,dc=org"
group_entry_object_class The object class used to construct group entries. group_entry_object_class = "groupOfNames"
group_search_filter Filtering criteria used to search for a particular group entry. The group search operation only returns objects created from this class. group_search_filter = "(&(objectClass=groupOfNames)(?=?))"
group_list_filter Filtering criteria for listing all the group entries in the user store. The group list operation only returns objects created from this class. group_list_filter = "(objectClass=groupOfNames)"
group_name_attribute Attribute used for uniquely identifying a group entry. This attribute is treated as the group name. group_name_attribute = "cn"
group_id_attribute The attribute used for uniquely identifying a group entry. The value of the attribute is considered as the unique group id. group_id_attribute = "gid"
group_created_date_attribute The attribute that contains the group created timestamp. group_created_date_attribute = "whenCreated"
group_last_modified_date_attribute The attribute that contains the group modified timestamp. group_last_modified_date_attribute = "whenChanged"
membership_attribute The attribute that contains the distinguished names (DN) of user objects that are in a group. membership_attribute = "member"
memberof_attribute The attribute that contains the distinguished names (DN) of group objects that a user is assigned to.
Only requires to define either membership_attribute or memberof_attribute.
memberof_attribute = "memberOf"
binary_attributes Comma-separated list of binary attributes. Requires only if you have binary attributes in the user store. binary_attributes = "objectGUID"
timestamp_attributes Comma-separated list of timestamp attributes. Requires only if you need to retrieve timestamp attributes. timestamp_attributes = "whenCreated,whenChanged"

Configuration name Description Example
type Type of the user store you are trying to connect. You can update the type parameter as ldap if you are using LDAP (Lightweight Directory Access Protocol) and active_directory if you are using an Active Directory user store. type = "ldap"
connection_url Connection URL to the user store server. connection_url = "ldap://localhost:389"
connection_name The username used to connect to the user store and perform various operations. This user does not have to be an administrator in the user store, but this user MUST have permission to read the user list and users' attributes and to perform search operations on the user store. The value you specify is used as the DN ( Distinguish Name ) attribute of the user. This property is mandatory. connection_name = "uid=admin,ou=system"
connection_password Password for the ConnectionName user. connection_password = "password"
ldap_connection_timeout Timeout in making the initial LDAP connection. This is configured in milliseconds. ldap_connection_timeout = 2000
base_dn The starting point the directory server uses when searching for users authentication within your Directory. base_dn = "dc=example,dc=org"
user_search_base DN of the context or object under which the user entries are stored in the user store. In this case, it is the "users" container. When the user store searches for users, it will start from this location of the directory. user_search_base = "ou=Users,dc=example,dc=org"
user_name_list_filter Filtering criteria for listing all the user entries in the user store. This query or filter is used when doing search operations on users. In this case, the search operation only provides the objects created from the specified class. This query is the same as listing out all the available users in the management console. user_name_list_filter = "(objectClass=user)"
user_name_attribute The attribute used for uniquely identifying a user entry. Users can be authenticated using their email address, UID, etc. The name of the attribute is considered as the username. user_name_attribute = "cn"
user_name_search_filter Filtering criteria are used to search for a particular user entry. user_name_search_filter = "(&(objectClass=user)(cn=?))"
user_entry_object_class The object class is used to construct user entries. user_entry_object_class = "inetOrgperson"
user_id_attribute The attribute used for uniquely identifying a user entry. The value of the attribute is considered as the unique user ID. user_id_attribute = "objectGuid"
user_id_search_filter Filtering criteria used to search for a particular user entry using the user id attribute. user_id_search_filter = "(&(objectClass=user)(objectGuid=?))"
password_hash_method Specifies the Password Hashing Algorithm uses the hash the password before storing in the user store. Possible values:
SHA - Uses SHA digest method. SHA-1, SHA-256
MD5 - Uses MD 5 digest method.
PLAIN_TEXT - Plain text passwords.(Default)
password_hash_method = "PLAIN_TEXT"
read_groups Specifies whether groups should be read from the user store. If this is disabled by setting it to false, none of the groups in the user store can be read, and the following group configurations are NOT mandatory: group_search_base, group_name_list_filter, group_name_search_filter, or group_name_attribute. read_groups = "true"
group_search_base DN of the context under which group entries are stored in the user store. group_search_base = "ou=Groups,dc=example,dc=org"
group_entry_object_class The object class is used to construct group entries. group_entry_object_class = "groupOfNames"
group_name_attribute Attribute used for uniquely identifying a group entry. This attribute is to be treated as the group name. group_name_attribute = "cn"
group_name_search_filter Filtering criteria used to search for a particular group entry. group_name_search_filter = "(&(objectClass=groupOfNames)(cn=?))"
group_name_list_filter Filtering criteria for listing all the group entries in the user store. The group search operation only returns objects created from this class. group_name_list_filter = "(objectClass=groupOfNames)"
group_id_enabled Whether the unique groupid is enabled or not. group_id_enabled = "true"
group_id_attribute The attribute used for uniquely identifying a group entry. The value of the attribute is considered as the unique group ID. group_id_attribute = "gid"
membership_attribute Attribute used to define members of groups. membership_attribute = "member"
group_created_date_attribute This attribute is to be treated as the group created timestamp. group_created_date_attribute = "whenCreated"
multi_attribute_separator This property is used to define a character to separate multiple attributes. This ensures that it will not appear as part of a claim value. Normally “,” is used to separate multiple attributes, but you can define ",,," or "..." or a similar character sequence multi_attribute_separator = ","
case_insensitive_user_name Enables the case-insensitivity of the user's username. The default value is true for this configuration.
Eg: If a user's username is test, that user can also use the username as TEST.
case_insensitive_user_name = "true"
immutable_attributes This property is used to define a list of attributes that are considered unchangeable attributes in the user store.
This property needs to be configured only for user stores with Read/Write access.
immutable_attributes = "whenCreated,whenChanged,location"