Policy configuration¶
Configuration¶
The following is an overview of all available policies in Keystone. For a sample configuration file, refer to Keystone Sample Policy.
DEFAULT¶
-
admin_token
¶ Type: string Default: <None>
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).
-
public_endpoint
¶ Type: URI Default: <None>
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.
-
admin_endpoint
¶ Type: URI Default: <None>
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.
-
max_project_tree_depth
¶ Type: integer Default: 5
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_param_size
¶ Type: integer Default: 64
Limit the sizes of user & project ID/names.
-
max_token_size
¶ Type: integer Default: 255
Similar to [DEFAULT] max_param_size, but provides an exception for token values. With Fernet tokens, this can be set as low as 255. With UUID tokens, this should be set to 32).
-
member_role_id
¶ Type: string Default: 9fe2ff9ee4384b1894a90878d3e92bab
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
¶ Type: string Default: _member_
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).
-
crypt_strength
¶ Type: integer Default: 10000
Minimum Value: 1000 Maximum Value: 100000 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
-
list_limit
¶ Type: integer Default: <None>
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.
-
strict_password_check
¶ Type: boolean Default: false
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.
-
secure_proxy_ssl_header
¶ Type: string Default: HTTP_X_FORWARDED_PROTO
The HTTP header used to determine the scheme for the original request, even if it was removed by an SSL terminating proxy.
Warning
This option is deprecated for removal since N. Its value may be silently ignored in the future.
Reason: 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.
-
insecure_debug
¶ Type: boolean Default: false
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.
-
default_publisher_id
¶ Type: string Default: <None>
Default publisher_id for outgoing notifications. If left undefined, Keystone will default to using the server’s host name.
-
notification_format
¶ Type: string Default: cadf
Valid Values: basic, cadf Define the notification format for identity service events. A basic notification only has information about the resource being operated on. A cadf notification has the same information, as well as information about the initiator of the event. The cadf option is entirely backwards compatible with the basic option, but is fully CADF-compliant, and is recommended for auditing use cases.
-
notification_opt_out
¶ Type: multi-valued Default: identity.authenticate.success
Default: identity.authenticate.pending
Default: identity.authenticate.failed
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 identity.<resource_type>.<operation>. By default, all notifications related to authentication are automatically suppressed. This field can be set multiple times in order to opt-out of multiple notification topics. For example, the following suppresses notifications describing user creation or successful authentication events: notification_opt_out=identity.user.create notification_opt_out=identity.authenticate.success
assignment¶
-
driver
¶ Type: string Default: sql
Entry point for the assignment backend driver (where role assignments are stored) in the keystone.assignment namespace. Only a SQL driver is supplied by keystone itself. Unless you are writing proprietary drivers for keystone, you do not need to set this option.
-
prohibited_implied_role
¶ Type: list Default: admin
A list of role names which are prohibited from being an implied role.
auth¶
-
methods
¶ Type: list Default: external,password,token,oauth1,mapped
Allowed authentication methods. Note: You should disable the external auth method if you are currently using federation. External auth and federation both use the REMOTE_USER variable. Since both the mapped and external plugin are being invoked to validate attributes in the request environment, it can cause conflicts.
-
password
¶ Type: string Default: <None>
Entry point for the password auth plugin module in the keystone.auth.password namespace. You do not need to set this unless you are overriding keystone’s own password authentication plugin.
-
token
¶ Type: string Default: <None>
Entry point for the token auth plugin module in the keystone.auth.token namespace. You do not need to set this unless you are overriding keystone’s own token authentication plugin.
-
external
¶ Type: string Default: <None>
Entry point 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, which assumes that all users identified by the username specified to keystone in the REMOTE_USER variable exist within the context of the default domain. The Domain option expects an additional environment variable be presented to keystone, REMOTE_DOMAIN, containing the domain name of the REMOTE_USER (if REMOTE_DOMAIN is not set, then the default domain will be used instead). You do not need to set this unless you are taking advantage of “external authentication”, where the application server (such as Apache) is handling authentication instead of keystone.
-
oauth1
¶ Type: string Default: <None>
Entry point for the OAuth 1.0a auth plugin module in the keystone.auth.oauth1 namespace. You do not need to set this unless you are overriding keystone’s own oauth1 authentication plugin.
-
mapped
¶ Type: string Default: <None>
Entry point for the mapped auth plugin module in the keystone.auth.mapped namespace. You do not need to set this unless you are overriding keystone’s own mapped authentication plugin.
catalog¶
-
template_file
¶ Type: string Default: default_catalog.templates
Absolute path to the file used for the templated catalog backend. This option is only used if the [catalog] driver is set to templated.
-
driver
¶ Type: string Default: sql
Entry point for the catalog driver in the keystone.catalog namespace. Keystone provides a sql option (which supports basic CRUD operations through SQL), a templated option (which loads the catalog from a templated catalog file on disk), and a endpoint_filter.sql option (which supports arbitrary service catalogs per project).
-
caching
¶ Type: boolean Default: true
Toggle for catalog caching. This has no effect unless global caching is enabled. In a typical deployment, there is no reason to disable this.
-
cache_time
¶ Type: integer Default: <None>
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.
-
list_limit
¶ Type: integer Default: <None>
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.
credential¶
-
driver
¶ Type: string Default: sql
Entry point for the credential backend driver in the keystone.credential namespace. Keystone only provides a sql driver, so there’s no reason to change this unless you are providing a custom entry point.
-
provider
¶ Type: string Default: fernet
Entry point for credential encryption and decryption operations in the keystone.credential.provider namespace. Keystone only provides a fernet driver, so there’s no reason to change this unless you are providing a custom entry point to encrypt and decrypt credentials.
-
key_repository
¶ Type: string Default: /etc/keystone/credential-keys/
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.
domain_config¶
-
driver
¶ Type: string Default: sql
Entry point for the domain-specific configuration driver in the keystone.resource.domain_config namespace. Only a sql option is provided by keystone, so there is no reason to set this unless you are providing a custom entry point.
-
caching
¶ Type: boolean Default: true
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.
-
cache_time
¶ Type: integer Default: 300
Time-to-live (TTL, in seconds) to cache domain-specific configuration data. This has no effect unless [domain_config] caching is enabled.
endpoint_filter¶
-
driver
¶ Type: string Default: sql
Entry point for the endpoint filter driver in the keystone.endpoint_filter namespace. Only a sql option is provided by keystone, so there is no reason to set this unless you are providing a custom entry point.
-
return_all_endpoints_if_no_filter
¶ Type: boolean Default: true
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.
endpoint_policy¶
-
driver
¶ Type: string Default: sql
Entry point for the endpoint policy driver in the keystone.endpoint_policy namespace. Only a sql driver is provided by keystone, so there is no reason to set this unless you are providing a custom entry point.
eventlet_server¶
-
public_bind_host
¶ Type: host address Default: 0.0.0.0
The IP address of the network interface for the public service to listen on.
Deprecated Variations¶ Group Name DEFAULT bind_host DEFAULT public_bind_host Warning
This option is deprecated for removal since K. Its value may be silently ignored in the future.
Reason: Support for running keystone under eventlet has been removed in the Newton release. These options remain for backwards compatibility because they are used for URL substitutions.
-
public_port
¶ Type: port number Default: 5000
Minimum Value: 0 Maximum Value: 65535 The port number for the public service to listen on.
Deprecated Variations¶ Group Name DEFAULT public_port Warning
This option is deprecated for removal since K. Its value may be silently ignored in the future.
Reason: Support for running keystone under eventlet has been removed in the Newton release. These options remain for backwards compatibility because they are used for URL substitutions.
-
admin_bind_host
¶ Type: host address Default: 0.0.0.0
The IP address of the network interface for the admin service to listen on.
Deprecated Variations¶ Group Name DEFAULT bind_host DEFAULT admin_bind_host Warning
This option is deprecated for removal since K. Its value may be silently ignored in the future.
Reason: Support for running keystone under eventlet has been removed in the Newton release. These options remain for backwards compatibility because they are used for URL substitutions.
-
admin_port
¶ Type: port number Default: 35357
Minimum Value: 0 Maximum Value: 65535 The port number for the admin service to listen on.
Deprecated Variations¶ Group Name DEFAULT admin_port Warning
This option is deprecated for removal since K. Its value may be silently ignored in the future.
Reason: Support for running keystone under eventlet has been removed in the Newton release. These options remain for backwards compatibility because they are used for URL substitutions.
extra_headers¶
-
Distribution
¶ Type: string Default: Ubuntu
Specifies the distribution of the keystone server.
federation¶
-
driver
¶ Type: string Default: sql
Entry point for the federation backend driver in the keystone.federation namespace. Keystone only provides a sql driver, so there is no reason to set this option unless you are providing a custom entry point.
-
assertion_prefix
¶ Type: string Default: Prefix to use when filtering environment variable names for federated assertions. Matched variables are passed into the federated mapping engine.
-
remote_id_attribute
¶ Type: string Default: <None>
Value to be used to obtain the entity ID of the Identity Provider from the environment. For mod_shib, this would be Shib-Identity-Provider. For mod_auth_openidc, this could be HTTP_OIDC_ISS. For mod_auth_mellon, this could be MELLON_IDP.
-
federated_domain_name
¶ Type: string Default: Federated
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.
-
trusted_dashboard
¶ Type: multi-valued Default: 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
-
sso_callback_template
¶ Type: string Default: /etc/keystone/sso_callback_template.html
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.
-
caching
¶ Type: boolean Default: true
Toggle for federation caching. This has no effect unless global caching is enabled. There is typically no reason to disable this.
fernet_tokens¶
-
key_repository
¶ Type: string Default: /etc/keystone/fernet-keys/
Directory containing Fernet token keys. This directory must exist before using keystone-manage fernet_setup for the first time, must be writable by the user running keystone-manage fernet_setup or keystone-manage fernet_rotate, and of course must be readable by keystone’s server process. The repository may contain keys in one of three states: a single staged key (always index 0) used for token validation, a single primary key (always the highest index) used for token creation and validation, and any number of secondary keys (all other index values) used for token validation. With multiple keystone nodes, each node must share the same key repository contents, with the exception of the staged key (index 0). It is safe to run keystone-manage fernet_rotate once on any one node to promote a staged key (index 0) to be the new primary (incremented from the previous highest index), and produce a new staged key (a new key with index 0); the resulting repository can then be atomically replicated to other nodes without any risk of race conditions (for example, it is safe to run keystone-manage fernet_rotate on host A, wait any amount of time, create a tarball of the directory on host A, unpack it on host B to a temporary location, and atomically move (mv) the directory into place on host B). Running keystone-manage fernet_rotate twice on a key repository without syncing other nodes will result in tokens that can not be validated by all nodes.
-
max_active_keys
¶ Type: integer Default: 3
Minimum Value: 1 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 (always index 0), one primary key (the highest numerical index), and one secondary key (every other index). Increasing this value means that additional secondary keys will be kept in the rotation.
identity¶
-
default_domain_id
¶ Type: string Default: default
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 keystone-manage bootstrap. 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. There is typically no reason to change this value.
-
domain_specific_drivers_enabled
¶ Type: boolean Default: false
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 [identity] domain_configurations_from_database). Only values specific to the domain need to be specified in this manner. This feature is disabled by default, but may be enabled by default in a future release; set to true to enable.
-
domain_configurations_from_database
¶ Type: boolean Default: false
By default, domain-specific configuration data is read from files in the directory identified by [identity] domain_config_dir. Enabling this configuration option allows you to instead manage domain-specific configurations through the API, which are then persisted in the backend (typically, a SQL database), rather than using configuration files on disk.
-
domain_config_dir
¶ Type: string Default: /etc/keystone/domains
Absolute path where keystone should locate domain-specific [identity] configuration files. This option has no effect unless [identity] domain_specific_drivers_enabled is set to true. There is typically no reason to change this value.
-
driver
¶ Type: string Default: sql
Entry point for the identity backend driver in the keystone.identity namespace. Keystone provides a sql and ldap driver. This option is also used as the default driver selection (along with the other configuration variables in this section) in the event that [identity] domain_specific_drivers_enabled is enabled, but no applicable domain-specific configuration is defined for the domain in question. Unless your deployment primarily relies on ldap AND is not using domain-specific configuration, you should typically leave this set to sql.
-
caching
¶ Type: boolean Default: true
Toggle for identity caching. This has no effect unless global caching is enabled. There is typically no reason to disable this.
-
cache_time
¶ Type: integer Default: 600
Time to cache identity data (in seconds). This has no effect unless global and identity caching are enabled.
-
max_password_length
¶ Type: integer Default: 4096
Maximum Value: 4096 Maximum allowed length for user passwords. Decrease this value to improve performance. Changing this value does not effect existing passwords.
-
list_limit
¶ Type: integer Default: <None>
Maximum number of entities that will be returned in an identity collection.
-
password_hash_algorithm
¶ Type: string Default: bcrypt
Valid Values: bcrypt, scrypt, pbkdf2_sha512 The password hashing algorithm to use for passwords stored within keystone.
-
password_hash_rounds
¶ Type: integer Default: <None>
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 range(1,32). The default for pbkdf_sha512 is 60000, must be within range(1,1<<32) WARNING: If using scrypt, increasing this value increases BOTH time AND memory requirements to hash a password.
-
scrypt_block_size
¶ Type: integer Default: <None>
Optional block size to pass to scrypt hash function (the r parameter). Useful for tuning scrypt to optimal performance for your CPU architecture. This option is only used when the password_hash_algorithm option is set to scrypt. Defaults to 8.
-
scrypt_parallelism
¶ Type: integer Default: <None>
Optional parallelism to pass to scrypt hash function (the p parameter). This option is only used when the password_hash_algorithm option is set to scrypt. Defaults to 1.
-
salt_bytesize
¶ Type: integer Default: <None>
Minimum Value: 0 Maximum Value: 96 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.
-
rolling_upgrade_password_hash_compat
¶ Type: boolean Default: false
This option tells keystone to continue to hash passwords with the sha512_crypt algorithm for supporting rolling upgrades. sha512_crypt is typically more insecure than bcrypt, pbkdf2, and scrypt. This option should be set to False except in the case of performing a rolling upgrade where some Keystone servers may not know how to verify non-sha512_crypt based password hashes. This option will be removed in the Queens release and is only to support rolling upgrades from Ocata release to Pike release.
identity_mapping¶
-
driver
¶ Type: string Default: sql
Entry point for the identity mapping backend driver in the keystone.identity.id_mapping namespace. Keystone only provides a sql driver, so there is no reason to change this unless you are providing a custom entry point.
-
generator
¶ Type: string Default: sha256
Entry point 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 64 bytes or less. Keystone only provides a sha256 entry point, so there is no reason to change this value unless you’re providing a custom entry point.
-
backward_compatible_ids
¶ Type: boolean Default: true
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 ([identity] domain_specific_drivers_enabled), 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 new mapping for all backends, including the default LDAP driver. It is only guaranteed to be safe to enable this option if you do not already have assignments for users and groups from the default LDAP domain, and you consider it to be acceptable for Keystone to provide the different IDs to clients than it did previously (existing IDs in the API will suddenly change). Typically this means that the only time you can set this value to false is when configuring a fresh installation, although that is the recommended value.
ldap¶
-
url
¶ Type: string Default: ldap://localhost
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.
-
user
¶ Type: string Default: <None>
The user name of the administrator bind DN to use when querying the LDAP server, if your LDAP server requires it.
-
password
¶ Type: string Default: <None>
The password of the administrator bind DN to use when querying the LDAP server, if your LDAP server requires it.
-
suffix
¶ Type: string Default: cn=example,cn=com
The default LDAP server suffix to use, if a DN is not defined via either [ldap] user_tree_dn or [ldap] group_tree_dn.
-
query_scope
¶ Type: string Default: one
Valid Values: one, sub The search scope which defines how deep to search within the search base. A value of one (representing oneLevel or singleLevel) indicates a search of objects immediately below to the base object, but does not include the base object itself. A value of sub (representing subtree or wholeSubtree) indicates a search of both the base object itself and the entire subtree below it.
-
page_size
¶ Type: integer Default: 0
Minimum Value: 0 Defines the maximum number of results per page that keystone should request from the LDAP server when listing objects. A value of zero (0) disables paging.
-
alias_dereferencing
¶ Type: string Default: default
Valid Values: never, searching, always, finding, default The LDAP dereferencing option to use for queries involving aliases. A value of default falls back to using default dereferencing behavior configured by your ldap.conf. A value of never prevents aliases from being dereferenced at all. A value of searching dereferences aliases only after name resolution. A value of finding dereferences aliases only during name resolution. A value of always dereferences aliases in all cases.
-
debug_level
¶ Type: integer Default: <None>
Minimum Value: -1 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.
-
chase_referrals
¶ Type: boolean Default: <None>
Sets keystone’s referral chasing behavior across directory partitions. If left unset, the system’s default behavior will be used.
-
user_tree_dn
¶ Type: string Default: <None>
The search base to use for users. Defaults to the [ldap] suffix value.
-
user_filter
¶ Type: string Default: <None>
The LDAP search filter to use for users.
-
user_objectclass
¶ Type: string Default: inetOrgPerson
The LDAP object class to use for users.
-
user_id_attribute
¶ Type: string Default: cn
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.
-
user_name_attribute
¶ Type: string Default: sn
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.
-
user_description_attribute
¶ Type: string Default: description
The LDAP attribute mapped to user descriptions in keystone.
-
user_mail_attribute
¶ Type: string Default: mail
The LDAP attribute mapped to user emails in keystone.
-
user_pass_attribute
¶ Type: string Default: userPassword
The LDAP attribute mapped to user passwords in keystone.
-
user_enabled_attribute
¶ Type: string Default: enabled
The LDAP attribute mapped to the user enabled attribute in keystone. If setting this option to userAccountControl, then you may be interested in setting [ldap] user_enabled_mask and [ldap] user_enabled_default as well.
-
user_enabled_invert
¶ Type: boolean Default: false
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 [ldap] user_enabled_invert = true will allow these lock attributes to be used. This option will have no effect if either the [ldap] user_enabled_mask or [ldap] user_enabled_emulation options are in use.
-
user_enabled_mask
¶ Type: integer Default: 0
Minimum Value: 0 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 0 indicates that the mask is not used. If this is not set to 0 the typical value is 2. This is typically used when [ldap] user_enabled_attribute = userAccountControl. Setting this option causes keystone to ignore the value of [ldap] user_enabled_invert.
-
user_enabled_default
¶ Type: string Default: True
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 True, then the typical value is 512. This is typically used when [ldap] user_enabled_attribute = userAccountControl.
-
user_attribute_ignore
¶ Type: list Default: default_project_id
List of user attributes to ignore on create and update, or whether a specific user attribute should be filtered for list or show user.
-
user_default_project_id_attribute
¶ Type: string Default: <None>
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.
-
user_enabled_emulation
¶ Type: boolean Default: false
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 [ldap] user_enabled_emulation_dn option. Enabling this option causes keystone to ignore the value of [ldap] user_enabled_invert.
-
user_enabled_emulation_dn
¶ Type: string Default: <None>
DN of the group entry to hold enabled users when using enabled emulation. Setting this option has no effect unless [ldap] user_enabled_emulation is also enabled.
-
user_enabled_emulation_use_group_config
¶ Type: boolean Default: false
Use the [ldap] group_member_attribute and [ldap] group_objectclass settings to determine membership in the emulated enabled group. Enabling this option has no effect unless [ldap] user_enabled_emulation is also enabled.
-
user_additional_attribute_mapping
¶ Type: list Default: A list of LDAP attribute to keystone user attribute pairs used for mapping additional attributes to users in keystone. The expected format is <ldap_attr>:<user_attr>, where ldap_attr is the attribute in the LDAP object and user_attr is the attribute which should appear in the identity API.
-
group_tree_dn
¶ Type: string Default: <None>
The search base to use for groups. Defaults to the [ldap] suffix value.
-
group_filter
¶ Type: string Default: <None>
The LDAP search filter to use for groups.
-
group_objectclass
¶ Type: string Default: groupOfNames
The LDAP object class to use for groups. If setting this option to posixGroup, you may also be interested in enabling the [ldap] group_members_are_ids option.
-
group_id_attribute
¶ Type: string Default: cn
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.
-
group_name_attribute
¶ Type: string Default: ou
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.
-
group_member_attribute
¶ Type: string Default: member
The LDAP attribute used to indicate that a user is a member of the group.
-
group_members_are_ids
¶ Type: boolean Default: false
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 posixGroup as the group object class in Open Directory.
-
group_desc_attribute
¶ Type: string Default: description
The LDAP attribute mapped to group descriptions in keystone.
-
group_attribute_ignore
¶ Type: list Default: List of group attributes to ignore on create and update. or whether a specific group attribute should be filtered for list or show group.
-
group_additional_attribute_mapping
¶ Type: list Default: A list of LDAP attribute to keystone group attribute pairs used for mapping additional attributes to groups in keystone. The expected format is <ldap_attr>:<group_attr>, where ldap_attr is the attribute in the LDAP object and group_attr is the attribute which should appear in the identity API.
-
group_ad_nesting
¶ Type: boolean Default: false
If enabled, group queries will use Active Directory specific filters for nested groups.
-
tls_cacertfile
¶ Type: string Default: <None>
An absolute path to a CA certificate file to use when communicating with LDAP servers. This option will take precedence over [ldap] tls_cacertdir, so there is no reason to set both.
-
tls_cacertdir
¶ Type: string Default: <None>
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 [ldap] tls_cacertfile.
-
use_tls
¶ Type: boolean Default: false
Enable TLS when communicating with LDAP servers. You should also set the [ldap] tls_cacertfile and [ldap] tls_cacertdir options when using this option. Do not set this option if you are using LDAP over SSL (LDAPS) instead of TLS.
-
tls_req_cert
¶ Type: string Default: demand
Valid Values: demand, never, allow Specifies which checks to perform against client certificates on incoming TLS sessions. If set to demand, then a certificate will always be requested and required from the LDAP server. If set to allow, then a certificate will always be requested but not required from the LDAP server. If set to never, then a certificate will never be requested.
-
connection_timeout
¶ Type: integer Default: -1
Minimum Value: -1 The connection timeout to use with the LDAP server. A value of -1 means that connections will never timeout.
-
use_pool
¶ Type: boolean Default: true
Enable LDAP connection pooling for queries to the LDAP server. There is typically no reason to disable this.
-
pool_size
¶ Type: integer Default: 10
Minimum Value: 1 The size of the LDAP connection pool. This option has no effect unless [ldap] use_pool is also enabled.
-
pool_retry_max
¶ Type: integer Default: 3
Minimum Value: 0 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 [ldap] use_pool is also enabled.
-
pool_retry_delay
¶ Type: floating point Default: 0.1
The number of seconds to wait before attempting to reconnect to the LDAP server. This option has no effect unless [ldap] use_pool is also enabled.
-
pool_connection_timeout
¶ Type: integer Default: -1
Minimum Value: -1 The connection timeout to use when pooling LDAP connections. A value of -1 means that connections will never timeout. This option has no effect unless [ldap] use_pool is also enabled.
-
pool_connection_lifetime
¶ Type: integer Default: 600
Minimum Value: 1 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 [ldap] use_pool is also enabled.
-
use_auth_pool
¶ Type: boolean Default: true
Enable LDAP connection pooling for end user authentication. There is typically no reason to disable this.
-
auth_pool_size
¶ Type: integer Default: 100
Minimum Value: 1 The size of the connection pool to use for end user authentication. This option has no effect unless [ldap] use_auth_pool is also enabled.
-
auth_pool_connection_lifetime
¶ Type: integer Default: 60
Minimum Value: 1 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 [ldap] use_auth_pool is also enabled.
memcache¶
-
dead_retry
¶ Type: integer Default: 300
Number of seconds memcached server is considered dead before it is tried again. This is used by the key value store system.
-
socket_timeout
¶ Type: integer Default: 3
Timeout in seconds for every call to a server. This is used by the key value store system.
-
pool_maxsize
¶ Type: integer Default: 10
Max total number of open connections to every memcached server. This is used by the key value store system.
-
pool_unused_timeout
¶ Type: integer Default: 60
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.
-
pool_connection_get_timeout
¶ Type: integer Default: 10
Number of seconds that an operation will wait to get a memcache client connection. This is used by the key value store system.
oauth1¶
-
driver
¶ Type: string Default: sql
Entry point for the OAuth backend driver in the keystone.oauth1 namespace. Typically, there is no reason to set this option unless you are providing a custom entry point.
-
request_token_duration
¶ Type: integer Default: 28800
Minimum Value: 0 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.
-
access_token_duration
¶ Type: integer Default: 86400
Minimum Value: 0 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.
paste_deploy¶
-
config_file
¶ Type: string Default: keystone-paste.ini
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.
policy¶
-
driver
¶ Type: string Default: sql
Entry point for the policy backend driver in the keystone.policy namespace. Supplied drivers are rules (which does not support any CRUD operations for the v3 policy API) and sql. Typically, there is no reason to set this option unless you are providing a custom entry point.
-
list_limit
¶ Type: integer Default: <None>
Maximum number of entities that will be returned in a policy collection.
resource¶
-
driver
¶ Type: string Default: sql
Entry point for the resource driver in the keystone.resource namespace. Only a sql driver is supplied by keystone. Unless you are writing proprietary drivers for keystone, you do not need to set this option.
-
caching
¶ Type: boolean Default: true
Toggle for resource caching. This has no effect unless global caching is enabled.
Deprecated Variations¶ Group Name assignment caching
-
cache_time
¶ Type: integer Default: <None>
Time to cache resource data in seconds. This has no effect unless global caching is enabled.
Deprecated Variations¶ Group Name assignment cache_time
-
list_limit
¶ Type: integer Default: <None>
Maximum number of entities that will be returned in a resource collection.
Deprecated Variations¶ Group Name assignment list_limit
-
admin_project_domain_name
¶ Type: string Default: <None>
Name of the domain that owns the admin_project_name. If left unset, then there is no admin project. [resource] admin_project_name must also be set to use this option.
-
admin_project_name
¶ Type: string Default: <None>
This is a special project which represents cloud-level administrator privileges across services. Tokens scoped to this project will contain a true is_admin_project attribute to indicate to policy systems that the role assignments on that specific project should apply equally across every project. If left unset, then there is no admin project, and thus no explicit means of cross-project role assignments. [resource] admin_project_domain_name must also be set to use this option.
-
project_name_url_safe
¶ Type: string Default: off
Valid Values: off, new, strict This controls whether the names of projects are restricted from containing URL-reserved characters. If set to new, attempts to create or update a project with a URL-unsafe name will fail. If set to strict, attempts to scope a token with a URL-unsafe project name will fail, thereby forcing all project names to be updated to be URL-safe.
-
domain_name_url_safe
¶ Type: string Default: off
Valid Values: off, new, strict This controls whether the names of domains are restricted from containing URL-reserved characters. If set to new, attempts to create or update a domain with a URL-unsafe name will fail. If set to strict, attempts to scope a token with a URL-unsafe domain name will fail, thereby forcing all domain names to be updated to be URL-safe.
revoke¶
-
driver
¶ Type: string Default: sql
Entry point for the token revocation backend driver in the keystone.revoke namespace. Keystone only provides a sql driver, so there is no reason to set this option unless you are providing a custom entry point.
-
expiration_buffer
¶ Type: integer Default: 1800
Minimum Value: 0 The number of seconds after a token has expired before a corresponding revocation event may be purged from the backend.
-
caching
¶ Type: boolean Default: true
Toggle for revocation event caching. This has no effect unless global caching is enabled.
-
cache_time
¶ Type: integer Default: 3600
Time to cache the revocation list and the revocation events (in seconds). This has no effect unless global and [revoke] caching are both enabled.
Deprecated Variations¶ Group Name token revocation_cache_time
role¶
-
driver
¶ Type: string Default: <None>
Entry point for the role backend driver in the keystone.role namespace. Keystone only provides a sql driver, so there’s no reason to change this unless you are providing a custom entry point.
-
caching
¶ Type: boolean Default: true
Toggle for role caching. This has no effect unless global caching is enabled. In a typical deployment, there is no reason to disable this.
-
cache_time
¶ Type: integer Default: <None>
Time to cache role data, in seconds. This has no effect unless both global caching and [role] caching are enabled.
-
list_limit
¶ Type: integer Default: <None>
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.
saml¶
-
assertion_expiration_time
¶ Type: integer Default: 3600
Determines the lifetime for any SAML assertions generated by keystone, using NotOnOrAfter attributes.
-
xmlsec1_binary
¶ Type: string Default: xmlsec1
Name of, or absolute path to, the binary to be used for XML signing. Although only the XML Security Library (xmlsec1) is supported, it may have a non-standard name or path on your system. If keystone cannot find the binary itself, you may need to install the appropriate package, use this option to specify an absolute path, or adjust keystone’s PATH environment variable.
-
certfile
¶ Type: string Default: /etc/keystone/ssl/certs/signing_cert.pem
Absolute path to the public certificate file to use for SAML signing. The value cannot contain a comma (,).
-
keyfile
¶ Type: string Default: /etc/keystone/ssl/private/signing_key.pem
Absolute path to the private key file to use for SAML signing. The value cannot contain a comma (,).
-
idp_entity_id
¶ Type: URI Default: <None>
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: https://keystone.example.com/v3/OS-FEDERATION/saml2/idp.
-
idp_sso_endpoint
¶ Type: URI Default: <None>
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: https://keystone.example.com/v3/OS-FEDERATION/saml2/sso.
-
idp_lang
¶ Type: string Default: en
This is the language used by the identity provider’s organization.
-
idp_organization_name
¶ Type: string Default: SAML Identity Provider
This is the name of the identity provider’s organization.
-
idp_organization_display_name
¶ Type: string Default: OpenStack SAML Identity Provider
This is the name of the identity provider’s organization to be displayed.
-
idp_organization_url
¶ Type: URI Default: https://example.com/
This is the URL of the identity provider’s organization. The URL referenced here should be useful to humans.
-
idp_contact_company
¶ Type: string Default: Example, Inc.
This is the company name of the identity provider’s contact person.
-
idp_contact_name
¶ Type: string Default: SAML Identity Provider Support
This is the given name of the identity provider’s contact person.
-
idp_contact_surname
¶ Type: string Default: Support
This is the surname of the identity provider’s contact person.
-
idp_contact_email
¶ Type: string Default: support@example.com
This is the email address of the identity provider’s contact person.
-
idp_contact_telephone
¶ Type: string Default: +1 800 555 0100
This is the telephone number of the identity provider’s contact person.
-
idp_contact_type
¶ Type: string Default: other
Valid Values: technical, support, administrative, billing, other This is the type of contact that best describes the identity provider’s contact person.
-
idp_metadata_path
¶ Type: string Default: /etc/keystone/saml2_idp_metadata.xml
Absolute path to the identity provider metadata file. This file should be generated with the keystone-manage saml_idp_metadata command. There is typically no reason to change this value.
-
relay_state_prefix
¶ Type: string Default: ss:mem:
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.
security_compliance¶
-
disable_user_account_days_inactive
¶ Type: integer Default: <None>
Minimum Value: 1 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 sql backend for the [identity] driver. When a user exceeds this threshold and is considered “inactive”, the user’s enabled attribute in the HTTP API may not match the value of the user’s enabled column in the user table.
-
lockout_failure_attempts
¶ Type: integer Default: <None>
Minimum Value: 1 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 [security_compliance] lockout_duration. This feature is disabled by default. If this feature is enabled and [security_compliance] lockout_duration is not set, then users may be locked out indefinitely until the user is explicitly enabled via the API. This feature depends on the sql backend for the [identity] driver.
-
lockout_duration
¶ Type: integer Default: 1800
Minimum Value: 1 The number of seconds a user account will be locked when the maximum number of failed authentication attempts (as specified by [security_compliance] lockout_failure_attempts) is exceeded. Setting this option will have no effect unless you also set [security_compliance] lockout_failure_attempts to a non-zero value. This feature depends on the sql backend for the [identity] driver.
-
password_expires_days
¶ Type: integer Default: <None>
Minimum Value: 1 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 sql backend for the [identity] driver.
-
unique_last_password_count
¶ Type: integer Default: 1
Minimum Value: 1 This controls the number of previous user password iterations to keep in history, in order to enforce that newly created passwords are unique. 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 sql backend for the [identity] driver.
-
minimum_password_age
¶ Type: integer Default: 0
Minimum Value: 0 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 sql backend for the [identity] driver. Note: If [security_compliance] password_expires_days is set, then the value for this option should be less than the password_expires_days.
-
password_regex
¶ Type: string Default: <None>
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 sql backend for the [identity] driver.
-
password_regex_description
¶ Type: string Default: <None>
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.
-
change_password_upon_first_use
¶ Type: boolean Default: false
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 options attribute ignore_change_password_upon_first_use to True for the desired user via the update user API. This feature is disabled by default. This feature is only applicable with the sql backend for the [identity] driver.
shadow_users¶
-
driver
¶ Type: string Default: sql
Entry point for the shadow users backend driver in the keystone.identity.shadow_users namespace. This driver is used for persisting local user references to externally-managed identities (via federation, LDAP, etc). Keystone only provides a sql driver, so there is no reason to change this option unless you are providing a custom entry point.
signing¶
-
certfile
¶ Type: string Default: /etc/keystone/ssl/certs/signing_cert.pem
Absolute path to the public certificate file to use for signing responses to revocation lists requests. Set this together with [signing] keyfile. For non-production environments, you may be interested in using keystone-manage pki_setup to generate self-signed certificates.
Warning
This option is deprecated for removal since P. Its value may be silently ignored in the future.
Reason: keystone-manage pki_setup was deprecated in Mitaka and removed in Pike. These options remain for backwards compatibility.
-
keyfile
¶ Type: string Default: /etc/keystone/ssl/private/signing_key.pem
Absolute path to the private key file to use for signing responses to revocation lists requests. Set this together with [signing] certfile.
Warning
This option is deprecated for removal since P. Its value may be silently ignored in the future.
Reason: keystone-manage pki_setup was deprecated in Mitaka and removed in Pike. These options remain for backwards compatibility.
-
ca_certs
¶ Type: string Default: /etc/keystone/ssl/certs/ca.pem
Absolute path to the public certificate authority (CA) file to use when creating self-signed certificates with keystone-manage pki_setup. Set this together with [signing] ca_key. There is no reason to set this option unless you are requesting revocation lists in a non-production environment. Use a [signing] certfile issued from a trusted certificate authority instead.
Warning
This option is deprecated for removal since P. Its value may be silently ignored in the future.
Reason: keystone-manage pki_setup was deprecated in Mitaka and removed in Pike. These options remain for backwards compatibility.
-
ca_key
¶ Type: string Default: /etc/keystone/ssl/private/cakey.pem
Absolute path to the private certificate authority (CA) key file to use when creating self-signed certificates with keystone-manage pki_setup. Set this together with [signing] ca_certs. There is no reason to set this option unless you are requesting revocation lists in a non-production environment. Use a [signing] certfile issued from a trusted certificate authority instead.
Warning
This option is deprecated for removal since P. Its value may be silently ignored in the future.
Reason: keystone-manage pki_setup was deprecated in Mitaka and removed in Pike. These options remain for backwards compatibility.
-
key_size
¶ Type: integer Default: 2048
Minimum Value: 1024 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 [signing] certfile issued from a trusted certificate authority instead.
Warning
This option is deprecated for removal since P. Its value may be silently ignored in the future.
Reason: keystone-manage pki_setup was deprecated in Mitaka and removed in Pike. These options remain for backwards compatibility.
-
valid_days
¶ Type: integer Default: 3650
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 [signing] certfile issued from a trusted certificate authority instead.
Warning
This option is deprecated for removal since P. Its value may be silently ignored in the future.
Reason: keystone-manage pki_setup was deprecated in Mitaka and removed in Pike. These options remain for backwards compatibility.
-
cert_subject
¶ Type: string Default: /C=US/ST=Unset/L=Unset/O=Unset/CN=www.example.com
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 [signing] certfile issued from a trusted certificate authority instead.
Warning
This option is deprecated for removal since P. Its value may be silently ignored in the future.
Reason: keystone-manage pki_setup was deprecated in Mitaka and removed in Pike. These options remain for backwards compatibility.
token¶
-
bind
¶ Type: list Default: This is a list of external authentication mechanisms which should add token binding metadata to tokens, such as kerberos or x509. Binding metadata is enforced according to the [token] enforce_token_bind option.
-
enforce_token_bind
¶ Type: string Default: permissive
This controls the token binding enforcement policy on tokens presented to keystone with token binding metadata (as specified by the [token] bind option). disabled completely bypasses token binding validation. permissive and strict do not require tokens to have binding metadata (but will validate it if present), whereas required will always demand tokens to having binding metadata. permissive will allow unsupported binding metadata to pass through without validation (usually to be validated at another time by another component), whereas strict and required will demand that the included binding metadata be supported by keystone.
Warning
This option is deprecated for removal since P. Its value may be silently ignored in the future.
-
expiration
¶ Type: integer Default: 3600
Minimum Value: 0 Maximum Value: 9223372036854775807 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 [token] driver, as more tokens will be simultaneously valid. Keystone tokens are also bearer tokens, so a shorter duration will also reduce the potential security impact of a compromised token.
-
provider
¶ Type: string Default: fernet
Entry point for the token provider in the keystone.token.provider namespace. The token provider controls the token construction, validation, and revocation operations. Keystone includes fernet and uuid token providers. uuid tokens must be persisted (using the backend specified in the [token] driver option), but do not require any extra configuration or setup. fernet tokens do not need to be persisted at all, but require that you run keystone-manage fernet_setup (also see the keystone-manage fernet_rotate command).
-
driver
¶ Type: string Default: sql
Entry point for the token persistence backend driver in the keystone.token.persistence namespace. Keystone provides the sql driver. The sql option (default) depends on the options in your [database] section. If you’re using the fernet [token] provider, this backend will not be utilized to persist tokens at all.
Warning
This option is deprecated for removal since P. Its value may be silently ignored in the future.
-
caching
¶ Type: boolean Default: true
Toggle for caching token creation and validation data. This has no effect unless global caching is enabled.
-
cache_time
¶ Type: integer Default: <None>
Minimum Value: 0 Maximum Value: 9223372036854775807 The number of seconds to cache token creation and validation data. This has no effect unless both global and [token] caching are enabled.
-
revoke_by_id
¶ Type: boolean Default: true
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 kvs [revoke] driver.
-
allow_rescope_scoped_token
¶ Type: boolean Default: true
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.
-
infer_roles
¶ Type: boolean Default: true
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.
-
cache_on_issue
¶ Type: boolean Default: true
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.
-
allow_expired_window
¶ Type: integer Default: 172800
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.
tokenless_auth¶
-
trusted_issuer
¶ Type: multi-valued Default: 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 trusted_issuer = CN=john,OU=keystone,O=openstack and trusted_issuer = CN=mary,OU=eng,O=abc.
-
protocol
¶ Type: string Default: x509
The federated protocol ID used to represent X.509 tokenless authorization. This is used in combination with the value of [tokenless_auth] issuer_attribute to find a corresponding federated mapping. In a typical deployment, there is no reason to change this value.
-
issuer_attribute
¶ Type: string Default: SSL_CLIENT_I_DN
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.
trust¶
-
enabled
¶ Type: boolean Default: true
Delegation and impersonation features using trusts can be optionally disabled.
-
allow_redelegation
¶ Type: boolean Default: false
Allows authorization to be redelegated from one user to another, effectively chaining trusts together. When disabled, the remaining_uses attribute of a trust is constrained to be zero.
-
max_redelegation_count
¶ Type: integer Default: 3
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.
-
driver
¶ Type: string Default: sql
Entry point for the trust backend driver in the keystone.trust namespace. Keystone only provides a sql driver, so there is no reason to change this unless you are providing a custom entry point.