Chapter 9. keystone
The following chapter contains information about the configuration options in the keystone
service.
9.1. keystone.conf
This section contains options for the /etc/keystone/keystone.conf
file.
9.1.1. DEFAULT
The following table outlines the options available under the [DEFAULT]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| uri value |
The base admin endpoint URL for Keystone that is advertised to clients (NOTE: this does NOT affect how Keystone listens for connections). Defaults to the base host URL of the request. For example, if keystone receives a request to |
| string value |
Using this feature is NOT recommended. Instead, use the |
| integer value | The pool size limit for connections expiration policy |
| integer value | The time-to-live in sec of idle connections in the pool |
| string value | The default exchange under which topics are scoped. May be overridden by an exchange name specified in the transport_url option. |
| integer value | The value passed as the keyword "rounds" to passlib’s encrypt method. This option represents a trade off between security and performance. Higher values lead to slower performance, but higher security. Changing this option will only affect newly created passwords as existing password hashes already have a fixed number of rounds applied, so it is safe to tune this option in a running cluster. For more information, see https://pythonhosted.org/passlib/password_hash_api.html#choosing-the-right-rounds-value |
| boolean value | If set to true, the logging level will be set to DEBUG instead of the default INFO level. |
| list value | List of package logging levels in logger=LEVEL pairs. This option is ignored if log_config_append is set. |
| string value |
Default |
| integer value | Size of executor thread pool when executor is threading or eventlet. |
| boolean value | Enables or disables fatal status of deprecations. |
| boolean value | If set to true, then the server will return information in HTTP responses that may allow an unauthenticated or authenticated user to get more information than normal, such as additional details about why authentication failed. This may be useful for debugging but is insecure. |
`instance_format = [instance: %(uuid)s] ` | string value | The format for an instance that is passed with the log message. |
`instance_uuid_format = [instance: %(uuid)s] ` | string value | The format for an instance UUID that is passed with the log message. |
| integer value |
The maximum number of entities that will be returned in a collection. This global limit may be then overridden for a specific driver, by specifying a list_limit in the appropriate section (for example, |
| string value | The name of a logging configuration file. This file is appended to any existing logging configuration files. For details about logging configuration files, see the Python logging module documentation. Note that when logging configuration files are used then all logging configuration is set in the configuration file and other logging configuration options are ignored (for example, logging_context_format_string). |
| string value | Defines the format string for %%(asctime)s in log records. Default: %(default)s . This option is ignored if log_config_append is set. |
| string value | (Optional) The base directory used for relative log_file paths. This option is ignored if log_config_append is set. |
| string value | (Optional) Name of log file to send logging output to. If no default is set, logging will go to stderr as defined by use_stderr. This option is ignored if log_config_append is set. |
| string value | Format string to use for log messages with context. |
| string value | Additional data to append to log message when logging level for the message is DEBUG. |
| string value | Format string to use for log messages when context is undefined. |
| string value | Prefix each line of exception output with this format. |
| string value | Defines the format string for %(user_identity)s that is used in logging_context_format_string. |
| integer value | Limit the sizes of user & project ID/names. |
| integer value | Maximum depth of the project hierarchy, excluding the project acting as a domain at the top of the hierarchy. WARNING: Setting it to a large value may adversely impact performance. |
| integer value |
Similar to |
| string value |
Similar to the |
| string value |
This is the role name used in combination with the |
| string value |
Define the notification format for identity service events. A |
| multi valued |
You can reduce the number of notifications keystone emits by explicitly opting out. Keystone will not emit notifications that match the patterns expressed in this list. Values are expected to be in the form of |
| uri value |
The base public endpoint URL for Keystone that is advertised to clients (NOTE: this does NOT affect how Keystone listens for connections). Defaults to the base host URL of the request. For example, if keystone receives a request to |
| boolean value | Enables or disables publication of error events. |
| integer value | Maximum number of logged messages per rate_limit_interval. |
| string value | Log level name used by rate limiting: CRITICAL, ERROR, INFO, WARNING, DEBUG or empty string. Logs with level greater or equal to rate_limit_except_level are not filtered. An empty string means that all levels are filtered. |
| integer value | Interval, number of seconds, of log rate limiting. |
| integer value | Number of seconds to wait for an ack from a cast/call. After each retry attempt this timeout is multiplied by some specified multiplier. |
| integer value | Number to multiply base ack timeout by after each retry attempt. |
| string value | The messaging driver to use, defaults to rabbit. Other drivers include amqp and zmq. |
| integer value | Size of RPC connection pool. |
| integer value | Expiration timeout in seconds of a sent/received message after which it is not tracked anymore by a client/server. |
| integer value | The default number of seconds that poll should wait. Poll raises timeout exception when timeout expired. |
| integer value | Seconds to wait for a response from a call. |
| integer value | Default number of message sending attempts in case of any problems occurred: positive value N means at most N retries, 0 means no retries, None or -1 (or any other negative values) mean to retry forever. This option is used only if acknowledgments are enabled. |
| integer value | Maximum number of (green) threads to work concurrently. |
| boolean value | Wait for message acknowledgements from receivers. This mechanism works only via proxy without PUB/SUB. |
| string value | ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP. The "host" option should point or resolve to this address. |
| integer value | Number of retries to find free port number before fail with ZMQBindError. |
| integer value | Number of ZeroMQ contexts, defaults to 1. |
| string value | Name of this node. Must be a valid hostname, FQDN, or IP address. Must match "host" option, if running Nova. |
| string value | Directory for holding IPC sockets. |
| string value | MatchMaker driver. |
| integer value | Maximal port number for random ports range. |
| port value | Minimal port number for random ports range. |
| string value | Default serialization mechanism for serializing/deserializing outgoing/incoming messages |
| integer value | Maximum number of ingress messages to locally buffer per topic. Default is unlimited. |
| string value | The HTTP header used to determine the scheme for the original request, even if it was removed by an SSL terminating proxy. |
| boolean value | If set to true, strict password length checking is performed for password manipulation. If a password exceeds the maximum length, the operation will fail with an HTTP 403 Forbidden error. If set to false, passwords are automatically truncated to the maximum length. |
| list value | List of publisher hosts SubConsumer can subscribe on. This option has higher priority then the default publishers list taken from the matchmaker. |
| string value | Syslog facility to receive log lines. This option is ignored if log_config_append is set. |
| string value | The network address and optional user credentials for connecting to the messaging backend, in URL format. The expected format is: driver://[user:pass@]host:port[,[userN:passN@]hostN:portN]/virtual_host?query Example: rabbit://rabbitmq:password@127.0.0.1:5672// For full details on the fields in the URL see the documentation of oslo_messaging.TransportURL at https://docs.openstack.org/oslo.messaging/latest/reference/transport.html |
| boolean value | Enable journald for logging. If running in a systemd environment you may wish to enable journal support. Doing so will use the journal native protocol which includes structured metadata in addition to log messages.This option is ignored if log_config_append is set. |
| boolean value | Use JSON formatting for logging. This option is ignored if log_config_append is set. |
| boolean value | Use syslog for logging. Existing syslog format is DEPRECATED and will be changed later to honor RFC5424. This option is ignored if log_config_append is set. |
| boolean value | This option makes direct connections dynamic or static. It makes sense only with use_router_proxy=False which means to use direct connections for direct message types (ignored otherwise). |
| boolean value | Use PUB/SUB pattern for fanout methods. PUB/SUB always uses proxy. |
| boolean value | Use ROUTER remote proxy. |
| boolean value | Log output to standard error. This option is ignored if log_config_append is set. |
| boolean value | Uses logging handler designed to watch file system. When log file is moved or removed this handler will open a new log file with specified path instantaneously. It makes sense only if log_file option is specified and Linux platform is used. This option is ignored if log_config_append is set. |
| integer value | How many additional connections to a host will be made for failover reasons. This option is actual only in dynamic connections mode. |
| boolean value | This option configures round-robin mode in zmq socket. True means not keeping a queue when server side disconnects. False means to keep queue and messages even if server is disconnected, when the server appears we send all accumulated messages to it. |
| integer value | Number of seconds to wait before all pending messages will be sent after closing a socket. The default value of -1 specifies an infinite linger period. The value of 0 specifies no linger period. Pending messages shall be discarded immediately when the socket is closed. Positive values specify an upper bound for the linger period. |
| integer value | Expiration timeout in seconds of a name service record about existing target ( < 0 means no timeout). |
| integer value | Update period in seconds of a name service record about existing target. |
| integer value | Enable/disable TCP keepalive (KA) mechanism. The default value of -1 (or any other negative value) means to skip any overrides and leave it to OS default; 0 and 1 (or any other positive value) mean to disable and enable the option respectively. |
| integer value | The number of retransmissions to be carried out before declaring that remote end is not available. The default value of -1 (or any other negative value and 0) means to skip any overrides and leave it to OS default. |
| integer value | The duration between two keepalive transmissions in idle condition. The unit is platform dependent, for example, seconds in Linux, milliseconds in Windows etc. The default value of -1 (or any other negative value and 0) means to skip any overrides and leave it to OS default. |
| integer value | The duration between two successive keepalive retransmissions, if acknowledgement to the previous keepalive transmission is not received. The unit is platform dependent, for example, seconds in Linux, milliseconds in Windows etc. The default value of -1 (or any other negative value and 0) means to skip any overrides and leave it to OS default. |
9.1.2. application_credential
The following table outlines the options available under the [application_credential]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| integer value | Time to cache application credential data in seconds. This has no effect unless global caching is enabled. |
| boolean value | Toggle for application credential caching. This has no effect unless global caching is enabled. |
| string value |
Entry point for the application credential backend driver in the |
| integer value | Maximum number of application credentials a user is permitted to create. A value of -1 means unlimited. If a limit is not set, users are permitted to create application credentials at will, which could lead to bloat in the keystone database or open keystone to a DoS attack. |
9.1.3. assignment
The following table outlines the options available under the [assignment]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value |
Entry point for the assignment backend driver (where role assignments are stored) in the |
| list value | A list of role names which are prohibited from being an implied role. |
9.1.4. auth
The following table outlines the options available under the [auth]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value |
Entry point for the application_credential auth plugin module in the |
| string value |
Entry point for the external ( |
| string value |
Entry point for the mapped auth plugin module in the |
| list value |
Allowed authentication methods. Note: You should disable the |
| string value |
Entry point for the OAuth 1.0a auth plugin module in the |
| string value |
Entry point for the password auth plugin module in the |
| string value |
Entry point for the token auth plugin module in the |
9.1.5. cache
The following table outlines the options available under the [cache]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value | Cache backend module. For eventlet-based or environments with hundreds of threaded servers, Memcache with pooling (oslo_cache.memcache_pool) is recommended. For environments with less than 100 threaded servers, Memcached (dogpile.cache.memcached) or Redis (dogpile.cache.redis) is recommended. Test environments with a single instance of the server can use the dogpile.cache.memory backend. |
| multi valued | Arguments supplied to the backend module. Specify this option once per argument to be passed to the dogpile.cache backend. Example format: "<argname>:<value>". |
| string value | Prefix for building the configuration dictionary for the cache region. This should not need to be changed unless there is another dogpile.cache region with the same configuration name. |
| boolean value | Extra debugging from the cache backend (cache keys, get/set/delete/etc calls). This is only really useful if you need to see the specific cache-backend get/set/delete calls with the keys/values. Typically this should be left set to false. |
| boolean value | Global toggle for caching. |
| integer value | Default TTL, in seconds, for any cached item in the dogpile.cache region. This applies to any cached method that doesn’t have an explicit cache expiration time defined for it. |
| integer value | Number of seconds memcached server is considered dead before it is tried again. (dogpile.cache.memcache and oslo_cache.memcache_pool backends only). |
| integer value | Number of seconds that an operation will wait to get a memcache client connection. |
| integer value | Max total number of open connections to every memcached server. (oslo_cache.memcache_pool backend only). |
| integer value | Number of seconds a connection to memcached is held unused in the pool before it is closed. (oslo_cache.memcache_pool backend only). |
| list value | Memcache servers in the format of "host:port". (dogpile.cache.memcache and oslo_cache.memcache_pool backends only). |
| integer value | Timeout in seconds for every call to a server. (dogpile.cache.memcache and oslo_cache.memcache_pool backends only). |
| list value | Proxy classes to import that will affect the way the dogpile.cache backend functions. See the dogpile.cache documentation on changing-backend-behavior. |
9.1.6. catalog
The following table outlines the options available under the [catalog]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| integer value | Time to cache catalog data (in seconds). This has no effect unless global and catalog caching are both enabled. Catalog data (services, endpoints, etc.) typically does not change frequently, and so a longer duration than the global default may be desirable. |
| boolean value | Toggle for catalog caching. This has no effect unless global caching is enabled. In a typical deployment, there is no reason to disable this. |
| string value |
Entry point for the catalog driver in the |
| integer value | Maximum number of entities that will be returned in a catalog collection. There is typically no reason to set this, as it would be unusual for a deployment to have enough services or endpoints to exceed a reasonable limit. |
| string value |
Absolute path to the file used for the templated catalog backend. This option is only used if the |
9.1.7. cors
The following table outlines the options available under the [cors]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| boolean value | Indicate that the actual request can include user credentials |
| list value | Indicate which header field names may be used during the actual request. |
| list value | Indicate which methods can be used during the actual request. |
| list value | Indicate whether this resource may be shared with the domain received in the requests "origin" header. Format: "<protocol>://<host>[:<port>]", no trailing slash. Example: https://horizon.example.com |
| list value | Indicate which headers are safe to expose to the API. Defaults to HTTP Simple Headers. |
| integer value | Maximum cache age of CORS preflight requests. |
9.1.8. credential
The following table outlines the options available under the [credential]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value |
Entry point for the credential backend driver in the |
| string value | Directory containing Fernet keys used to encrypt and decrypt credentials stored in the credential backend. Fernet keys used to encrypt credentials have no relationship to Fernet keys used to encrypt Fernet tokens. Both sets of keys should be managed separately and require different rotation policies. Do not share this repository with the repository used to manage keys for Fernet tokens. |
| string value |
Entry point for credential encryption and decryption operations in the |
9.1.9. database
The following table outlines the options available under the [database]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value | The back end to use for the database. |
| string value | The SQLAlchemy connection string to use to connect to the database. |
| integer value | Verbosity of SQL debugging information: 0=None, 100=Everything. |
| integer value | Connections which have been present in the connection pool longer than this number of seconds will be replaced with a new one the next time they are checked out from the pool. |
| boolean value | Add Python stack traces to SQL as comment strings. |
| boolean value | If True, increases the interval between retries of a database operation up to db_max_retry_interval. |
| integer value | Maximum retries in case of connection error or deadlock error before error is raised. Set to -1 to specify an infinite retry count. |
| integer value | If db_inc_retry_interval is set, the maximum seconds between retries of a database operation. |
| integer value | Seconds between retries of a database transaction. |
| integer value | If set, use this value for max_overflow with SQLAlchemy. |
| integer value | Maximum number of SQL connections to keep open in a pool. Setting a value of 0 indicates no limit. |
| integer value | Maximum number of database connection retries during startup. Set to -1 to specify an infinite retry count. |
| integer value | Minimum number of SQL connections to keep open in a pool. |
| boolean value | If True, transparently enables support for handling MySQL Cluster (NDB). |
| string value | The SQL mode to be used for MySQL sessions. This option, including the default, overrides any server-set SQL mode. To use whatever SQL mode is set by the server configuration, set this to no value. Example: mysql_sql_mode= |
| integer value | If set, use this value for pool_timeout with SQLAlchemy. |
| integer value | Interval between retries of opening a SQL connection. |
| string value | The SQLAlchemy connection string to use to connect to the slave database. |
| boolean value | If True, SQLite uses synchronous mode. |
| boolean value | Enable the experimental use of database reconnect on connection lost. |
9.1.10. domain_config
The following table outlines the options available under the [domain_config]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| integer value |
Time-to-live (TTL, in seconds) to cache domain-specific configuration data. This has no effect unless |
| boolean value | Toggle for caching of the domain-specific configuration backend. This has no effect unless global caching is enabled. There is normally no reason to disable this. |
| string value |
Entry point for the domain-specific configuration driver in the |
9.1.11. endpoint_filter
The following table outlines the options available under the [endpoint_filter]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value |
Entry point for the endpoint filter driver in the |
| boolean value | This controls keystone’s behavior if the configured endpoint filters do not result in any endpoints for a user + project pair (and therefore a potentially empty service catalog). If set to true, keystone will return the entire service catalog. If set to false, keystone will return an empty service catalog. |
9.1.12. endpoint_policy
The following table outlines the options available under the [endpoint_policy]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value |
Entry point for the endpoint policy driver in the |
9.1.13. eventlet_server
The following table outlines the options available under the [eventlet_server]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| unknown value | The IP address of the network interface for the admin service to listen on. |
| port value | The port number for the admin service to listen on. |
| unknown value | The IP address of the network interface for the public service to listen on. |
| port value | The port number for the public service to listen on. |
9.1.14. federation
The following table outlines the options available under the [federation]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
`assertion_prefix = ` | string value | Prefix to use when filtering environment variable names for federated assertions. Matched variables are passed into the federated mapping engine. |
| boolean value | Toggle for federation caching. This has no effect unless global caching is enabled. There is typically no reason to disable this. |
| string value |
Entry point for the federation backend driver in the |
| string value | An arbitrary domain name that is reserved to allow federated ephemeral users to have a domain concept. Note that an admin will not be able to create a domain with this name or update an existing domain to this name. You are not advised to change this value unless you really have to. |
| string value |
Value to be used to obtain the entity ID of the Identity Provider from the environment. For |
| string value | Absolute path to an HTML file used as a Single Sign-On callback handler. This page is expected to redirect the user from keystone back to a trusted dashboard host, by form encoding a token in a POST request. Keystone’s default value should be sufficient for most deployments. |
| multi valued | A list of trusted dashboard hosts. Before accepting a Single Sign-On request to return a token, the origin host must be a member of this list. This configuration option may be repeated for multiple values. You must set this in order to use web-based SSO flows. For example: trusted_dashboard=https://acme.example.com/auth/websso trusted_dashboard=https://beta.example.com/auth/websso |
9.1.15. fernet_tokens
The following table outlines the options available under the [fernet_tokens]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value |
Directory containing Fernet token keys. This directory must exist before using |
| integer value |
This controls how many keys are held in rotation by |
9.1.16. healthcheck
The following table outlines the options available under the [healthcheck]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| list value | Additional backends that can perform health checks and report that information back as part of a request. |
| boolean value | Show more detailed information as part of the response |
| string value | Check the presence of a file to determine if an application is running on a port. Used by DisableByFileHealthcheck plugin. |
| list value | Check the presence of a file based on a port to determine if an application is running on a port. Expects a "port:path" list of strings. Used by DisableByFilesPortsHealthcheck plugin. |
| string value | The path to respond to healtcheck requests on. |
9.1.17. identity
The following table outlines the options available under the [identity]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| integer value | Time to cache identity data (in seconds). This has no effect unless global and identity caching are enabled. |
| boolean value | Toggle for identity caching. This has no effect unless global caching is enabled. There is typically no reason to disable this. |
| string value |
This references the domain to use for all Identity API v2 requests (which are not aware of domains). A domain with this ID can optionally be created for you by |
| string value |
Absolute path where keystone should locate domain-specific |
| boolean value |
By default, domain-specific configuration data is read from files in the directory identified by |
| boolean value |
A subset (or all) of domains can have their own identity driver, each with their own partial configuration options, stored in either the resource backend or in a file in a domain configuration directory (depending on the setting of |
| string value |
Entry point for the identity backend driver in the |
| integer value | Maximum number of entities that will be returned in an identity collection. |
| integer value | Maximum allowed length for user passwords. Decrease this value to improve performance. Changing this value does not effect existing passwords. |
| string value | The password hashing algorithm to use for passwords stored within keystone. |
| integer value |
This option represents a trade off between security and performance. Higher values lead to slower performance, but higher security. Changing this option will only affect newly created passwords as existing password hashes already have a fixed number of rounds applied, so it is safe to tune this option in a running cluster. The default for bcrypt is 12, must be between 4 and 31, inclusive. The default for scrypt is 16, must be within |
| integer value | Number of bytes to use in scrypt and pbkfd2_sha512 hashing salt. Default for scrypt is 16 bytes. Default for pbkfd2_sha512 is 16 bytes. Limited to a maximum of 96 bytes due to the size of the column used to store password hashes. |
| integer value |
Optional block size to pass to scrypt hash function (the |
| integer value |
Optional parallelism to pass to scrypt hash function (the |
9.1.18. identity_mapping
The following table outlines the options available under the [identity_mapping]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| boolean value |
The format of user and group IDs changed in Juno for backends that do not generate UUIDs (for example, LDAP), with keystone providing a hash mapping to the underlying attribute in LDAP. By default this mapping is disabled, which ensures that existing IDs will not change. Even when the mapping is enabled by using domain-specific drivers ( |
| string value |
Entry point for the identity mapping backend driver in the |
| string value |
Entry point for the public ID generator for user and group entities in the |
9.1.19. ldap
The following table outlines the options available under the [ldap]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value |
The LDAP dereferencing option to use for queries involving aliases. A value of |
| integer value |
The maximum end user authentication connection lifetime to the LDAP server in seconds. When this lifetime is exceeded, the connection will be unbound and removed from the connection pool. This option has no effect unless |
| integer value |
The size of the connection pool to use for end user authentication. This option has no effect unless |
| boolean value | Sets keystone’s referral chasing behavior across directory partitions. If left unset, the system’s default behavior will be used. |
| integer value |
The connection timeout to use with the LDAP server. A value of |
| integer value | Sets the LDAP debugging level for LDAP calls. A value of 0 means that debugging is not enabled. This value is a bitmask, consult your LDAP documentation for possible values. |
| boolean value | If enabled, group queries will use Active Directory specific filters for nested groups. |
| list value |
A list of LDAP attribute to keystone group attribute pairs used for mapping additional attributes to groups in keystone. The expected format is |
| list value | List of group attributes to ignore on create and update. or whether a specific group attribute should be filtered for list or show group. |
| string value | The LDAP attribute mapped to group descriptions in keystone. |
| string value | The LDAP search filter to use for groups. |
| string value | The LDAP attribute mapped to group IDs in keystone. This must NOT be a multivalued attribute. Group IDs are expected to be globally unique across keystone domains and URL-safe. |
| string value | The LDAP attribute used to indicate that a user is a member of the group. |
| boolean value |
Enable this option if the members of the group object class are keystone user IDs rather than LDAP DNs. This is the case when using |
| string value | The LDAP attribute mapped to group names in keystone. Group names are expected to be unique only within a keystone domain and are not expected to be URL-safe. |
| string value |
The LDAP object class to use for groups. If setting this option to |
| string value |
The search base to use for groups. Defaults to the |
| integer value |
Defines the maximum number of results per page that keystone should request from the LDAP server when listing objects. A value of zero ( |
| string value | The password of the administrator bind DN to use when querying the LDAP server, if your LDAP server requires it. |
| integer value |
The maximum connection lifetime to the LDAP server in seconds. When this lifetime is exceeded, the connection will be unbound and removed from the connection pool. This option has no effect unless |
| integer value |
The connection timeout to use when pooling LDAP connections. A value of |
| floating point value |
The number of seconds to wait before attempting to reconnect to the LDAP server. This option has no effect unless |
| integer value |
The maximum number of times to attempt reconnecting to the LDAP server before aborting. A value of zero prevents retries. This option has no effect unless |
| integer value |
The size of the LDAP connection pool. This option has no effect unless |
| string value |
The search scope which defines how deep to search within the search base. A value of |
| string value |
The default LDAP server suffix to use, if a DN is not defined via either |
| string value |
An absolute path to a CA certificate directory to use when communicating with LDAP servers. There is no reason to set this option if you’ve also set |
| string value |
An absolute path to a CA certificate file to use when communicating with LDAP servers. This option will take precedence over |
| string value |
Specifies which checks to perform against client certificates on incoming TLS sessions. If set to |
| string value | URL(s) for connecting to the LDAP server. Multiple LDAP URLs may be specified as a comma separated string. The first URL to successfully bind is used for the connection. |
| boolean value | Enable LDAP connection pooling for end user authentication. There is typically no reason to disable this. |
| boolean value | Enable LDAP connection pooling for queries to the LDAP server. There is typically no reason to disable this. |
| boolean value |
Enable TLS when communicating with LDAP servers. You should also set the |
| string value | The user name of the administrator bind DN to use when querying the LDAP server, if your LDAP server requires it. |
| list value |
A list of LDAP attribute to keystone user attribute pairs used for mapping additional attributes to users in keystone. The expected format is |
| list value | List of user attributes to ignore on create and update, or whether a specific user attribute should be filtered for list or show user. |
| string value | The LDAP attribute mapped to a user’s default_project_id in keystone. This is most commonly used when keystone has write access to LDAP. |
| string value | The LDAP attribute mapped to user descriptions in keystone. |
| string value |
The LDAP attribute mapped to the user enabled attribute in keystone. If setting this option to |
| string value |
The default value to enable users. This should match an appropriate integer value if the LDAP server uses non-boolean (bitmask) values to indicate if a user is enabled or disabled. If this is not set to |
| boolean value |
If enabled, keystone uses an alternative method to determine if a user is enabled or not by checking if they are a member of the group defined by the |
| string value |
DN of the group entry to hold enabled users when using enabled emulation. Setting this option has no effect unless |
| boolean value |
Use the |
| boolean value |
Logically negate the boolean value of the enabled attribute obtained from the LDAP server. Some LDAP servers use a boolean lock attribute where "true" means an account is disabled. Setting |
| integer value |
Bitmask integer to select which bit indicates the enabled value if the LDAP server represents "enabled" as a bit on an integer rather than as a discrete boolean. A value of |
| string value | The LDAP search filter to use for users. |
| string value | The LDAP attribute mapped to user IDs in keystone. This must NOT be a multivalued attribute. User IDs are expected to be globally unique across keystone domains and URL-safe. |
| string value | The LDAP attribute mapped to user emails in keystone. |
| string value | The LDAP attribute mapped to user names in keystone. User names are expected to be unique only within a keystone domain and are not expected to be URL-safe. |
| string value | The LDAP object class to use for users. |
| string value | The LDAP attribute mapped to user passwords in keystone. |
| string value |
The search base to use for users. Defaults to the |
9.1.20. matchmaker_redis
The following table outlines the options available under the [matchmaker_redis]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| integer value | Time in ms to wait before the transaction is killed. |
| string value | Host to locate redis. |
`password = ` | string value | Password for Redis server (optional). |
| port value | Use this port to connect to redis host. |
| string value | Redis replica set name. |
| list value | List of Redis Sentinel hosts (fault tolerance mode), e.g., [host:port, host1:port … ] |
| integer value | Timeout in ms on blocking socket operations. |
| integer value | Time in ms to wait between connection attempts. |
9.1.21. memcache
The following table outlines the options available under the [memcache]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| integer value | Number of seconds memcached server is considered dead before it is tried again. This is used by the key value store system. |
| integer value | Number of seconds that an operation will wait to get a memcache client connection. This is used by the key value store system. |
| integer value | Max total number of open connections to every memcached server. This is used by the key value store system. |
| integer value | Number of seconds a connection to memcached is held unused in the pool before it is closed. This is used by the key value store system. |
| integer value | Timeout in seconds for every call to a server. This is used by the key value store system. |
9.1.22. oauth1
The following table outlines the options available under the [oauth1]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| integer value | Number of seconds for the OAuth Access Token to remain valid after being created. This is the amount of time the consumer has to interact with the service provider (which is typically keystone). Setting this option to zero means that access tokens will last forever. |
| string value |
Entry point for the OAuth backend driver in the |
| integer value | Number of seconds for the OAuth Request Token to remain valid after being created. This is the amount of time the user has to authorize the token. Setting this option to zero means that request tokens will last forever. |
9.1.23. oslo_messaging_amqp
The following table outlines the options available under the [oslo_messaging_amqp]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value | Indicates the addressing mode used by the driver. Permitted values: legacy - use legacy non-routable addressing routable - use routable addresses dynamic - use legacy addresses if the message bus does not support routing otherwise use routable addressing |
| boolean value | Accept clients using either SSL or plain TCP |
| string value | Appended to the address prefix when sending to a group of consumers. Used by the message bus to identify messages that should be delivered in a round-robin fashion across consumers. |
| string value | address prefix used when broadcasting to all servers |
| integer value | Increase the connection_retry_interval by this many seconds after each unsuccessful failover attempt. |
| integer value | Seconds to pause before attempting to re-connect. |
| integer value | Maximum limit for connection_retry_interval + connection_retry_backoff |
| string value | Name for the AMQP container. must be globally unique. Defaults to a generated UUID |
| string value | Exchange name used in notification addresses. Exchange name resolution precedence: Target.exchange if set else default_notification_exchange if set else control_exchange if set else notify |
| integer value | The deadline for a sent notification message delivery. Only used when caller does not provide a timeout expiry. |
| integer value | The maximum number of attempts to re-send a reply message which failed due to a recoverable error. |
| integer value | The deadline for an rpc reply message delivery. |
| string value | Exchange name used in RPC addresses. Exchange name resolution precedence: Target.exchange if set else default_rpc_exchange if set else control_exchange if set else rpc |
| integer value | The deadline for an rpc cast or call message delivery. Only used when caller does not provide a timeout expiry. |
| integer value | The duration to schedule a purge of idle sender links. Detach link after expiry. |
| string value | address prefix when sending to any server in group |
| integer value | Timeout for inactive connections (in seconds) |
| integer value | Time to pause between re-connecting an AMQP 1.0 link that failed due to a recoverable error. |
| string value | Appended to the address prefix when sending a fanout message. Used by the message bus to identify fanout messages. |
| string value | Address prefix for all generated Notification addresses |
| integer value | Window size for incoming Notification messages |
`password = ` | string value | Password for message broker authentication |
| multi valued | Send messages of this type pre-settled. Pre-settled messages will not receive acknowledgement from the peer. Note well: pre-settled messages may be silently discarded if the delivery fails. Permitted values: rpc-call - send RPC Calls pre-settled rpc-reply- send RPC Replies pre-settled rpc-cast - Send RPC Casts pre-settled notify - Send Notifications pre-settled |
| boolean value | Enable virtual host support for those message buses that do not natively support virtual hosting (such as qpidd). When set to true the virtual host name will be added to all message bus addresses, effectively creating a private subnet per virtual host. Set to False if the message bus supports virtual hosting using the hostname field in the AMQP 1.0 Open performative as the name of the virtual host. |
| integer value | Window size for incoming RPC Reply messages. |
| string value | Address prefix for all generated RPC addresses |
| integer value | Window size for incoming RPC Request messages |
`sasl_config_dir = ` | string value | Path to directory that contains the SASL configuration |
`sasl_config_name = ` | string value | Name of configuration file (without .conf suffix) |
`sasl_default_realm = ` | string value | SASL realm to use if no realm present in username |
`sasl_mechanisms = ` | string value | Space separated list of acceptable SASL mechanisms |
| string value | address prefix used when sending to a specific server |
| boolean value | Attempt to connect via SSL. If no other ssl-related parameters are given, it will use the system’s CA-bundle to verify the server’s certificate. |
`ssl_ca_file = ` | string value | CA certificate PEM file used to verify the server’s certificate |
`ssl_cert_file = ` | string value | Self-identifying certificate PEM file for client authentication |
`ssl_key_file = ` | string value | Private key PEM file used to sign ssl_cert_file certificate (optional) |
| string value | Password for decrypting ssl_key_file (if encrypted) |
| boolean value | By default SSL checks that the name in the server’s certificate matches the hostname in the transport_url. In some configurations it may be preferable to use the virtual hostname instead, for example if the server uses the Server Name Indication TLS extension (rfc6066) to provide a certificate per virtual host. Set ssl_verify_vhost to True if the server’s SSL certificate uses the virtual host name instead of the DNS name. |
| boolean value | Debug: dump AMQP frames to stdout |
| string value | Appended to the address prefix when sending to a particular RPC/Notification server. Used by the message bus to identify messages sent to a single destination. |
`username = ` | string value | User name for message broker authentication |
9.1.24. oslo_messaging_kafka
The following table outlines the options available under the [oslo_messaging_kafka]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| integer value | The pool size limit for connections expiration policy |
| integer value | The time-to-live in sec of idle connections in the pool |
| string value | Group id for Kafka consumer. Consumers in one group will coordinate message consumption |
| floating point value | Default timeout(s) for Kafka consumers |
| string value | Default Kafka broker Host |
| port value | Default Kafka broker Port |
| integer value | Max fetch bytes of Kafka consumer |
| integer value | Pool Size for Kafka Consumers |
| integer value | Size of batch for the producer async send |
| floating point value | Upper bound on the delay for KafkaProducer batching in seconds |
9.1.25. oslo_messaging_notifications
The following table outlines the options available under the [oslo_messaging_notifications]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| multi valued | The Drivers(s) to handle sending notifications. Possible values are messaging, messagingv2, routing, log, test, noop |
| integer value | The maximum number of attempts to re-send a notification message which failed to be delivered due to a recoverable error. 0 - No retry, -1 - indefinite |
| list value | AMQP topic used for OpenStack notifications. |
| string value | A URL representing the messaging driver to use for notifications. If not set, we fall back to the same configuration used for RPC. |
9.1.26. oslo_messaging_rabbit
The following table outlines the options available under the [oslo_messaging_rabbit]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| boolean value | Auto-delete queues in AMQP. |
| boolean value | Use durable queues in AMQP. |
| integer value | Maximum number of channels to allow |
| string value | Connection factory implementation |
| string value | Exchange name for sending notifications |
| integer value | Reconnecting retry count in case of connectivity problem during sending notification, -1 means infinite retry. |
| string value | Exchange name for sending RPC messages |
| integer value | Reconnecting retry count in case of connectivity problem during sending RPC message, -1 means infinite retry. If actual retry attempts in not 0 the rpc request could be processed more than one time |
| string value | Default serialization mechanism for serializing/deserializing outgoing/incoming messages |
| boolean value | Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake |
| integer value | The maximum byte size for an AMQP frame |
| integer value | How often to send heartbeats for consumer’s connections |
| integer value | How often times during the heartbeat_timeout_threshold we check the heartbeat. |
| integer value | Number of seconds after which the Rabbit broker is considered down if heartbeat’s keep-alive fails (0 disable the heartbeat). EXPERIMENTAL |
| floating point value | Set delay for reconnection to some host which has connection error |
| string value | EXPERIMENTAL: Possible values are: gzip, bz2. If not set compression will not be used. This option may not be available in future versions. |
| string value | Determines how the next RabbitMQ node is chosen in case the one we are currently connected to becomes unavailable. Takes effect only if more than one RabbitMQ node is provided in config. |
| integer value | How long to wait a missing client before abandoning to send it its replies. This value should not be longer than rpc_response_timeout. |
| floating point value | How long to wait before reconnecting in response to an AMQP consumer cancel notification. |
| integer value | Max number of not acknowledged message which RabbitMQ can send to notification listener. |
| boolean value | Persist notification messages. |
| floating point value | Reconnecting retry delay in case of connectivity problem during sending notification message |
| integer value |
Maximum number of connections to create above |
| integer value | Maximum number of connections to keep queued. |
| integer value | Lifetime of a connection (since creation) in seconds or None for no recycling. Expired connections are closed on acquire. |
| integer value | Threshold at which inactive (since release) connections are considered stale in seconds or None for no staleness. Stale connections are closed on acquire. |
| integer value | Default number of seconds to wait for a connections to available |
| boolean value | Try to use HA queues in RabbitMQ (x-ha-policy: all). If you change this option, you must wipe the RabbitMQ database. In RabbitMQ 3.0, queue mirroring is no longer controlled by the x-ha-policy argument when declaring a queue. If you just want to make sure that all queues (except those with auto-generated names) are mirrored across all nodes, run: "rabbitmqctl set_policy HA ^(?!amq\.).* {"ha-mode": "all"} " |
| string value | The RabbitMQ broker address where a single node is used. |
| list value | RabbitMQ HA cluster host:port pairs. |
| integer value | Maximum interval of RabbitMQ connection retries. Default is 30 seconds. |
| string value | The RabbitMQ login method. |
| integer value | Maximum number of RabbitMQ connection retries. Default is 0 (infinite retry count). |
| string value | The RabbitMQ password. |
| port value | The RabbitMQ broker port where a single node is used. |
| integer value | Specifies the number of messages to prefetch. Setting to zero allows unlimited messages. |
| integer value | How long to backoff for between retries when connecting to RabbitMQ. |
| integer value | How frequently to retry connecting with RabbitMQ. |
| integer value | Positive integer representing duration in seconds for queue TTL (x-expires). Queues which are unused for the duration of the TTL are automatically deleted. The parameter affects only reply and fanout queues. |
| string value | The RabbitMQ userid. |
| string value | The RabbitMQ virtual host. |
| integer value | Max number of not acknowledged message which RabbitMQ can send to rpc listener. |
| integer value | Time to live for rpc queues without consumers in seconds. |
| string value | Exchange name for receiving RPC replies |
| integer value | Max number of not acknowledged message which RabbitMQ can send to rpc reply listener. |
| integer value | Reconnecting retry count in case of connectivity problem during sending reply. -1 means infinite retry during rpc_timeout |
| floating point value | Reconnecting retry delay in case of connectivity problem during sending reply. |
| floating point value | Reconnecting retry delay in case of connectivity problem during sending RPC message |
| floating point value | Set socket timeout in seconds for connection’s socket |
| boolean value | Enable SSL |
`ssl_ca_file = ` | string value | SSL certification authority file (valid only if SSL enabled). |
`ssl_cert_file = ` | string value | SSL cert file (valid only if SSL enabled). |
`ssl_key_file = ` | string value | SSL key file (valid only if SSL enabled). |
| dict value | Arguments passed to ssl.wrap_socket |
`ssl_version = ` | string value | SSL version to use (valid only if SSL enabled). Valid values are TLSv1 and SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some distributions. |
| floating point value | Set TCP_USER_TIMEOUT in seconds for connection’s socket |
9.1.27. oslo_messaging_zmq
The following table outlines the options available under the [oslo_messaging_zmq]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| integer value | Number of seconds to wait for an ack from a cast/call. After each retry attempt this timeout is multiplied by some specified multiplier. |
| integer value | Number to multiply base ack timeout by after each retry attempt. |
| integer value | Expiration timeout in seconds of a sent/received message after which it is not tracked anymore by a client/server. |
| integer value | The default number of seconds that poll should wait. Poll raises timeout exception when timeout expired. |
| integer value | Default number of message sending attempts in case of any problems occurred: positive value N means at most N retries, 0 means no retries, None or -1 (or any other negative values) mean to retry forever. This option is used only if acknowledgments are enabled. |
| integer value | Maximum number of (green) threads to work concurrently. |
| boolean value | Wait for message acknowledgements from receivers. This mechanism works only via proxy without PUB/SUB. |
| string value | ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP. The "host" option should point or resolve to this address. |
| integer value | Number of retries to find free port number before fail with ZMQBindError. |
| integer value | Number of ZeroMQ contexts, defaults to 1. |
| string value | Name of this node. Must be a valid hostname, FQDN, or IP address. Must match "host" option, if running Nova. |
| string value | Directory for holding IPC sockets. |
| string value | MatchMaker driver. |
| integer value | Maximal port number for random ports range. |
| port value | Minimal port number for random ports range. |
| string value | Default serialization mechanism for serializing/deserializing outgoing/incoming messages |
| integer value | Maximum number of ingress messages to locally buffer per topic. Default is unlimited. |
| list value | List of publisher hosts SubConsumer can subscribe on. This option has higher priority then the default publishers list taken from the matchmaker. |
| boolean value | This option makes direct connections dynamic or static. It makes sense only with use_router_proxy=False which means to use direct connections for direct message types (ignored otherwise). |
| boolean value | Use PUB/SUB pattern for fanout methods. PUB/SUB always uses proxy. |
| boolean value | Use ROUTER remote proxy. |
| integer value | How many additional connections to a host will be made for failover reasons. This option is actual only in dynamic connections mode. |
| boolean value | This option configures round-robin mode in zmq socket. True means not keeping a queue when server side disconnects. False means to keep queue and messages even if server is disconnected, when the server appears we send all accumulated messages to it. |
| integer value | Number of seconds to wait before all pending messages will be sent after closing a socket. The default value of -1 specifies an infinite linger period. The value of 0 specifies no linger period. Pending messages shall be discarded immediately when the socket is closed. Positive values specify an upper bound for the linger period. |
| integer value | Expiration timeout in seconds of a name service record about existing target ( < 0 means no timeout). |
| integer value | Update period in seconds of a name service record about existing target. |
| integer value | Enable/disable TCP keepalive (KA) mechanism. The default value of -1 (or any other negative value) means to skip any overrides and leave it to OS default; 0 and 1 (or any other positive value) mean to disable and enable the option respectively. |
| integer value | The number of retransmissions to be carried out before declaring that remote end is not available. The default value of -1 (or any other negative value and 0) means to skip any overrides and leave it to OS default. |
| integer value | The duration between two keepalive transmissions in idle condition. The unit is platform dependent, for example, seconds in Linux, milliseconds in Windows etc. The default value of -1 (or any other negative value and 0) means to skip any overrides and leave it to OS default. |
| integer value | The duration between two successive keepalive retransmissions, if acknowledgement to the previous keepalive transmission is not received. The unit is platform dependent, for example, seconds in Linux, milliseconds in Windows etc. The default value of -1 (or any other negative value and 0) means to skip any overrides and leave it to OS default. |
9.1.28. oslo_middleware
The following table outlines the options available under the [oslo_middleware]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| boolean value | Whether the application is behind a proxy or not. This determines if the middleware should parse the headers or not. |
| integer value | The maximum body size for each request, in bytes. |
| string value | The HTTP Header that will be used to determine what the original request protocol scheme was, even if it was hidden by a SSL termination proxy. |
9.1.29. oslo_policy
The following table outlines the options available under the [oslo_policy]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| boolean value |
This option controls whether or not to enforce scope when evaluating policies. If |
| string value | Default rule. Enforced when a requested rule is not found. |
| multi valued | Directories where policy configuration files are stored. They can be relative to any directory in the search path defined by the config_dir option, or absolute paths. The file defined by policy_file must exist for these directories to be searched. Missing or empty directories are ignored. |
| string value | The file that defines policies. |
| string value | Content Type to send and receive data for REST based policy check |
| string value | Absolute path to ca cert file for REST based policy check |
| string value | Absolute path to client cert for REST based policy check |
| string value | Absolute path client key file REST based policy check |
| boolean value | server identity verification for REST based policy check |
9.1.30. paste_deploy
The following table outlines the options available under the [paste_deploy]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value | Name of (or absolute path to) the Paste Deploy configuration file that composes middleware and the keystone application itself into actual WSGI entry points. See http://pythonpaste.org/deploy/ for additional documentation on the file’s format. |
9.1.31. policy
The following table outlines the options available under the [policy]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value |
Entry point for the policy backend driver in the |
| integer value | Maximum number of entities that will be returned in a policy collection. |
9.1.32. profiler
The following table outlines the options available under the [profiler]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value | Connection string for a notifier backend. Default value is messaging:// which sets the notifier to oslo_messaging. Examples of possible values:
|
| boolean value | Enables the profiling for all services on this node. Default value is False (fully disable the profiling feature). Possible values:
|
| string value | Document type for notification indexing in elasticsearch. |
| integer value | Elasticsearch splits large requests in batches. This parameter defines maximum size of each batch (for example: es_scroll_size=10000). |
| string value | This parameter is a time value parameter (for example: es_scroll_time=2m), indicating for how long the nodes that participate in the search will maintain relevant resources in order to continue and support it. |
| string value | Secret key(s) to use for encrypting context data for performance profiling. This string value should have the following format: <key1>[,<key2>,…<keyn>], where each key is some random string. A user who triggers the profiling via the REST API has to set one of these keys in the headers of the REST API call to include profiling results of this node for this particular project. Both "enabled" flag and "hmac_keys" config options should be set to enable profiling. Also, to generate correct profiling information across all services at least one key needs to be consistent between OpenStack projects. This ensures it can be used from client side to generate the trace, containing information from all possible resources. |
| string value | Redissentinel uses a service name to identify a master redis service. This parameter defines the name (for example: sentinal_service_name=mymaster). |
| floating point value | Redissentinel provides a timeout option on the connections. This parameter defines that timeout (for example: socket_timeout=0.1). |
| boolean value | Enables SQL requests profiling in services. Default value is False (SQL requests won’t be traced). Possible values:
|
9.1.33. resource
The following table outlines the options available under the [resource]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value |
Name of the domain that owns the |
| string value |
This is a special project which represents cloud-level administrator privileges across services. Tokens scoped to this project will contain a true |
| integer value | Time to cache resource data in seconds. This has no effect unless global caching is enabled. |
| boolean value | Toggle for resource caching. This has no effect unless global caching is enabled. |
| string value |
This controls whether the names of domains are restricted from containing URL-reserved characters. If set to |
| string value |
Entry point for the resource driver in the |
| integer value | Maximum number of entities that will be returned in a resource collection. |
| string value |
This controls whether the names of projects are restricted from containing URL-reserved characters. If set to |
9.1.34. revoke
The following table outlines the options available under the [revoke]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| integer value |
Time to cache the revocation list and the revocation events (in seconds). This has no effect unless global and |
| boolean value | Toggle for revocation event caching. This has no effect unless global caching is enabled. |
| string value |
Entry point for the token revocation backend driver in the |
| integer value | The number of seconds after a token has expired before a corresponding revocation event may be purged from the backend. |
9.1.35. role
The following table outlines the options available under the [role]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| integer value |
Time to cache role data, in seconds. This has no effect unless both global caching and |
| boolean value | Toggle for role caching. This has no effect unless global caching is enabled. In a typical deployment, there is no reason to disable this. |
| string value |
Entry point for the role backend driver in the |
| integer value | Maximum number of entities that will be returned in a role collection. This may be useful to tune if you have a large number of discrete roles in your deployment. |
9.1.36. saml
The following table outlines the options available under the [saml]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| integer value |
Determines the lifetime for any SAML assertions generated by keystone, using |
| string value |
Absolute path to the public certificate file to use for SAML signing. The value cannot contain a comma ( |
| string value | This is the company name of the identity provider’s contact person. |
| string value | This is the email address of the identity provider’s contact person. |
| string value | This is the given name of the identity provider’s contact person. |
| string value | This is the surname of the identity provider’s contact person. |
| string value | This is the telephone number of the identity provider’s contact person. |
| string value | This is the type of contact that best describes the identity provider’s contact person. |
| uri value |
This is the unique entity identifier of the identity provider (keystone) to use when generating SAML assertions. This value is required to generate identity provider metadata and must be a URI (a URL is recommended). For example: |
| string value | This is the language used by the identity provider’s organization. |
| string value |
Absolute path to the identity provider metadata file. This file should be generated with the |
| string value | This is the name of the identity provider’s organization to be displayed. |
| string value | This is the name of the identity provider’s organization. |
| uri value | This is the URL of the identity provider’s organization. The URL referenced here should be useful to humans. |
| uri value |
This is the single sign-on (SSO) service location of the identity provider which accepts HTTP POST requests. A value is required to generate identity provider metadata. For example: |
| string value |
Absolute path to the private key file to use for SAML signing. The value cannot contain a comma ( |
| string value | The prefix of the RelayState SAML attribute to use when generating enhanced client and proxy (ECP) assertions. In a typical deployment, there is no reason to change this value. |
| string value |
Name of, or absolute path to, the binary to be used for XML signing. Although only the XML Security Library ( |
9.1.37. security_compliance
The following table outlines the options available under the [security_compliance]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| boolean value |
Enabling this option requires users to change their password when the user is created, or upon administrative reset. Before accessing any services, affected users will have to change their password. To ignore this requirement for specific users, such as service users, set the |
| integer value |
The maximum number of days a user can go without authenticating before being considered "inactive" and automatically disabled (locked). This feature is disabled by default; set any value to enable it. This feature depends on the |
| integer value |
The number of seconds a user account will be locked when the maximum number of failed authentication attempts (as specified by |
| integer value |
The maximum number of times that a user can fail to authenticate before the user account is locked for the number of seconds specified by |
| integer value |
The number of days that a password must be used before the user can change it. This prevents users from changing their passwords immediately in order to wipe out their password history and reuse an old password. This feature does not prevent administrators from manually resetting passwords. It is disabled by default and allows for immediate password changes. This feature depends on the |
| integer value |
The number of days for which a password will be considered valid before requiring it to be changed. This feature is disabled by default. If enabled, new password changes will have an expiration date, however existing passwords would not be impacted. This feature depends on the |
| string value |
The regular expression used to validate password strength requirements. By default, the regular expression will match any password. The following is an example of a pattern which requires at least 1 letter, 1 digit, and have a minimum length of 7 characters: ^(?=.\d)(?=.[a-zA-Z]).{7,}$ This feature depends on the |
| string value | Describe your password regular expression here in language for humans. If a password fails to match the regular expression, the contents of this configuration variable will be returned to users to explain why their requested password was insufficient. |
| integer value |
This controls the number of previous user password iterations to keep in history, in order to enforce that newly created passwords are unique. The total number which includes the new password should not be greater or equal to this value. Setting the value to one (the default) disables this feature. Thus, to enable this feature, values must be greater than 1. This feature depends on the |
9.1.38. shadow_users
The following table outlines the options available under the [shadow_users]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value |
Entry point for the shadow users backend driver in the |
9.1.39. signing
The following table outlines the options available under the [signing]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value |
Absolute path to the public certificate authority (CA) file to use when creating self-signed certificates with |
| string value |
Absolute path to the private certificate authority (CA) key file to use when creating self-signed certificates with |
| string value |
The certificate subject to use when generating a self-signed token signing certificate. There is no reason to set this option unless you are requesting revocation lists in a non-production environment. Use a |
| string value |
Absolute path to the public certificate file to use for signing responses to revocation lists requests. Set this together with |
| integer value |
Key size (in bits) to use when generating a self-signed token signing certificate. There is no reason to set this option unless you are requesting revocation lists in a non-production environment. Use a |
| string value |
Absolute path to the private key file to use for signing responses to revocation lists requests. Set this together with |
| integer value |
The validity period (in days) to use when generating a self-signed token signing certificate. There is no reason to set this option unless you are requesting revocation lists in a non-production environment. Use a |
9.1.40. token
The following table outlines the options available under the [token]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| integer value | This controls the number of seconds that a token can be retrieved for beyond the built-in expiry time. This allows long running operations to succeed. Defaults to two days. |
| boolean value | This toggles whether scoped tokens may be re-scoped to a new project or domain, thereby preventing users from exchanging a scoped token (including those with a default project scope) for any other token. This forces users to either authenticate for unscoped tokens (and later exchange that unscoped token for tokens with a more specific scope) or to provide their credentials in every request for a scoped token to avoid re-scoping altogether. |
| list value |
This is a list of external authentication mechanisms which should add token binding metadata to tokens, such as |
| boolean value | Enable storing issued token data to token validation cache so that first token validation doesn’t actually cause full validation cycle. This option has no effect unless global caching and token caching are enabled. |
| integer value |
The number of seconds to cache token creation and validation data. This has no effect unless both global and |
| boolean value | Toggle for caching token creation and validation data. This has no effect unless global caching is enabled. |
| string value |
Entry point for the token persistence backend driver in the |
| string value |
This controls the token binding enforcement policy on tokens presented to keystone with token binding metadata (as specified by the |
| integer value |
The amount of time that a token should remain valid (in seconds). Drastically reducing this value may break "long-running" operations that involve multiple services to coordinate together, and will force users to authenticate with keystone more frequently. Drastically increasing this value will increase load on the |
| boolean value | This controls whether roles should be included with tokens that are not directly assigned to the token’s scope, but are instead linked implicitly to other role assignments. |
| string value |
Entry point for the token provider in the |
| boolean value |
This toggles support for revoking individual tokens by the token identifier and thus various token enumeration operations (such as listing all tokens issued to a specific user). These operations are used to determine the list of tokens to consider revoked. Do not disable this option if you’re using the |
9.1.41. tokenless_auth
The following table outlines the options available under the [tokenless_auth]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| string value | The name of the WSGI environment variable used to pass the issuer of the client certificate to keystone. This attribute is used as an identity provider ID for the X.509 tokenless authorization along with the protocol to look up its corresponding mapping. In a typical deployment, there is no reason to change this value. |
| string value |
The federated protocol ID used to represent X.509 tokenless authorization. This is used in combination with the value of |
| multi valued |
The list of distinguished names which identify trusted issuers of client certificates allowed to use X.509 tokenless authorization. If the option is absent then no certificates will be allowed. The format for the values of a distinguished name (DN) must be separated by a comma and contain no spaces. Furthermore, because an individual DN may contain commas, this configuration option may be repeated multiple times to represent multiple values. For example, keystone.conf would include two consecutive lines in order to trust two different DNs, such as |
9.1.42. trust
The following table outlines the options available under the [trust]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| boolean value |
Allows authorization to be redelegated from one user to another, effectively chaining trusts together. When disabled, the |
| string value |
Entry point for the trust backend driver in the |
| boolean value | Delegation and impersonation features using trusts can be optionally disabled. |
| integer value | Maximum number of times that authorization can be redelegated from one user to another in a chain of trusts. This number may be reduced further for a specific trust. |
9.1.43. unified_limit
The following table outlines the options available under the [unified_limit]
group in the /etc/keystone/keystone.conf
file.
Configuration option = Default value | Type | Description |
---|---|---|
| integer value |
Time to cache unified limit data, in seconds. This has no effect unless both global caching and |
| boolean value | Toggle for unified limit caching. This has no effect unless global caching is enabled. In a typical deployment, there is no reason to disable this. |
| string value |
Entry point for the unified limit backend driver in the |
| integer value | Maximum number of entities that will be returned in a role collection. This may be useful to tune if you have a large number of unified limits in your deployment. |