Identity serviceThis chapter details the OpenStack Identity service configuration
options. For installation prerequisites and step-by-step walkthroughs, see the
OpenStack Installation Guide for your distribution (docs.openstack.org) and Cloud
Administrator Guide.Caching layerIdentity supports a caching layer that is above the
configurable subsystems, such as token or assignment. The
majority of the caching configuration options are set in the
[cache] section. However, each section that
has the capability to be cached usually has a
option that will toggle caching for that
specific section. By default, caching is globally disabled.
Options are as follows:Current functional backends are:dogpile.cache.memcached - Memcached backend using
the standard python-memcached librarydogpile.cache.pylibmc - Memcached backend using
the pylibmc librarydogpile.cache.bmemcached - Memcached using
python-binary-memcached library.dogpile.cache.redis - Redis backenddogpile.cache.dbm - Local DBM file backenddogpile.cache.memory - In-memory cache, not
suitable for use outside of testing as it does not cleanup it's
internal cache on cache expiration and does not share cache
between processes. This means that caching and cache invalidation
will not be consistent or reliable.dogpile.cache.mongo - MongoDB as caching
backend.Identity service configuration fileThe Identity service is configured in the
/etc/keystone/keystone.conf file.The following tables provide a comprehensive list of the Identity
service options.Domain-specific configurationThe Identity service supports domain-specific
Identity drivers which allow a domain to have its
own LDAP or SQL back end. By default, domain-specific
drivers are disabled.Domain-specific Identity configuration options can be stored in
domain-specific configuration files, or in the Identity SQL database
using API REST calls.Storing and managing configuration options in
a SQL database is experimental in Kilo.Enable drivers for domain-specific configuration filesTo enable domain-specific drivers,
set these options in the /etc/keystone/keystone.conf
file:[identity]
domain_specific_drivers_enabled = True
domain_config_dir = /etc/keystone/domainsWhen you enable domain-specific drivers, Identity looks
in the directory for
configuration files that are named as
keystone.DOMAIN_NAME.conf.
Any domain without a domain-specific configuration
file uses options in the primary configuration file.Domain-specific configuration fileAny options that you define in the domain-specific
configuration file override options in the /etc/keystone/keystone.conf
configuration file.Domains configured for the service user or project
use the Identity API v3 to retrieve the service token.To configure the domain for the service user, set the
following options in the [DEFAULT] section of the
/etc/keystone/domains/keystone.DOMAIN_NAME.conf
file:admin_user_domain_id = USER_DOMAIN_ID
admin_user_domain_name = USER_DOMAIN_NAMEReplace USER_DOMAIN_ID with
the Identity service account user domain ID, and
USER_DOMAIN_NAME with the Identity
service account user domain name.To configure the domain for the project, set the
following options in the [DEFAULT] section of the
/etc/keystone/domains/keystone.DOMAIN_NAME.conf
file:admin_project_domain_id = PROJECT_DOMAIN_ID
admin_project_domain_name = PROJECT_DOMAIN_NAMEReplace PROJECT_DOMAIN_ID with
the Identity service account project domain ID, and
PROJECT_DOMAIN_NAME with the
Identity service account project domain name.Enable drivers for storing configuration options in SQL databaseTo enable domain-specific drivers, set these options in
the /etc/keystone/keystone.conf file:[identity]
domain_specific_drivers_enabled = True
domain_configurations_from_database = TrueAny domain-specific configuration options specified through
the Identity v3 API will override domain-specific configuration files
in the /etc/keystone/domains directory.Migrate domain-specific configuration files to the SQL databaseYou can use the keystone-manage command
to migrate configuration options in domain-specific configuration
files to the SQL database:$ keystone-manage domain_config_upload --allTo upload options from a specific domain-configuration
file, specify the domain name:$ keystone-manage domain_config_upload --domain-name DOMAIN_NAME