advanced array
An array of objects which are used to define specific ibm-slapd properties to be set for the server.
attr array required
The attributes of the DN to modify.
The name of the attribute.
The LDAP operation which is to be performed on the attribute. The options include:
- replace: Replace any existing attribute value with the new value.
- add: Add the additional value to the attribute.
- delete: Delete the specified attribute and value.
Please note that the value is case sensitive.
replacevalues array required
The string value(s) of the property. Please note that if the value is numeric it should be surrounded by quotes.
stringThe DN of the property.
advanced:
- dn: cn=Configuration
attr:
- name: ibm-slapdTimeLimit
values:
- '900'
debug object
The configuration entries which can be used to enable debugging within the container.
A boolean which is used to indicate whether debugging should be
enabled while bootstrapping the container.
FalseSpecifies the debug level to assign to the runtime. The value is a bit mask that controls which output is generated, with values from 1 to 65535.
0general object
The general configuration elements of the container.
admin object required
The credential information of the server.
The distinguished name of the user which can be used to authenticate to the server.
cn=rootThe password of the user which can be used to authenticate to the server.
users array
Additional administrative users for this server.
The common name of the user.
The password of the user. This password must conform to the configured password policy.
The role assigned to the user. Refer to the official documentation for the permissions assigned to each role. Please note that the value is case sensitive.
audit object
The configuration entries associated with the auditing of operations.
Enable or disable the audit service.
FalseIf enabled, the audit records will be sent to the '/var/isvd/logs/audit.log' file, otherwise the audit records will be sent to the console of the container.
FalseIf enabled, the audit records will be formatted as JSON, otherwise the audit records will created in the legacy auditing format.
TrueSpecifies whether to log all failures.
TrueSpecifies whether to log the groups sent on a group control.
FalseSpecifies whether to log the attributes sent on a group evaluation extended operation.
FalseSpecifies whether to collect and log performance data in audit logs.
FalseSpecifies whether to log pass-through authentication information related to bind operations.
Trueoperation object
The operations which can be audited.
Specifies whether to log the Add operation.
FalseSpecifies whether to log the Bind operation.
TrueSpecifies whether to log the Compare operation.
FalseSpecifies whether to log the Delete operation.
FalseSpecifies whether to log the Extended operation.
FalseSpecifies whether to log the Extended operation event.
FalseSpecifies whether to log the Modify operation.
FalseSpecifies whether to log the ModifyRDN operation.
FalseSpecifies whether to log the Search operation.
FalseSpecifies whether to log the Unbind operation.
Truegeneral:
audit:
enabled: true
log-to-file: false
json-format: true
failure-only: true
groups-control: true
performance: true
pta-bind-info: true
operation:
add: true
group-eval: true
bind: true
compare: true
delete: true
extended-op: true
extended-op-event: true
modify: true
modify-dn: true
search: true
unbind: true
The identifier of the server. If no identifier is specified the hostname of the container will be used as the identifier.
Whether the logging and auditing messages should be formatted in JSON or not.
TrueThe contents of the key stash file (.ksf) which is used to protect data. This file should be provided if cryptographic synchronisation is required between different servers. The key stash can either be obtained from a software based directory server installation, or a new one can be generated by starting this image with the 'keystash' argument. For example: 'docker run --rm icr.io/isvd/verify-directory-seed:latest keystash'. Please note that this will send a base-64 encoded version of the key stash to the console of the container.
license object required
The license key, required to run the container.
Which license agreement has been accepted, either 'limited' or 'standard' or 'enterprise'. To display a license agreement start the container with the 'license' command, for example: 'docker run --rm icr.io/isvd/verify-directory-server:latest license standard'
ports object
The ports on which the server will listen for requests.
The port on which the server will listen for LDAP requests. A value of '0' is used to indicate that the server should not listen for LDAP requests. Please note that the server can listen on ports lower than 1024, but in order to do so the container infrastructure must grant the container the necessary permissions.
0The port on which the server will listen for LDAPS requests. A value of '0' is used to indicate that the server should not listen for LDAPS requests. Please note that the server can listen on ports lower than 1024, but in order to do so the container infrastructure must grant the container the necessary permissions.
9636The encoding mechanism for the user passwords before they are stored in the directory. Please note that the value is case sensitive.
ssha512pwd-policy object
The configuration entries associated with the password policy which is enforced by the server.
Indicates if the IBM Administrative Password Policy is ON.
TrueSpecifies the number of seconds after which the password failures are purged from the failure counter, even though no successful authentication occurred.
0Enables replication of security attributes between master and read-only replica so that password policy for account lockout can be strongly enforced in replication topologies.
TrueSpecifies the number of seconds that the password cannot be used to authenticate due to too many failed bind attempts.
300Specifies the maximum number of consecutive repeated characters in the password field.
2Specifies the number of consecutive failed bind attempts after which the password may not be used to authenticate.
10Specifies the maximum number of repeated characters allowed.
2Specifies the minimum number of characters required for a users password.
2Specifies the minimum number of different (unique) characters required for a users password.
2Specifies the minimum number of characters that must be used in a password.
8Specifies the minimum number of other characters required.
2advanced object
The configuration entries associated with rules for advanced password syntax checking.
Specifies whether the password can contain spaces.
Specifies that the password cannot be the same, or contain the value of the configured login attribute. The login attribute is configured by using the login-attribute configuration entry. It is set to the name of the LDAP attribute, such as UID that is used as the user ID attribute for users. Note: Enabling this rule might have a performance impact on the user password update operation. To process this rule, an internal search is done on the user to obtain the value of the login attribute. It then checks whether the specified password is the same, or contains the value of the login attribute.
The name of the attribute which contains the user identity. This is used by the no-user-id rule.
Specifies the minimum number of special characters that a password must contain.
Specifies the minimum number of numeric characters that a password must contain.
Specifies the minimum number of lowercase characters that a password must contain.
Specifies the minimum number of uppercase characters that a password must contain.
Specifies the maximum number of ascending characters that a password can contain. The characters can be alphabetic or numeric.
Specifies the maximum number of descending characters that a password can contain. The characters can be alphabetic or numeric.
Specifies a custom password policy written in the Lua scripting language.
general:
pwd-policy:
enabled: true
lockout: false
lock-duration: 1800
max-failures: 5
min-length: 5
failure-count-interval: 0
max-consecutive-repeated-chars: 2
max-repeated-chars: 2
min-alpha-chars: 2
min-diff-chars: 2
min-other-chars: 2
schemas array
Any additional schema files (.ot or .at) which will be added to the server. The schema files specified here can also be used to replace the IBM Verify Directory standard schema files. Please note however that if you supply a schema file in the YAML this schema should not be subsequently modified using an LDAP modify operation, otherwise the updates will be lost when the container next starts.
stringThe name of a schema file (.ot or .at). The file must exist within the container file system.
general: schemas: - /volume/data/custom.at - /volume/data/custom.oc - /volume/data/V3.ibm.at
ssl object
SSL configuration details for the server.
The authentication type for the ssl connection. The options include:
- ServerAuth: Supports server authentication at the client.
- ServerClientAuth: Supports both server and client authentication.
Please note that the value is case sensitive.
ServerAuthThe label that identifies the servers Personal Certificate in the key database file. If the field is not specified the default certificate from the key file will be used by the LDAP server for SSL connections.
ciphers array
The allowable encryption/decryption methods for establishing a SSL connection between LDAP client(s) and server. Please note that the value is case sensitive.
stringprotocols array
The SSL or TLS protocol versions to enable for the connection. The options include: - SSLV3: Secure Sockets Layer version 3.0. - TLS10: Transport Layer Security version 1.0. - TLS11: Transport Layer Security version 1.1. - TLS12: Transport Layer Security version 1.2. - TLS13: Transport Layer Security version 1.3. Please note that the value is case sensitive.
stringShould the server operate in FIPS process mode?
FalseThe non-FIPS certified crypographic library is loaded as a secondary backup and is used if a requested algorithm is not contained in the certified library. This configuration option is ignored if the 'general.ssl.fips' configuration entry has not been set to 'true'.
Falsegeneral:
license:
key: VGVzdDotMTowOjCCAaQG...
accept: standard
id: test.ibm.com
admin:
pwd: passw0rd1
ports:
ldap: 0
ldaps: 9636
keyfile object
The configuration elements associated with the SSL key file. This will include any keys used by the server, along with any trusted certificates. A self-signed certificate will be created as the default certificate in the key file, with the label: 'self-signed-server'.
keys array
Any private keys used by the server. The private key and associated certificate should be combined into a single configuration entry in PEM format, and the private key should not be protected by a password. By way of example, to create a private key using OpenSSL the following command can be executed:
'openssl req -nodes -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365`
The key and certificate can then be concatenated into a single file.
If this key is to be used as the main certificate served by the server the general.ssl.cert-label configuration entry must be set to the name of the label for the key.
The PEM encoded private key and public certificate.
The label which will be associated with this key.
trusted-certificates array
Any certificates which should be trusted by the server, in PEM format.
stringA certificate which is to be trusted by the server, in PEM format.
keyfile:
keys:
- label: server-key
key: '@/var/data/key.pem'
trusted-certificates:
- '@/var/data/ca_cert.pem'
proxy object
The configuration entries associated with the proxy server, used to define what data is proxied.
Enable or disable the evaluation of all groups by the proxy server in a distributed directory environment.
TrueDetermines whether the proxy allows dynamic group evaluation.
TrueWhether or not the server should allow non-Administrator bind for paged results requests on a search request. If the value is set to true, the server will process any client request, including those submitted by a user binding anonymously. If the value is set to false, the server will process only those client requests submitted by a user with Administrator authority. If a client requests paged results with a criticality of true or false for a search operation, does not have Administrator authority, and the value is set to false, the server will return to the client with a return code of insufficientAccessRights - no searching or paging will be performed.
Trueserver-groups array
An array of objects which are used to define the various groupings of proxied servers. Server groupings enable the user to state that several backend servers are mirrors of each other, and proxy server processing can continue even if one or more backend servers in the group are down, assuming that at least one backend server is online.
The name which will be given to the group.
servers array required
The servers which belong to this group.
The method used to bind to backend servers. The options include:
- Simple: The simple username and password bind method.
- Digest: The Digest bind method.
- Kerberos: The Kerberos bind method.
Please note that the value is case sensitive.
SimpleThe label that identifies the private key which will be used when communicating with the proxied server.
The number of connections to be maintained by the proxy server to an individual backend server.
120digest object
The credential information when DIGEST is selected as the bind method to the backend server.
The realm of the digest MD-5 bind when binding to a backend server.
The username to be used when DIGEST is selected as the bind method to a backend server.
The limit on the number of outstanding requests after which a Proxy Health Check can mark a backend server as hung.
5The identifier of the server.
The maximum number of operations that could be pending for a single backend server from a single client connection.
5The name which will be given to the server.
The interval between status checks.
3The URL of a backend server. This must be in the form ldap:// or ldaps:// (to indicate SSL use ldaps).
user object required
The credential information of the backend server.
The distinguished name of the user which will be used to authenticate to the backend server.
The password of the user which will be used to authenticate to the backend server.
proxy:
server-groups:
- name: group_a
servers:
- name: server_a
id: server_a_id
target: ldap://server_a.ibm.com:389
bind-method: Simple
user:
dn: uid=Manager,cn=ibmpolicies
password: passw0rd
- name: server_b
id: server_b_id
target: ldap://server_b.ibm.com:389
user:
dn: uid=Manager,cn=ibmpolicies
password: passw0rd
suffixes array
An array of objects which are used to define the various suffixes which are proxied by this server. The 'cn=ibmpolicies' suffix is mandatory and if it is not present it will be automatically created using the definition of the first suffix as a template.
The flag that indicates if auto failback is enabled.
TrueThe suffix base.
Determines if autofailback is done based on the replication queue threshold.
TrueThe maximum replication queue size allowed between current write server and server to failback for autofailback.
5Enable or disable High Consistency on a per suffix basis.
The name which will be given to the suffix.
Specifies the number of servers a given container is split between.
1servers array required
The servers which belong to this group.
The unique index a given server is assigned in a suffix container. The value here must be <= the corresponding num-partitions value. The first value begins at 1.
1The name of the server. This name should match a defined proxied server name.
The role that a backend server plays within the distributed directory.
primarywriteUsed for storing the priority of a backend server for a given split. Priority ranges from 1-5, 1 being the maximum priority.
1proxy:
suffixes:
- name: split_a
num-partitions: 1
base: o=sample.com
servers:
- name: server_a
role: primarywrite
index: 1
proxy:
allow-non-admin: true
allow-dynamic-group-evaluation: false
allow-distributed-group-evaluation: false
server-groups:
- name: group_a
servers:
- name: server_a
id: server_a
target: ldap://10.10.10.200:389
bind-method: Simple
user:
dn: cn=root
password: passw0rd
suffixes:
- name: split_a
num-partitions: 1
base: dc=ibm.com
servers:
- name: server_a
role: primarywrite
index: 1