Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

Chapter 4. Identity Service

This chapter details the OpenStack Identity service configuration options.

4.1. Identity Service Configuration Options

4.1.1. Identity Service Configuration File

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

4.1.2. Description of Configuration Options

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

Table 4.1. Description of API configuration options

Configuration option = Default value
Description
[DEFAULT]
 
admin_endpoint = None
(String) 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 http://server:35357/v3/users, then this will option will be automatically treated as http://server:35357. You should only need to set option if either the value of the base URL contains a path that keystone does not automatically infer (/prefix/v3), or if the endpoint should be found on a different host.
admin_token = None
(String) Using this feature is NOT recommended. Instead, use the keystone-manage bootstrap command. The value of this option is treated as a "shared secret" that can be used to bootstrap Keystone through the API. This "token" does not represent a user (it has no identity), and carries no explicit authorization (it effectively bypasses most authorization checks). If set to None, the value is ignored and the admin_token middleware is effectively disabled. However, to completely disable admin_token in production (highly recommended, as it presents a security risk), remove AdminTokenAuthMiddleware (the admin_token_auth filter) from your paste application pipelines (for example, in keystone-paste.ini).
domain_id_immutable = True
(Boolean) DEPRECATED: 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 attribute. Allowing such movement is not recommended if the scope of a domain admin is being restricted by use of an appropriate policy file (see etc/policy.v3cloudsample.json as an example). This feature is deprecated and will be removed in a future release, in favor of strictly immutable domain IDs. The option to set domain_id_immutable to false has been deprecated in the M release and will be removed in the O release.
list_limit = None
(Integer) 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, [assignment]). No limit is set by default. In larger deployments, it is recommended that you set this to a reasonable number to prevent operations like listing all users and projects from placing an unnecessary load on the system.
max_param_size = 64
(Integer) Limit the sizes of user & project ID/names.
max_project_tree_depth = 5
(Integer) 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.
max_token_size = 8192
(Integer) Similar to [DEFAULT] max_param_size, but provides an exception for token values. With PKI / PKIZ tokens, this needs to be set close to 8192 (any higher, and other HTTP implementations may break), depending on the size of your service catalog and other factors. With Fernet tokens, this can be set as low as 255. With UUID tokens, this should be set to 32).
member_role_id = 9fe2ff9ee4384b1894a90878d3e92bab
(String) Similar to the [DEFAULT] member_role_name option, this represents the default role ID used to associate users with their default projects in the v2 API. This will be used as the explicit role where one is not specified by the v2 API. You do not need to set this value unless you want keystone to use an existing role with a different ID, other than the arbitrarily defined _member_ role (in which case, you should set [DEFAULT] member_role_name as well).
member_role_name = _member_
(String) This is the role name used in combination with the [DEFAULT] member_role_id option; see that option for more detail. You do not need to set this option unless you want keystone to use an existing role (in which case, you should set [DEFAULT] member_role_id as well).
public_endpoint = None
(String) 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 http://server:5000/v3/users, then this will option will be automatically treated as http://server:5000. You should only need to set option if either the value of the base URL contains a path that keystone does not automatically infer (/prefix/v3), or if the endpoint should be found on a different host.
secure_proxy_ssl_header = HTTP_X_FORWARDED_PROTO
(String) DEPRECATED: The HTTP header used to determine the scheme for the original request, even if it was removed by an SSL terminating proxy. This option has been deprecated in the N release and will be removed in the P release. Use oslo.middleware.http_proxy_to_wsgi configuration instead.
strict_password_check = False
(Boolean) 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.
[oslo_middleware]
 
enable_proxy_headers_parsing = False
(Boolean) Whether the application is behind a proxy or not. This determines if the middleware should parse the headers or not.
max_request_body_size = 114688
(Integer) The maximum body size for each request, in bytes.
secure_proxy_ssl_header = X-Forwarded-Proto
(String) DEPRECATED: 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.

Table 4.2. Description of assignment configuration options

Configuration option = Default value
Description
[assignment]
 
driver = None
(String) Entrypoint for the assignment backend driver in the keystone.assignment namespace. Only an SQL driver is supplied. If an assignment driver is not specified, the identity driver will choose the assignment driver (driver selection based on [identity]/driver option is deprecated and will be removed in the "O" release).
prohibited_implied_role = admin
(List) A list of role names which are prohibited from being an implied role.

Table 4.3. Description of authorization configuration options

Configuration option = Default value
Description
[auth]
 
external = None
(String) Entrypoint for the external (REMOTE_USER) auth plugin module in the keystone.auth.external namespace. Supplied drivers are DefaultDomain and Domain. The default driver is DefaultDomain.
methods = external, password, token, oauth1
(List) Allowed authentication methods.
oauth1 = None
(String) Entrypoint for the oAuth1.0 auth plugin module in the keystone.auth.oauth1 namespace.
password = None
(String) Entrypoint for the password auth plugin module in the keystone.auth.password namespace.
token = None
(String) Entrypoint for the token auth plugin module in the keystone.auth.token namespace.

Table 4.4. Description of cache configuration options

Configuration option = Default value
Description
[memcache]
 
dead_retry = 300
(Integer) Number of seconds memcached server is considered dead before it is tried again. This is used by the key value store system (e.g. token pooled memcached persistence backend).
pool_connection_get_timeout = 10
(Integer) Number of seconds that an operation will wait to get a memcache client connection. This is used by the key value store system (e.g. token pooled memcached persistence backend).
pool_maxsize = 10
(Integer) Max total number of open connections to every memcached server. This is used by the key value store system (e.g. token pooled memcached persistence backend).
pool_unused_timeout = 60
(Integer) 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 (e.g. token pooled memcached persistence backend).

Table 4.5. Description of catalog configuration options

Configuration option = Default value
Description
[catalog]
 
cache_time = None
(Integer) Time to cache catalog data (in seconds). This has no effect unless global and catalog caching are enabled.
caching = True
(Boolean) Toggle for catalog caching. This has no effect unless global caching is enabled.
driver = sql
(String) Entrypoint for the catalog backend driver in the keystone.catalog namespace. Supplied drivers are kvs, sql, templated, and endpoint_filter.sql
list_limit = None
(Integer) Maximum number of entities that will be returned in a catalog collection.
template_file = default_catalog.templates
(String) Catalog template file name for use with the template catalog backend.

Table 4.6. Description of CA and SSL configuration options

Configuration option = Default value
Description
[eventlet_server_ssl]
 
ca_certs = /etc/keystone/ssl/certs/ca.pem
(String) DEPRECATED: Path of the CA cert file for SSL.
cert_required = False
(Boolean) DEPRECATED: Require client certificate.
certfile = /etc/keystone/ssl/certs/keystone.pem
(String) DEPRECATED: Path of the certfile for SSL. For non-production environments, you may be interested in using keystone-manage ssl_setup to generate self-signed certificates.
enable = False
(Boolean) DEPRECATED: Toggle for SSL support on the Keystone eventlet servers.
keyfile = /etc/keystone/ssl/private/keystonekey.pem
(String) DEPRECATED: Path of the keyfile for SSL.
[signing]
 
ca_certs = /etc/keystone/ssl/certs/ca.pem
(String) DEPRECATED: Path of the CA for token signing. PKI token support has been deprecated in the M release and will be removed in the O release. Fernet or UUID tokens are recommended.
ca_key = /etc/keystone/ssl/private/cakey.pem
(String) DEPRECATED: Path of the CA key for token signing. PKI token support has been deprecated in the M release and will be removed in the O release. Fernet or UUID tokens are recommended.
cert_subject = /C=US/ST=Unset/L=Unset/O=Unset/CN=www.example.com
(String) DEPRECATED: Certificate subject (auto generated certificate) for token signing. PKI token support has been deprecated in the M release and will be removed in the O release. Fernet or UUID tokens are recommended.
certfile = /etc/keystone/ssl/certs/signing_cert.pem
(String) DEPRECATED: Path of the certfile for token signing. For non-production environments, you may be interested in using keystone-manage pki_setup to generate self-signed certificates. PKI token support has been deprecated in the M release and will be removed in the O release. Fernet or UUID tokens are recommended.
key_size = 2048
(Integer) DEPRECATED: Key size (in bits) for token signing cert (auto generated certificate). PKI token support has been deprecated in the M release and will be removed in the O release. Fernet or UUID tokens are recommended.
keyfile = /etc/keystone/ssl/private/signing_key.pem
(String) DEPRECATED: Path of the keyfile for token signing. PKI token support has been deprecated in the M release and will be removed in the O release. Fernet or UUID tokens are recommended.
valid_days = 3650
(Integer) DEPRECATED: Days the token signing cert is valid for (auto generated certificate). PKI token support has been deprecated in the M release and will be removed in the O release. Fernet or UUID tokens are recommended.
[ssl]
 
ca_key = /etc/keystone/ssl/private/cakey.pem
(String) Path of the CA key file for SSL.
cert_subject = /C=US/ST=Unset/L=Unset/O=Unset/CN=localhost
(String) SSL certificate subject (auto generated certificate).
key_size = 1024
(Integer) SSL key length (in bits) (auto generated certificate).
valid_days = 3650
(Integer) Days the certificate is valid for once signed (auto generated certificate).

Table 4.7. Description of common configuration options

Configuration option = Default value
Description
[DEFAULT]
 
executor_thread_pool_size = 64
(Integer) Size of executor thread pool.
insecure_debug = False
(Boolean) 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.

Table 4.8. Description of credential configuration options

Configuration option = Default value
Description
[credential]
 
driver = sql
(String) Entrypoint for the credential backend driver in the keystone.credential namespace.

Table 4.9. Description of logging configuration options

Configuration option = Default value
Description
[audit]
 
namespace = openstack
(String) namespace prefix for generated id

Table 4.10. Description of domain configuration options

Configuration option = Default value
Description
[domain_config]
 
cache_time = 300
(Integer) TTL (in seconds) to cache domain config data. This has no effect unless domain config caching is enabled.
caching = True
(Boolean) Toggle for domain config caching. This has no effect unless global caching is enabled.
driver = sql
(String) Entrypoint for the domain config backend driver in the keystone.resource.domain_config namespace.

Table 4.11. Description of federation configuration options

Configuration option = Default value
Description
[federation]
 
assertion_prefix =
(String) Value to be used when filtering assertion parameters from the environment.
driver = sql
(String) Entrypoint for the federation backend driver in the keystone.federation namespace.
federated_domain_name = Federated
(String) A 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.
remote_id_attribute = None
(String) Value to be used to obtain the entity ID of the Identity Provider from the environment (e.g. if using the mod_shib plugin this value is Shib-Identity-Provider).
sso_callback_template = /etc/keystone/sso_callback_template.html
(String) Location of Single Sign-On callback handler, will return a token to a trusted dashboard host.
trusted_dashboard = []
(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 the trusted_dashboard list. This configuration option may be repeated for multiple values. For example: trusted_dashboard=http://acme.com/auth/websso trusted_dashboard=http://beta.com/auth/websso

Table 4.12. Description of Fernet tokens configuration options

Configuration option = Default value
Description
[fernet_tokens]
 
key_repository = /etc/keystone/fernet-keys/
(String) Directory containing Fernet token keys.
max_active_keys = 3
(Integer) This controls how many keys are held in rotation by keystone-manage fernet_rotate before they are discarded. The default value of 3 means that keystone will maintain one staged key, one primary key, and one secondary key. Increasing this value means that additional secondary keys will be kept in the rotation.

Table 4.13. Description of identity configuration options

Configuration option = Default value
Description
[identity]
 
cache_time = 600
(Integer) Time to cache identity data (in seconds). This has no effect unless global and identity caching are enabled.
caching = True
(Boolean) Toggle for identity caching. This has no effect unless global caching is enabled.
default_domain_id = default
(String) 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
(String) Path for Keystone to locate the domain specific identity configuration files if domain_specific_drivers_enabled is set to true.
domain_configurations_from_database = False
(Boolean) Extract the domain specific configuration options from the resource backend where they have been stored with the domain data. This feature is disabled by default (in which case the domain specific options will be loaded from files in the domain configuration directory); set to true to enable.
domain_specific_drivers_enabled = False
(Boolean) 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 domain_configurations_from_database). Only values specific to the domain need to be specified in this manner. This feature is disabled by default; set to true to enable.
driver = sql
(String) Entrypoint for the identity backend driver in the keystone.identity namespace. Supplied drivers are ldap and sql.
list_limit = None
(Integer) Maximum number of entities that will be returned in an identity collection.
max_password_length = 4096
(Integer) Maximum supported length for user passwords; decrease to improve performance.

Table 4.14. Description of KVS configuration options

Configuration option = Default value
Description
[kvs]
 
backends =
(List) Extra dogpile.cache backend modules to register with the dogpile.cache library.
config_prefix = keystone.kvs
(String) 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
(Integer) Default lock timeout (in seconds) for distributed locking.
enable_key_mangler = True
(Boolean) 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 4.15. Description of LDAP configuration options

Configuration option = Default value
Description
[ldap]
 
alias_dereferencing = default
(String) The LDAP dereferencing option for queries. The "default" option falls back to using default dereferencing configured by your ldap.conf.
allow_subtree_delete = False
(Boolean) Delete subtrees using the subtree delete control. Only enable this option if your LDAP server supports subtree deletion.
auth_pool_connection_lifetime = 60
(Integer) End user auth connection lifetime in seconds.
auth_pool_size = 100
(Integer) End user auth connection pool size.
chase_referrals = None
(Boolean) Override the system's default referral chasing behavior for queries.
debug_level = None
(Integer) 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.
dumb_member = cn=dumb,dc=nonexistent
(String) DN of the "dummy member" to use when "use_dumb_member" is enabled.
group_additional_attribute_mapping =
(List) 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
(Boolean) DEPRECATED: Allow group creation in LDAP backend. Write support for Identity LDAP backends has been deprecated in the M release and will be removed in the O release.
group_allow_delete = True
(Boolean) DEPRECATED: Allow group deletion in LDAP backend. Write support for Identity LDAP backends has been deprecated in the M release and will be removed in the O release.
group_allow_update = True
(Boolean) DEPRECATED: Allow group update in LDAP backend. Write support for Identity LDAP backends has been deprecated in the M release and will be removed in the O release.
group_attribute_ignore =
(List) List of attributes stripped off the group on update.
group_desc_attribute = description
(String) LDAP attribute mapped to group description.
group_filter = None
(String) LDAP search filter for groups.
group_id_attribute = cn
(String) LDAP attribute mapped to group id.
group_member_attribute = member
(String) LDAP attribute mapped to show group membership.
group_members_are_ids = False
(Boolean) If the members of the group objectclass are user IDs rather than DNs, set this to true. This is the case when using posixGroup as the group objectclass and OpenDirectory.
group_name_attribute = ou
(String) LDAP attribute mapped to group name.
group_objectclass = groupOfNames
(String) LDAP objectclass for groups.
group_tree_dn = None
(String) Search base for groups. Defaults to the suffix value.
page_size = 0
(Integer) Maximum results per page; a value of zero ("0") disables paging.
password = None
(String) Password for the BindDN to query the LDAP server.
pool_connection_lifetime = 600
(Integer) Connection lifetime in seconds.
pool_connection_timeout = -1
(Integer) Connector timeout in seconds. Value -1 indicates indefinite wait for response.
pool_retry_delay = 0.1
(Floating point) Time span in seconds to wait between two reconnect trials.
pool_retry_max = 3
(Integer) Maximum count of reconnect trials.
pool_size = 10
(Integer) Connection pool size.
query_scope = one
(String) The LDAP scope for queries, "one" represents oneLevel/singleLevel and "sub" represents subtree/wholeSubtree options.
suffix = cn=example,cn=com
(String) LDAP server suffix
tls_cacertdir = None
(String) CA certificate directory path for communicating with LDAP servers.
tls_cacertfile = None
(String) CA certificate file path for communicating with LDAP servers.
tls_req_cert = demand
(String) Specifies what checks to perform on client certificates in an incoming TLS session.
url = ldap://localhost
(String) 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.
use_auth_pool = True
(Boolean) Enable LDAP connection pooling for end user authentication. If use_pool is disabled, then this setting is meaningless and is not used at all.
use_dumb_member = False
(Boolean) If true, will add a dummy member to groups. This is required if the objectclass for groups requires the "member" attribute.
use_pool = True
(Boolean) Enable LDAP connection pooling.
use_tls = False
(Boolean) Enable TLS for communicating with LDAP servers.
user = None
(String) User BindDN to query the LDAP server.
user_additional_attribute_mapping =
(List) 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
(Boolean) DEPRECATED: Allow user creation in LDAP backend. Write support for Identity LDAP backends has been deprecated in the M release and will be removed in the O release.
user_allow_delete = True
(Boolean) DEPRECATED: Allow user deletion in LDAP backend. Write support for Identity LDAP backends has been deprecated in the M release and will be removed in the O release.
user_allow_update = True
(Boolean) DEPRECATED: Allow user updates in LDAP backend. Write support for Identity LDAP backends has been deprecated in the M release and will be removed in the O release.
user_attribute_ignore = default_project_id
(List) List of attributes stripped off the user on update.
user_default_project_id_attribute = None
(String) LDAP attribute mapped to default_project_id for users.
user_description_attribute = description
(String) LDAP attribute mapped to user description.
user_enabled_attribute = enabled
(String) LDAP attribute mapped to user enabled flag.
user_enabled_default = True
(String) 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
(Boolean) If true, Keystone 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
(String) DN of the group entry to hold enabled users when using enabled emulation.
user_enabled_emulation_use_group_config = False
(Boolean) Use the "group_member_attribute" and "group_objectclass" settings to determine membership in the emulated enabled group.
user_enabled_invert = False
(Boolean) Invert the meaning of the boolean enabled values. Some LDAP servers use a boolean lock attribute where "true" means an account is disabled. Setting "user_enabled_invert = true" will allow these lock attributes to be used. This setting will have no effect if "user_enabled_mask" or "user_enabled_emulation" settings are in use.
user_enabled_mask = 0
(Integer) 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
(String) LDAP search filter for users.
user_id_attribute = cn
(String) LDAP attribute mapped to user id. WARNING: must not be a multivalued attribute.
user_mail_attribute = mail
(String) LDAP attribute mapped to user email.
user_name_attribute = sn
(String) LDAP attribute mapped to user name.
user_objectclass = inetOrgPerson
(String) LDAP objectclass for users.
user_pass_attribute = userPassword
(String) LDAP attribute mapped to password.
user_tree_dn = None
(String) Search base for users. Defaults to the suffix value.

Table 4.16. Description of mapping configuration options

Configuration option = Default value
Description
[identity_mapping]
 
backward_compatible_ids = True
(Boolean) The format of user and group IDs changed in Juno for backends that do not generate UUIDs (e.g. 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, any users and groups from the default domain being handled by LDAP will still not be mapped to ensure their IDs remain backward compatible. Setting this value to False will enable the mapping for even the default LDAP driver. It is only safe to do this if you do not already have assignments for users and groups from the default LDAP domain, and it is acceptable for Keystone to provide the different IDs to clients than it did previously. Typically this means that the only time you can set this value to False is when configuring a fresh installation.
driver = sql
(String) Entrypoint for the identity mapping backend driver in the keystone.identity.id_mapping namespace.
generator = sha256
(String) Entrypoint for the public ID generator for user and group entities in the keystone.identity.id_generator namespace. The Keystone identity mapper only supports generators that produce no more than 64 characters.

Table 4.17. Description of memcache configuration options

Configuration option = Default value
Description
[memcache]
 
servers = localhost:11211
(List) Memcache servers in the format of "host:port".
socket_timeout = 3
(Integer) Timeout in seconds for every call to a server. This is used by the key value store system (e.g. token pooled memcached persistence backend).

Table 4.18. Description of OAuth configuration options

Configuration option = Default value
Description
[oauth1]
 
access_token_duration = 86400
(Integer) Duration (in seconds) for the OAuth Access Token.
driver = sql
(String) Entrypoint for the OAuth backend driver in the keystone.oauth1 namespace.
request_token_duration = 28800
(Integer) Duration (in seconds) for the OAuth Request Token.

Table 4.19. Description of os_inherit configuration options

Configuration option = Default value
Description
[os_inherit]
 
enabled = True
(Boolean) DEPRECATED: role-assignment inheritance to projects from owning domain or from projects higher in the hierarchy can be optionally disabled. In the future, this option will be removed and the hierarchy will be always enabled. The option to enable the OS-INHERIT extension has been deprecated in the M release and will be removed in the O release. The OS-INHERIT extension will be enabled by default.

Table 4.20. Description of policy configuration options

Configuration option = Default value
Description
[policy]
 
driver = sql
(String) Entrypoint for the policy backend driver in the keystone.policy namespace. Supplied drivers are rules and sql.
list_limit = None
(Integer) Maximum number of entities that will be returned in a policy collection.

Table 4.21. Description of Redis configuration options

Configuration option = Default value
Description
[matchmaker_redis]
 
check_timeout = 20000
(Integer) Time in ms to wait before the transaction is killed.
host = 127.0.0.1
(String) DEPRECATED: Host to locate redis. Replaced by [DEFAULT]/transport_url
password =
(String) DEPRECATED: Password for Redis server (optional). Replaced by [DEFAULT]/transport_url
port = 6379
(Port number) DEPRECATED: Use this port to connect to redis host. Replaced by [DEFAULT]/transport_url
sentinel_hosts =
(List) DEPRECATED: List of Redis Sentinel hosts (fault tolerance mode) e.g. [host:port, host1:port ... ] Replaced by [DEFAULT]/transport_url
socket_timeout = 10000
(Integer) Timeout in ms on blocking socket operations
wait_timeout = 2000
(Integer) Time in ms to wait between connection attempts.

Table 4.22. Description of revoke configuration options

Configuration option = Default value
Description
[revoke]
 
cache_time = 3600
(Integer) Time to cache the revocation list and the revocation events (in seconds). This has no effect unless global and token caching are enabled.
caching = True
(Boolean) Toggle for revocation event caching. This has no effect unless global caching is enabled.
driver = sql
(String) Entrypoint for an implementation of the backend for persisting revocation events in the keystone.revoke namespace. Supplied drivers are kvs and sql.
expiration_buffer = 1800
(Integer) This value (calculated in seconds) is added to token expiration before a revocation event may be removed from the backend.

Table 4.23. Description of role configuration options

Configuration option = Default value
Description
[role]
 
cache_time = None
(Integer) TTL (in seconds) to cache role data. This has no effect unless global caching is enabled.
caching = True
(Boolean) Toggle for role caching. This has no effect unless global caching is enabled.
driver = None
(String) Entrypoint for the role backend driver in the keystone.role namespace. Supplied drivers are ldap and sql.
list_limit = None
(Integer) Maximum number of entities that will be returned in a role collection.

Table 4.24. Description of SAML configuration options

Configuration option = Default value
Description
[saml]
 
assertion_expiration_time = 3600
(Integer) Default TTL, in seconds, for any generated SAML assertion created by Keystone.
certfile = /etc/keystone/ssl/certs/signing_cert.pem
(String) Path of the certfile for SAML signing. For non-production environments, you may be interested in using keystone-manage pki_setup to generate self-signed certificates. Note, the path cannot contain a comma.
idp_contact_company = None
(String) Company of contact person.
idp_contact_email = None
(String) Email address of contact person.
idp_contact_name = None
(String) Given name of contact person
idp_contact_surname = None
(String) Surname of contact person.
idp_contact_telephone = None
(String) Telephone number of contact person.
idp_contact_type = other
(String) The contact type describing the main point of contact for the identity provider.
idp_entity_id = None
(String) Entity ID value for unique Identity Provider identification. Usually FQDN is set with a suffix. A value is required to generate IDP Metadata. For example: https://keystone.example.com/v3/OS-FEDERATION/saml2/idp
idp_lang = en
(String) Language used by the organization.
idp_metadata_path = /etc/keystone/saml2_idp_metadata.xml
(String) Path to the Identity Provider Metadata file. This file should be generated with the keystone-manage saml_idp_metadata command.
idp_organization_display_name = None
(String) Organization name to be displayed.
idp_organization_name = None
(String) Organization name the installation belongs to.
idp_organization_url = None
(String) URL of the organization.
idp_sso_endpoint = None
(String) Identity Provider Single-Sign-On service value, required in the Identity Provider's metadata. A value is required to generate IDP Metadata. For example: https://keystone.example.com/v3/OS-FEDERATION/saml2/sso
keyfile = /etc/keystone/ssl/private/signing_key.pem
(String) Path of the keyfile for SAML signing. Note, the path cannot contain a comma.
relay_state_prefix = ss:mem:
(String) The prefix to use for the RelayState SAML attribute, used when generating ECP wrapped assertions.
xmlsec1_binary = xmlsec1
(String) Binary to be called for XML signing. Install the appropriate package, specify absolute path or adjust your PATH environment variable if the binary cannot be found.

Table 4.25. Description of security configuration options

Configuration option = Default value
Description
[DEFAULT]
 
crypt_strength = 10000
(Integer) 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

Table 4.26. Description of Tokenless Authorization configuration options

Configuration option = Default value
Description
[tokenless_auth]
 
issuer_attribute = SSL_CLIENT_I_DN
(String) The issuer attribute that is served as an IdP ID for the X.509 tokenless authorization along with the protocol to look up its corresponding mapping. It is the environment variable in the WSGI environment that references to the issuer of the client certificate.
protocol = x509
(String) The protocol name for the X.509 tokenless authorization along with the option issuer_attribute below can look up its corresponding mapping.
trusted_issuer = []
(Multi-valued) The list of trusted issuers to further filter the certificates that are allowed to participate in the X.509 tokenless authorization. If the option is absent then no certificates will be allowed. The naming format for the attributes of a Distinguished Name(DN) must be separated by a comma and contain no spaces. This configuration option may be repeated for multiple values. For example: trusted_issuer=CN=john,OU=keystone,O=openstack trusted_issuer=CN=mary,OU=eng,O=abc

Table 4.27. Description of token configuration options

Configuration option = Default value
Description
[token]
 
allow_rescope_scoped_token = True
(Boolean) Allow rescoping of scoped token. Setting allow_rescoped_scoped_token to false prevents a user from exchanging a scoped token for any other token.
bind =
(List) External auth mechanisms that should add bind information to token, e.g., kerberos,x509.
cache_time = None
(Integer) Time to cache tokens (in seconds). This has no effect unless global and token caching are enabled.
caching = True
(Boolean) Toggle for token system caching. This has no effect unless global caching is enabled.
driver = sql
(String) Entrypoint for the token persistence backend driver in the keystone.token.persistence namespace. Supplied drivers are kvs, memcache, memcache_pool, and sql.
enforce_token_bind = permissive
(String) Enforcement policy on tokens presented to Keystone with bind information. One of disabled, permissive, strict, required or a specifically required bind mode, e.g., kerberos or x509 to require binding to that authentication.
expiration = 3600
(Integer) Amount of time a token should remain valid (in seconds).
hash_algorithm = md5
(String) DEPRECATED: The hash algorithm to use for PKI tokens. This can be set to any algorithm that hashlib supports. WARNING: Before changing this value, the auth_token middleware must be configured with the hash_algorithms, otherwise token revocation will not be processed correctly. PKI token support has been deprecated in the M release and will be removed in the O release. Fernet or UUID tokens are recommended.
infer_roles = True
(Boolean) Add roles to token that are not explicitly added, but that are linked implicitly to other roles.
provider = uuid
(String) Controls the token construction, validation, and revocation operations. Entrypoint in the keystone.token.provider namespace. Core providers are [fernet|pkiz|pki|uuid].
revoke_by_id = True
(Boolean) 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 4.28. Description of trust configuration options

Configuration option = Default value
Description
[trust]
 
allow_redelegation = False
(Boolean) Enable redelegation feature.
driver = sql
(String) Entrypoint for the trust backend driver in the keystone.trust namespace.
enabled = True
(Boolean) Delegation and impersonation features can be optionally disabled.
max_redelegation_count = 3
(Integer) Maximum depth of trust redelegation.

4.1.3. New, Updated, and Deprecated Options in Newton for Identity Service

Table 4.29. Deprecated options

Deprecated option
New Option
[DEFAULT] use_syslog
None