Chapter 5. Identity service

This chapter details the OpenStack Identity service configuration options.

Note

For installation prerequisites and step-by-step walkthroughs, see "Deploying OpenStack: Learning Environments (Manual Set Up)" and the "Red Hat Enterprise Linux OpenStack Platform Cloud Administrator Guide" from https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/.

1. Identity service configuration file

The Identity service is configured in the /etc/keystone/keystone.conf file.

The following tables provide a comprehensive list of the Identity service options.

Table 5.1. Description of configuration options for api

Configuration option = Default value Description
[DEFAULT]
admin_bind_host = 0.0.0.0 (StrOpt) The IP address of the network interface to for the admin service to listen on.
admin_endpoint = None (StrOpt) The base admin endpoint URL for Identity that are advertised to clients (NOTE: this does NOT affect how the Identity service listens for connections). Defaults to the base host URL of the request. For example, a request to http://server:35357/v2.0/users will default to http://server:35357. You should only need to set this value if the base URL contains a path (for example, /prefix/v2.0) or the endpoint should be found on a different server.
admin_port = 35357 (IntOpt) The port number which the admin service listens on.
admin_token = ADMIN (StrOpt) A "shared secret" that can be used to bootstrap Keystone. This "token" does not represent a user, and carries no explicit authorization. To disable in production (highly recommended), remove AdminTokenAuthMiddleware from your paste application pipelines (for example, in keystone-paste.ini).
compute_port = 8774 (IntOpt) The port which the OpenStack Compute service listens on.
domain_id_immutable = True (BoolOpt) Set this to false if you want to enable the ability for user, group and project entities to be moved between domains by updating their domain_id. Allowing such movement is not recommended if the scope of a domain admin is being restricted by use of an appropriate policy file (see policy.v3cloudsample as an example).
list_limit = None (IntOpt) The maximum number of entities that will be returned in a collection can be set with list_limit, with no limit set by default. This global limit may be then overridden for a specific driver, by specifying a list_limit in the appropriate section (e.g. [assignment]).
max_param_size = 64 (IntOpt) Limit the sizes of user and tenant ID and names.
max_request_body_size = 114688 (IntOpt) Enforced by optional sizelimit middleware (keystone.middleware:RequestBodySizeLimiter).
max_token_size = 8192 (IntOpt) Similar to max_param_size, but provides an exception for token values.
member_role_id = 9fe2ff9ee4384b1894a90878d3e92bab (StrOpt) During a SQL upgrade member_role_id will be used to create a new role that will replace records in the user_tenant_membership table with explicit role grants. After migration, the member_role_id will be used in the API add_user_to_project.
member_role_name = _member_ (StrOpt) During a SQL upgrade member_role_id will be used to create a new role that will replace records in the user_tenant_membership table with explicit role grants. After migration, member_role_name will be ignored.
public_bind_host = 0.0.0.0 (StrOpt) The IP address of the network interface for the public service to listen on.
public_endpoint = None (StrOpt) The base public endpoint URL for Identity that are advertised to clients (NOTE: this does NOT affect how the Identity service listens for connections). Defaults to the base host URL of the request. For example, a request to http://server:5000/v2.0/users will default to http://server:5000. You should only need to set this value if the base URL contains a path (for example, /prefix/v2.0) or the endpoint should be found on a different server.
public_port = 5000 (IntOpt) The port number which the public service listens on.
tcp_keepalive = False (BoolOpt) Set this to True if you want to enable TCP_KEEPALIVE on server sockets i.e. sockets used by the Identity wsgi server for client connections.
tcp_keepidle = 600 (IntOpt) Sets the value of TCP_KEEPIDLE in seconds for each server socket. Only applies if tcp_keepalive is True. Not supported on OS X.
[endpoint_filter]
driver = keystone.contrib.endpoint_filter.backends.sql.EndpointFilter (StrOpt) Identity Endpoint Filter backend driver
return_all_endpoints_if_no_filter = True (BoolOpt) Toggle to return all active endpoints if no filter exists.
[paste_deploy]
config_file = keystone-paste.ini (StrOpt) Name of the paste configuration file that defines the available pipelines.

Table 5.2. Description of configuration options for assignment

Configuration option = Default value Description
[assignment]
cache_time = None (IntOpt) TTL (in seconds) to cache assignment data. This has no effect unless global caching is enabled.
caching = True (BoolOpt) Toggle for assignment caching. This has no effect unless global caching is enabled.
driver = None (StrOpt) Identity assignment backend driver.
list_limit = None (IntOpt) Maximum number of entities that will be returned in an assignment collection.

Table 5.3. Description of configuration options for auth

Configuration option = Default value Description
[auth]
external = keystone.auth.plugins.external.DefaultDomain (StrOpt) The external (REMOTE_USER) auth plugin module.
methods = external, password, token (ListOpt) Default auth methods.
password = keystone.auth.plugins.password.Password (StrOpt) The password auth plugin module.
token = keystone.auth.plugins.token.Token (StrOpt) The token auth plugin module.

Table 5.4. Description of configuration options for auth_token

Configuration option = Default value Description
[DEFAULT]
memcached_servers = None (ListOpt) Memcached servers or None for in process cache.
[keystone_authtoken]
admin_password = None (StrOpt) Identity account password
admin_tenant_name = admin (StrOpt) Identity service account tenant name to validate user tokens
admin_token = None (StrOpt) Single shared secret with the Identity configuration used for bootstrapping a Identity installation, or otherwise bypassing the normal authentication process.
admin_user = None (StrOpt) Identity account username
auth_admin_prefix = (StrOpt) Prefix to prepend at the beginning of the path
auth_host = 127.0.0.1 (StrOpt) Host providing the admin Identity API endpoint
auth_port = 35357 (IntOpt) Port of the admin Identity API endpoint
auth_protocol = https (StrOpt) Protocol of the admin Identity API endpoint(http or https)
auth_uri = None (StrOpt) Complete public Identity API endpoint
auth_version = None (StrOpt) API version of the admin Identity API endpoint
cache = None (StrOpt) Env key for the Object Storage cache
cafile = None (StrOpt) A PEM encoded Certificate Authority to use when verifying HTTPs connections. Defaults to system CAs.
certfile = None (StrOpt) Required if Identity server requires client certificate
delay_auth_decision = False (BoolOpt) Do not handle authorization requests within the middleware, but delegate the authorization decision to downstream WSGI components
enforce_token_bind = permissive (StrOpt) Used to control the use and type of token binding. Can be set to: "disabled" to not check token binding. "permissive" (default) to validate binding information if the bind type is of a form known to the server and ignore it if not. "strict" like "permissive" but if the bind type is unknown the token will be rejected. "required" any form of token binding is needed to be allowed. Finally the name of a binding method that must be present in tokens.
http_connect_timeout = None (BoolOpt) Request timeout value for communicating with Identity API server.
http_request_max_retries = 3 (IntOpt) How many times are we trying to reconnect when communicating with Identity API Server.
include_service_catalog = True (BoolOpt) (optional) Indicate whether to set the X-Service-Catalog header. If False, middleware will not ask for service catalog on token validation and will not set the X-Service-Catalog header.
insecure = False (BoolOpt) Verify HTTPS connections.
keyfile = None (StrOpt) Required if Identity server requires client certificate
memcache_secret_key = None (StrOpt) (optional, mandatory if memcache_security_strategy is defined) String used for key derivation.
memcache_security_strategy = None (StrOpt) (optional) If defined, indicate whether token data should be authenticated or authenticated and encrypted. Acceptable values are MAC or ENCRYPT. If MAC, token data is authenticated (with HMAC) in the cache. If ENCRYPT, token data is encrypted and authenticated in the cache. If the value is not one of these options or empty, auth_token will raise an exception on initialization.
memcached_servers = None (ListOpt) Optionally specify a list of memcached server(s) to use for caching. If left undefined, tokens will instead be cached in-process.
revocation_cache_time = 300 (IntOpt) Determines the frequency at which the list of revoked tokens is retrieved from the Identity service (in seconds). A high number of revocation events combined with a low cache duration may significantly reduce performance.
signing_dir = None (StrOpt) Directory used to cache files related to PKI tokens
token_cache_time = 300 (IntOpt) In order to prevent excessive effort spent validating tokens, the middleware caches previously-seen tokens for a configurable duration (in seconds). Set to -1 to disable caching completely.

Table 5.5. Description of configuration options for cache

Configuration option = Default value Description
[cache]
backend = keystone.common.cache.noop (StrOpt) Dogpile.cache backend module. It is recommended that Memcache (dogpile.cache.memcache) or Redis (dogpile.cache.redis) be used in production deployments. Small workloads (single process) like devstack can use the dogpile.cache.memory backend.
backend_argument = [] (MultiStrOpt) Arguments supplied to the backend module. Specify this option once per argument to be passed to the dogpile.cache backend. Example format: "<argname>:<value>".
config_prefix = cache.keystone (StrOpt) 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.
debug_cache_backend = False (BoolOpt) 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.
enabled = False (BoolOpt) Global toggle for all caching using the should_cache_fn mechanism.
expiration_time = 600 (IntOpt) 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.
proxies = (ListOpt) Proxy Classes to import that will affect the way the dogpile.cache backend functions. See the dogpile.cache documentation on changing-backend-behavior. Comma delimited list e.g. my.dogpile.proxy.Class, my.dogpile.proxyClass2.
use_key_mangler = True (BoolOpt) Use a key-mangling function (sha1) to ensure fixed length cache-keys. This is toggle-able for debugging purposes, it is highly recommended to always leave this set to True.

Table 5.6. Description of configuration options for catalog

Configuration option = Default value Description
[catalog]
driver = keystone.catalog.backends.sql.Catalog (StrOpt) Identity catalog backend driver.
list_limit = None (IntOpt) Maximum number of entities that will be returned in a catalog collection.
template_file = default_catalog.templates (StrOpt) Catalog template file name for use with the template catalog backend.

Table 5.7. Description of configuration options for credential

Configuration option = Default value Description
[credential]
driver = keystone.credential.backends.sql.Credential (StrOpt) Identity credential backend driver.

Table 5.8. Description of configuration options for database

Configuration option = Default value Description
[database]
backend = sqlalchemy (StrOpt) The backend to use for db
connection = None (StrOpt) The SQLAlchemy connection string used to connect to the database
connection_debug = 0 (IntOpt) Verbosity of SQL debugging information. 0=None, 100=Everything
connection_trace = False (BoolOpt) Add python stack traces to SQL as comment strings
db_inc_retry_interval = True (BoolOpt) Whether to increase interval between db connection retries, up to db_max_retry_interval
db_max_retries = 20 (IntOpt) maximum db connection retries before error is raised. (setting -1 implies an infinite retry count)
db_max_retry_interval = 10 (IntOpt) max seconds between db connection retries, if db_inc_retry_interval is enabled
db_retry_interval = 1 (IntOpt) seconds between db connection retries
idle_timeout = 3600 (IntOpt) Timeout before idle sql connections are reaped
max_overflow = None (IntOpt) If set, use this value for max_overflow with sqlalchemy
max_pool_size = None (IntOpt) Maximum number of SQL connections to keep open in a pool
max_retries = 10 (IntOpt) Maximum db connection retries during startup. (setting -1 implies an infinite retry count)
min_pool_size = 1 (IntOpt) Minimum number of SQL connections to keep open in a pool
mysql_sql_mode = TRADITIONAL (StrOpt) 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=
pool_timeout = None (IntOpt) If set, use this value for pool_timeout with sqlalchemy
retry_interval = 10 (IntOpt) Interval between retries of opening a sql connection
sqlite_db = keystone.sqlite (StrOpt) The file name to use with SQLite
sqlite_synchronous = True (BoolOpt) If True, SQLite uses synchronous mode
use_db_reconnect = False (BoolOpt) Enable the experimental use of database reconnect on connection lost

Table 5.9. Description of configuration options for debug

Configuration option = Default value Description
[DEFAULT]
backdoor_port = None (StrOpt) Enable eventlet backdoor. Acceptable values are 0, <port>, and <start>:<end>, where 0 results in listening on a random tcp port number; <port> results in listening on the specified port number (and not enabling backdoor if that port is in use); and <start>:<end> results in listening on the smallest unused port number within the specified range of port numbers. The chosen port is displayed in the service's log file.
debug = False (BoolOpt) Print debugging output (set logging level to DEBUG instead of default WARNING level).
disable_process_locking = False (BoolOpt) Whether to disable inter-process locks
fatal_deprecations = False (BoolOpt) Make deprecations fatal
publish_errors = False (BoolOpt) Publish error events
pydev_debug_host = None (StrOpt) Host to connect to for remote debugger.
pydev_debug_port = None (IntOpt) Port to connect to for remote debugger.
standard_threads = False (BoolOpt) Do not monkey-patch threading system modules.
[audit]
namespace = openstack (StrOpt) Namespace prefix for generated ID

Table 5.10. Description of configuration options for ec2

Configuration option = Default value Description
[DEFAULT]
keystone_ec2_cafile = None (StrOpt) A PEM encoded certificate authority to use when verifying HTTPS connections. Defaults to the system CAs.
keystone_ec2_certfile = None (StrOpt) Client certificate key filename. Required if EC2 server requires client certificate.
keystone_ec2_insecure = False (BoolOpt) Disable SSL certificate verification.
keystone_ec2_keyfile = None (StrOpt) Required if EC2 server requires client certificate.
keystone_ec2_url = http://localhost:5000/v2.0/ec2tokens (StrOpt) URL to get token from ec2 request.
[ec2]
driver = keystone.contrib.ec2.backends.kvs.Ec2 (StrOpt) Identity EC2Credential backend driver.

Table 5.11. Description of configuration options for federation

Configuration option = Default value Description
[federation]
assertion_prefix = (StrOpt) Value to be used when filtering assertion parameters from the environment.
driver = keystone.contrib.federation.backends.sql.Federation (StrOpt) Identity Federation backend driver.

Table 5.12. Description of configuration options for identity

Configuration option = Default value Description
[identity]
default_domain_id = default (StrOpt) This references the domain to use for all Identity API v2 requests (which are not aware of domains). A domain with this ID will be created for you by keystone-manage db_sync in migration 008. The domain referenced by this ID cannot be deleted on the v3 API, to prevent accidentally breaking the v2 API. There is nothing special about this domain, other than the fact that it must exist to order to maintain support for your v2 clients.
domain_config_dir = /etc/keystone/domains (StrOpt) Path for Identity to locate the domain specificidentity configuration files if domain_specific_drivers_enabled is set to true.
domain_specific_drivers_enabled = False (BoolOpt) A subset (or all) of domains can have their own identity driver, each with their own partial configuration file in a domain configuration directory. Only values specific to the domain need to be placed in the domain specific configuration file. This feature is disabled by default; set to True to enable.
driver = keystone.identity.backends.sql.Identity (StrOpt) Identity service identity backend driver.
list_limit = None (IntOpt) Maximum number of entities that will be returned in an identity collection.
max_password_length = 4096 (IntOpt) Maximum supported length for user passwords; decrease to improve performance.

Table 5.13. Description of configuration options for kvs

Configuration option = Default value Description
[kvs]
backends = (ListOpt) Extra dogpile.cache backend modules to register with the dogpile.cache library.
config_prefix = keystone.kvs (StrOpt) Prefix for building the configuration dictionary for the KVS region. This should not need to be changed unless there is another dogpile.cache region with the same configuration name.
default_lock_timeout = 5 (IntOpt) Default lock timeout for distributed locking.
enable_key_mangler = True (BoolOpt) Toggle to disable using a key-mangling function to ensure fixed length keys. This is toggle-able for debugging purposes, it is highly recommended to always leave this set to True.

Table 5.14. Description of configuration options for ldap

Configuration option = Default value Description
[ldap]
alias_dereferencing = default (StrOpt) The LDAP dereferencing option for queries. This can be either "never", "searching", "always", "finding" or "default". The "default" option falls back to using default dereferencing configured by your ldap.conf.
allow_subtree_delete = False (BoolOpt) Allow deleting subtrees.
chase_referrals = None (BoolOpt) Override the system's default referral chasing behavior for queries.
dumb_member = cn=dumb,dc=nonexistent (StrOpt) DN of the "dummy member" to use when "use_dumb_member" is enabled.
group_additional_attribute_mapping = (ListOpt) Additional attribute mappings for groups. Attribute mapping format is <ldap_attr>:<user_attr>, where ldap_attr is the attribute in the LDAP entry and user_attr is the Identity API attribute.
group_allow_create = True (BoolOpt) Allow group creation in LDAP backend.
group_allow_delete = True (BoolOpt) Allow group deletion in LDAP backend.
group_allow_update = True (BoolOpt) Allow group update in LDAP backend.
group_attribute_ignore = (ListOpt) List of attributes stripped off the group on update.
group_desc_attribute = description (StrOpt) LDAP attribute mapped to group description.
group_filter = None (StrOpt) LDAP search filter for groups.
group_id_attribute = cn (StrOpt) LDAP attribute mapped to group id.
group_member_attribute = member (StrOpt) LDAP attribute mapped to show group membership.
group_name_attribute = ou (StrOpt) LDAP attribute mapped to group name.
group_objectclass = groupOfNames (StrOpt) LDAP objectClass for groups.
group_tree_dn = None (StrOpt) Search base for groups.
page_size = 0 (IntOpt) Maximum results per page; a value of zero ("0") disables paging.
password = None (StrOpt) Password for the BindDN to query the LDAP server.
query_scope = one (StrOpt) The LDAP scope for queries, this can be either "one" (onelevel/singleLevel) or "sub" (subtree/wholeSubtree).
role_additional_attribute_mapping = (ListOpt) Additional attribute mappings for roles. Attribute mapping format is <ldap_attr>:<user_attr>, where ldap_attr is the attribute in the LDAP entry and user_attr is the Identity API attribute.
role_allow_create = True (BoolOpt) Allow role creation in LDAP backend.
role_allow_delete = True (BoolOpt) Allow role deletion in LDAP backend.
role_allow_update = True (BoolOpt) Allow role update in LDAP backend.
role_attribute_ignore = (ListOpt) List of attributes stripped off the role on update.
role_filter = None (StrOpt) LDAP search filter for roles.
role_id_attribute = cn (StrOpt) LDAP attribute mapped to role id.
role_member_attribute = roleOccupant (StrOpt) LDAP attribute mapped to role membership.
role_name_attribute = ou (StrOpt) LDAP attribute mapped to role name.
role_objectclass = organizationalRole (StrOpt) LDAP objectClass for roles.
role_tree_dn = None (StrOpt) Search base for roles.
suffix = cn=example,cn=com (StrOpt) LDAP server suffix
tenant_additional_attribute_mapping = (ListOpt) Additional attribute mappings for projects. Attribute mapping format is <ldap_attr>:<user_attr>, where ldap_attr is the attribute in the LDAP entry and user_attr is the Identity API attribute.
tenant_allow_create = True (BoolOpt) Allow tenant creation in LDAP backend.
tenant_allow_delete = True (BoolOpt) Allow tenant deletion in LDAP backend.
tenant_allow_update = True (BoolOpt) Allow tenant update in LDAP backend.
tenant_attribute_ignore = (ListOpt) List of attributes stripped off the project on update.
tenant_desc_attribute = description (StrOpt) LDAP attribute mapped to project description.
tenant_domain_id_attribute = businessCategory (StrOpt) LDAP attribute mapped to project domain_id.
tenant_enabled_attribute = enabled (StrOpt) LDAP attribute mapped to project enabled.
tenant_enabled_emulation = False (BoolOpt) If True, Identity uses an alternative method to determine if a project is enabled or not by checking if they are a member of the "tenant_enabled_emulation_dn" group.
tenant_enabled_emulation_dn = None (StrOpt) DN of the group entry to hold enabled projects when using enabled emulation.
tenant_filter = None (StrOpt) LDAP search filter for projects.
tenant_id_attribute = cn (StrOpt) LDAP attribute mapped to project id.
tenant_member_attribute = member (StrOpt) LDAP attribute mapped to project membership for user.
tenant_name_attribute = ou (StrOpt) LDAP attribute mapped to project name.
tenant_objectclass = groupOfNames (StrOpt) LDAP objectClass for projects.
tenant_tree_dn = None (StrOpt) Search base for projects
tls_cacertdir = None (StrOpt) CA certificate directory path for communicating with LDAP servers.
tls_cacertfile = None (StrOpt) CA certificate file path for communicating with LDAP servers.
tls_req_cert = demand (StrOpt) valid options for tls_req_cert are demand, never, and allow.
url = ldap://localhost (StrOpt) URL for connecting to the LDAP server.
use_dumb_member = False (BoolOpt) If true, will add a dummy member to groups. This is required if the objectclass for groups requires the "member" attribute.
use_tls = False (BoolOpt) Enable TLS for communicating with LDAP servers.
user = None (StrOpt) User BindDN to query the LDAP server.
user_additional_attribute_mapping = (ListOpt) List of additional LDAP attributes used for mapping Additional attribute mappings for users. Attribute mapping format is <ldap_attr>:<user_attr>, where ldap_attr is the attribute in the LDAP entry and user_attr is the Identity API attribute.
user_allow_create = True (BoolOpt) Allow user creation in LDAP backend.
user_allow_delete = True (BoolOpt) Allow user deletion in LDAP backend.
user_allow_update = True (BoolOpt) Allow user updates in LDAP backend.
user_attribute_ignore = default_project_id, tenants (ListOpt) List of attributes stripped off the user on update.
user_default_project_id_attribute = None (StrOpt) LDAP attribute mapped to default_project_id for users.
user_enabled_attribute = enabled (StrOpt) LDAP attribute mapped to user enabled flag.
user_enabled_default = True (StrOpt) Default value to enable users. This should match an appropriate int 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 "True"the typical value is "512". This is typically used when "user_enabled_attribute = userAccountControl".
user_enabled_emulation = False (BoolOpt) If True, Identity uses an alternative method to determine if a user is enabled or not by checking if they are a member of the "user_enabled_emulation_dn" group.
user_enabled_emulation_dn = None (StrOpt) DN of the group entry to hold enabled users when using enabled emulation.
user_enabled_mask = 0 (IntOpt) Bitmask integer to indicate the bit that the enabled value is stored in if the LDAP server represents "enabled" as a bit on an integer rather than a boolean. A value of "0" indicates the mask is not used. If this is not set to "0" the typical value is "2". This is typically used when "user_enabled_attribute = userAccountControl".
user_filter = None (StrOpt) LDAP search filter for users.
user_id_attribute = cn (StrOpt) LDAP attribute mapped to user id.
user_mail_attribute = email (StrOpt) LDAP attribute mapped to user email.
user_name_attribute = sn (StrOpt) LDAP attribute mapped to user name.
user_objectclass = inetOrgPerson (StrOpt) LDAP objectClass for users.
user_pass_attribute = userPassword (StrOpt) LDAP attribute mapped to password.
user_tree_dn = None (StrOpt) Search base for users.

Table 5.15. Description of configuration options for logging

Configuration option = Default value Description
[DEFAULT]
default_log_levels = amqp=WARN, amqplib=WARN, boto=WARN, qpid=WARN, sqlalchemy=WARN, suds=INFO, iso8601=WARN, requests.packages.urllib3.connectionpool=WARN (ListOpt) List of logger=LEVEL pairs
instance_format = "[instance: %(uuid)s] " (StrOpt) If an instance is passed with the log message, format it like this
instance_uuid_format = "[instance: %(uuid)s] " (StrOpt) If an instance UUID is passed with the log message, format it like this
log_config_append = None (StrOpt) The name of logging configuration file. It does not disable existing loggers, but just appends specified logging configuration to any other existing logging options. Please see the Python logging module documentation for details on logging configuration files.
log_date_format = %Y-%m-%d %H:%M:%S (StrOpt) Format string for %%(asctime)s in log records. Default: %(default)s
log_dir = None (StrOpt) (Optional) The base directory used for relative --log-file paths
log_file = None (StrOpt) (Optional) Name of log file to output to. If no default is set, logging will go to stdout.
log_format = None (StrOpt) DEPRECATED. A logging.Formatter log message format string which may use any of the available logging.LogRecord attributes. This option is deprecated. Please use logging_context_format_string and logging_default_format_string instead.
logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s (StrOpt) Format string to use for log messages with context
logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d (StrOpt) Data to append to log format when level is DEBUG
logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s (StrOpt) Format string to use for log messages without context
logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d TRACE %(name)s %(instance)s (StrOpt) Prefix each line of exception output with this format
syslog_log_facility = LOG_USER (StrOpt) Syslog facility to receive log lines
use_stderr = True (BoolOpt) Log output to standard error
use_syslog = False (BoolOpt) Use syslog for logging. Existing syslog format is DEPRECATED during I, and then will be changed in J to honor RFC5424
use_syslog_rfc_format = False (BoolOpt) (Optional) Use syslog rfc5424 format for logging. If enabled, will add APP-NAME (RFC5424) before the MSG part of the syslog message. The old format without APP-NAME is deprecated in I, and will be removed in J.
verbose = False (BoolOpt) Print more verbose output (set logging level to INFO instead of default WARNING level).

Table 5.16. Description of configuration options for memcache

Configuration option = Default value Description
[memcache]
max_compare_and_set_retry = 16 (IntOpt) Number of compare-and-set attempts to make when using compare-and-set in the token memcache back end.
servers = localhost:11211 (ListOpt) Memcache servers in the format of "host:port"

Table 5.17. Description of configuration options for misc

Configuration option = Default value Description
[DEFAULT]
lock_path = None (StrOpt) Directory to use for lock files.

Table 5.18. Description of configuration options for notification

Configuration option = Default value Description
[DEFAULT]
onready = None (StrOpt) onready allows you to send a notification when the process is ready to serve For example, to have it notify using systemd, one could set shell command: "onready = systemd-notify --ready" or a module with notify() method: "onready = keystone.common.systemd".

Table 5.19. Description of configuration options for oauth

Configuration option = Default value Description
[oauth1]
access_token_duration = 86400 (IntOpt) Duration (in seconds) for the OAuth Access Token.
driver = keystone.contrib.oauth1.backends.sql.OAuth1 (StrOpt) Identity credential backend driver.
request_token_duration = 28800 (IntOpt) Duration (in seconds) for the OAuth Request Token.

Table 5.20. Description of configuration options for os_inherit

Configuration option = Default value Description
[os_inherit]
enabled = False (BoolOpt) Role-assignment inheritance to projects from owning domain can be optionally enabled.

Table 5.21. Description of configuration options for policy

Configuration option = Default value Description
[DEFAULT]
policy_default_rule = default (StrOpt) Rule enforced when requested rule is not found
policy_file = policy.json (StrOpt) JSON file containing policy
[policy]
driver = keystone.policy.backends.sql.Policy (StrOpt) Identity policy backend driver.
list_limit = None (IntOpt) Maximum number of entities that will be returned in a policy collection.

Table 5.22. Description of configuration options for revoke

Configuration option = Default value Description
[revoke]
caching = True (BoolOpt) Toggle for revocation event cacheing. This has no effect unless global caching is enabled.
driver = keystone.contrib.revoke.backends.kvs.Revoke (StrOpt) An implementation of the backend for persisting revocation events.
expiration_buffer = 1800 (IntOpt) This value (calculated in seconds) is added to token expiration before a revocation event may be removed from the backend.

Table 5.23. Description of configuration options for security

Configuration option = Default value Description
[DEFAULT]
crypt_strength = 40000 (IntOpt) The value passed as the keyword "rounds" to passlib encrypt method.

Table 5.24. Description of configuration options for ssl

Configuration option = Default value Description
[signing]
ca_certs = /etc/keystone/ssl/certs/ca.pem (StrOpt) Path of the CA for token signing.
ca_key = /etc/keystone/ssl/private/cakey.pem (StrOpt) Path of the CA Key for token signing.
cert_subject = /C=US/ST=Unset/L=Unset/O=Unset/CN=www.example.com (StrOpt) Certificate Subject (auto generated certificate) for token signing.
certfile = /etc/keystone/ssl/certs/signing_cert.pem (StrOpt) Path of the certfile for token signing.
key_size = 2048 (IntOpt) Key Size (in bits) for token signing cert (auto generated certificate).
keyfile = /etc/keystone/ssl/private/signing_key.pem (StrOpt) Path of the keyfile for token signing.
token_format = None (StrOpt) Deprecated in favor of provider in the [token] section.
valid_days = 3650 (IntOpt) Day the token signing cert is valid for (auto generated certificate).
[ssl]
ca_certs = /etc/keystone/ssl/certs/ca.pem (StrOpt) Path of the ca cert file for SSL.
ca_key = /etc/keystone/ssl/private/cakey.pem (StrOpt) Path of the CA key file for SSL.
cert_required = False (BoolOpt) Require client certificate.
cert_subject = /C=US/ST=Unset/L=Unset/O=Unset/CN=localhost (StrOpt) SSL Certificate Subject (auto generated certificate).
certfile = /etc/keystone/ssl/certs/keystone.pem (StrOpt) Path of the certfile for SSL.
enable = False (BoolOpt) Toggle for SSL support on the Identity eventlet servers.
key_size = 1024 (IntOpt) SSL Key Length (in bits) (auto generated certificate).
keyfile = /etc/keystone/ssl/private/keystonekey.pem (StrOpt) Path of the keyfile for SSL.
valid_days = 3650 (IntOpt) Days the certificate is valid for once signed (auto generated certificate).

Table 5.25. Description of configuration options for stats

Configuration option = Default value Description
[stats]
driver = keystone.contrib.stats.backends.kvs.Stats (StrOpt) Identity stats backend driver.

Table 5.26. Description of configuration options for token

Configuration option = Default value Description
[token]
bind = (ListOpt) External auth mechanisms that should add bind information to token (for example, kerberos, x509).
cache_time = None (IntOpt) Time to cache tokens (in seconds). This has no effect unless global and token caching are enabled.
caching = True (BoolOpt) Toggle for token system cacheing. This has no effect unless global caching is enabled.
driver = keystone.token.backends.sql.Token (StrOpt) Identity token persistence backend driver.
enforce_token_bind = permissive (StrOpt) Enforcement policy on tokens presented to Identity with bind information. One of disabled, permissive, strict, required or a specifically required bind mode (for example, kerberos or x509) to require binding to that authentication.
expiration = 3600 (IntOpt) Amount of time a token should remain valid (in seconds).
provider = None (StrOpt) Controls the token construction, validation, and revocation operations. Core providers are "keystone.token.providers.[pki|uuid].Provider".
revocation_cache_time = 3600 (IntOpt) Time to cache the revocation list and the revocation events if revoke extension is enabled (in seconds). This has no effect unless global and token caching are enabled.
revoke_by_id = True (BoolOpt) Revoke token by token identifier. Setting revoke_by_id to True enables various forms of enumerating tokens, e.g. `list tokens for user`. These enumerations are processed to determine the list of tokens to revoke. Only disable if you are switching to using the Revoke extension with a backend other than KVS, which stores events in memory.

Table 5.27. Description of configuration options for trust

Configuration option = Default value Description
[trust]
driver = keystone.trust.backends.sql.Trust (StrOpt) Identity trust backend driver.
enabled = True (BoolOpt) Delegation and impersonation features can be optionally disabled.

Table 5.28. Description of configuration options for rpc

Configuration option = Default value Description
[DEFAULT]
allowed_rpc_exception_modules = oslo.messaging.exceptions, nova.exception, cinder.exception, exceptions (ListOpt) Modules of exceptions that are permitted to be recreated upon receiving exception data from an rpc call.

Table 5.29. Description of configuration options for amqp

Configuration option = Default value Description
[DEFAULT]
amqp_auto_delete = False (BoolOpt) Auto-delete queues in amqp.
amqp_durable_queues = False (BoolOpt) Use durable queues in amqp.
control_exchange = openstack (StrOpt) The default exchange under which topics are scoped. May be overridden by an exchange name specified in the transport_url option.
default_publisher_id = None (StrOpt) Default publisher_id for outgoing notifications
notification_driver = [] (MultiStrOpt) Driver or drivers to handle sending notifications.
notification_topics = notifications (ListOpt) AMQP topic used for OpenStack notifications.
rpc_backend = rabbit (StrOpt) The messaging driver to use, defaults to rabbit. Other drivers include qpid and zmq.
rpc_cast_timeout = 30 (IntOpt) Seconds to wait before a cast expires (TTL). Only supported by impl_zmq.
rpc_conn_pool_size = 30 (IntOpt) Size of RPC connection pool.
rpc_response_timeout = 60 (IntOpt) Seconds to wait for a response from a call.
rpc_thread_pool_size = 64 (IntOpt) Size of RPC greenthread pool.
transport_url = None (StrOpt) A URL representing the messaging driver to use and its full configuration. If not set, we fall back to the rpc_backend option and driver specific configuration.

Table 5.30. Description of configuration options for rabbit

Configuration option = Default value Description
[DEFAULT]
fake_rabbit = False (BoolOpt) If passed, use a fake RabbitMQ provider.
kombu_reconnect_delay = 1.0 (FloatOpt) How long to wait before reconnecting in response to an AMQP consumer cancel notification.
kombu_ssl_ca_certs = (StrOpt) SSL certification authority file (valid only if SSL enabled).
kombu_ssl_certfile = (StrOpt) SSL cert file (valid only if SSL enabled).
kombu_ssl_keyfile = (StrOpt) SSL key file (valid only if SSL enabled).
kombu_ssl_version = (StrOpt) SSL version to use (valid only if SSL enabled). valid values are TLSv1 and SSLv23. SSLv2 may be available on some distributions.
rabbit_ha_queues = False (BoolOpt) Use HA queues in RabbitMQ (x-ha-policy: all). If you change this option, you must wipe the RabbitMQ database.
rabbit_host = localhost (StrOpt) The RabbitMQ broker address where a single node is used.
rabbit_hosts = $rabbit_host:$rabbit_port (ListOpt) RabbitMQ HA cluster host:port pairs.
rabbit_login_method = AMQPLAIN (StrOpt) the RabbitMQ login method
rabbit_max_retries = 0 (IntOpt) Maximum number of RabbitMQ connection retries. Default is 0 (infinite retry count).
rabbit_password = guest (StrOpt) The RabbitMQ password.
rabbit_port = 5672 (IntOpt) The RabbitMQ broker port where a single node is used.
rabbit_retry_backoff = 2 (IntOpt) How long to backoff for between retries when connecting to RabbitMQ.
rabbit_retry_interval = 1 (IntOpt) How frequently to retry connecting with RabbitMQ.
rabbit_use_ssl = False (BoolOpt) Connect over SSL for RabbitMQ.
rabbit_userid = guest (StrOpt) The RabbitMQ userid.
rabbit_virtual_host = / (StrOpt) The RabbitMQ virtual host.

Table 5.31. Description of configuration options for redis

Configuration option = Default value Description
[DEFAULT]
host = 127.0.0.1 (StrOpt) Host to locate redis.
matchmaker_heartbeat_freq = 300 (IntOpt) Heartbeat frequency.
matchmaker_heartbeat_ttl = 600 (IntOpt) Heartbeat time-to-live.
password = None (StrOpt) Password for Redis server (optional).
port = 6379 (IntOpt) Use this port to connect to redis host.
[matchmaker_ring]
ringfile = /etc/oslo/matchmaker_ring.json (StrOpt) Matchmaker ring file (JSON).