搜索

第 7 章 Keystone

download PDF

下面的章节包含有关 keystone 服务中的配置选项的信息。

7.1. keystone.conf

本节包含 /etc/keystone/keystone.conf 文件的选项。

7.1.1. DEFAULT

下表概述了 /etc/keystone/keystone.conf 文件中的 [DEFAULT] 组下可用的选项。

.

配置选项 = 默认值类型Description

admin_token = None

字符串值

不建议使用 此功能。反之,使用 keystone-manage bootstrap 命令。此选项的值被视为"共享机密",可用于通过 API 引导 Keystone。此"令牌"并不代表一个用户(没有身份),也无显式授权(有效地绕过大多数授权检查)。如果设置为 None,则忽略该值,并且 admin_token 中间件被有效地禁用。

conn_pool_min_size = 2

整数值

连接过期策略的池大小限制

conn_pool_ttl = 1200

整数值

池中闲置连接的时间延迟

control_exchange = keystone

字符串值

默认交换,哪些主题在哪些方面有范围。可以被 transport_url 选项指定的交换名称覆盖。

debug = False

布尔值

如果设置为 true,则日志级别将设置为 DEBUG,而不是默认的 INFO 级别。

default_log_levels = ['amqp=WARN', 'amqplib=WARN', 'boto=WARN', 'qpid=WARN', 'sqlalchemy=WARN', 'suds=INFO', 'oslo.messaging=INFO', 'oslo_messaging=INFO', 'iso8601=WARN', 'requests.packages.urllib3.connectionpool=WARN', 'urllib3.connectionpool=WARN', 'websocket=WARN', 'requests.packages.urllib3.util.retry=WARN', 'urllib3.util.retry=WARN', 'keystonemiddleware=WARN', 'routes.middleware=WARN', 'stevedore=WARN', 'taskflow=WARN', 'keystoneauth=WARN', 'oslo.cache=INFO', 'oslo_policy=INFO', 'dogpile.core.dogpile=INFO']

列表值

以 logger=LEVEL 的形式列出软件包日志级别列表。如果设置了 log_config_append,则忽略此选项。

default_publisher_id = None

字符串值

用于传出通知的默认 publisher_id。如果未定义,则 Keystone 将默认使用服务器的主机名。

executor_thread_pool_size = 64

整数值

当 executor 为 threading 或 eventle 时,executor 线程池的大小。

fatal_deprecations = False

布尔值

启用或禁用弃用的致命状态。

insecure_debug = False

布尔值

如果设置为 true,则服务器将在 HTTP 响应中返回信息,该响应可能允许未经身份验证的或经过身份验证的用户获得比 normal 更多的信息,如有关身份验证失败的原因的更多详情。这对调试可能很有用,但 不安全。

`instance_format = [instance: %(uuid)s] `

字符串值

通过日志消息传递的实例格式。

`instance_uuid_format = [instance: %(uuid)s] `

字符串值

通过日志消息传递的实例 UUID 的格式。

list_limit = None

整数值

集合中返回的最大实体数。然后,可以通过在适当的部分中指定 list_limit 来覆盖这个全局限制(例如 [assignment])。默认情况下不设置任何限制。在大型部署中,建议您将其设置为合理的数字,以防止列出所有用户和项目等操作,从而给系统造成不必要的负载。

log-config-append = None

字符串值

日志记录配置文件的名称。此文件附加到任何现有日志记录配置文件中。有关日志记录配置文件的详情,请查看 Python 日志记录模块文档。请注意,当使用日志记录配置文件时,所有日志记录配置都会在配置文件中设置,其他日志记录配置选项将被忽略(如 log-date-format)。

log-date-format = %Y-%m-%d %H:%M:%S

字符串值

在日志记录中定义 %%(asctime) s 的格式字符串。默认:%(default) s。如果设置了 log_config_append,则忽略此选项。

log-dir = None

字符串值

(可选)用于相对 log_file 路径的基础目录。如果设置了 log_config_append,则忽略此选项。

log-file = None

字符串值

(可选)要将日志输出发送到的日志文件名称。如果没有设置默认值,日志记录将进入由 use_stderr 定义的 stderr。如果设置了 log_config_append,则忽略此选项。

log_rotate_interval = 1

整数值

轮转日志文件前的时间长度。除非将 log_rotation_type 设置为 "interval",否则此选项将被忽略。

log_rotate_interval_type = days

字符串值

轮转间隔类型。在调度下一个轮转时,将使用上次文件更改的时间(或服务启动的时间)。

log_rotation_type = none

字符串值

日志轮转类型。

logging_context_format_string = %(asctime) s.%(msecs) 03d %(process) d %(levelname) s %(name) s [%(request_id) s %(user_identity) s] %(instance) s%(message) s

字符串值

使用上下文格式化用于日志消息的字符串。oslo_log.formatters.ContextFormatter 使用

logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d

字符串值

当消息的日志记录级别为 DEBUG 时,要附加到日志消息的其他数据。oslo_log.formatters.ContextFormatter 使用

logging_default_format_string = %(asctime) s.%(msecs) 03d %(process) d %(levelname) s %(name) s [-] %(instance) s%(message) s

字符串值

上下文未定义时用于日志消息的字符串。oslo_log.formatters.ContextFormatter 使用

logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s

字符串值

用以下格式为每一行加前缀 异常输出。oslo_log.formatters.ContextFormatter 使用

logging_user_identity_format = %(user) s %(tenant) s %(domain) s %(user_domain) s %(project_domain) s

字符串值

定义 logging_context_format_string 中使用的 %(user_identity) s 的格式字符串。oslo_log.formatters.ContextFormatter 使用

max_logfile_count = 30

整数值

轮转日志文件的最大数量。

max_logfile_size_mb = 200

整数值

日志文件最大大小(以 MB 为单位)。如果 "log_rotation_type" 没有设置为 "size",则忽略这个选项。

max_param_size = 64

整数值

限制用户和项目 ID/名称的大小。

max_project_tree_depth = 5

整数值

项目层次结构的最大深度,不包括作为层次结构顶部的域的项目。警告:将其设置为大的值可能会对性能造成负面影响。

max_token_size = 255

整数值

[DEFAULT] max_param_size 类似,但为令牌值提供一个例外。使用 Fernet 令牌时,这可设置为低 255。

notification_format = cadf

字符串值

定义身份服务事件的通知格式。基本 通知仅包含有关正在操作的资源的信息。cadf 通知具有相同的信息,以及有关事件的启动器的信息。cadf 选项完全与 基本 选项向后兼容,但完全符合 CADF,建议在审计用例中使用。

notification_opt_out = ['identity.authenticate.success', 'identity.authenticate.pending', 'identity.authenticate.failed']

多值

您可以通过显式选择减少通知 keystone 发送的数量。Keystone 不会发出与此列表中表达的模式匹配的通知。值应该采用 identity.<resource_type>.<operation&gt; 的形式。默认情况下,所有与身份验证相关的通知都会被自动隐藏。此字段可以设置多次,以便选择不使用多个通知主题。例如,以下禁止通知描述用户创建或成功身份验证事件: notification_opt_out=identity.user.create notification_opt_out=identity.authenticate.success

public_endpoint = None

URI 值

向客户端公告的 Keystone 的基本公共端点 URL (注意:这不会影响 Keystone 侦听连接的方式)。默认为请求的基域 URL。例如,如果 keystone 收到对 http://server:5000/v3/users 的请求,则此选项将自动视为 http://server:5000。只有基本 URL 的值包含 keystone 不会自动推断的路径(/prefix/v3)或者应该在不同主机上找到端点时,才应设置选项。

publish_errors = False

布尔值

启用或禁用错误事件的发布。

rate_limit_burst = 0

整数值

每个 rate_limit_interval 的最大日志信息数。

rate_limit_except_level = CRITICAL

字符串值

速率限制使用的日志级别名称:CRITICAL、ERROR、INFO、WARNING、DEBUG 或空字符串。大于或等于 rate_limit_except_level 的日志不会被过滤。空字符串表示过滤所有级别。

rate_limit_interval = 0

整数值

日志速率限制的间隔、秒数。

rpc_conn_pool_size = 30

整数值

RPC 连接池的大小。

rpc_ping_enabled = False

布尔值

添加端点以回答 ping 调用。端点名为 oslo_rpc_server_ping

rpc_response_timeout = 60

整数值

从调用等待响应的秒数。

strict_password_check = False

布尔值

如果设置为 true,则对密码操作执行严格的密码长度检查。如果密码超过最大长度,则操作将失败,并显示 HTTP 403 Forbidden 错误。如果设置为 false,密码会自动截断到最大长度。

syslog-log-facility = LOG_USER

字符串值

syslog 工具接收日志行。如果设置了 log_config_append,则忽略此选项。

transport_url = rabbit://

字符串值

用于连接到消息传递后端的网络地址和可选用户凭证,采用 URL 格式。预期格式为:

driver://[user:pass@]host:port[,[userN:passN@]hostN:portN]/virtual_host?query

示例:rabbit://rabbitmq:password@127.0.0.1:5672//

有关 URL 中字段的详情,请查看 oslo_messaging.TransportURL 文档 https://docs.openstack.org/oslo.messaging/latest/reference/transport.html

use-journal = False

布尔值

为日志记录启用 journald。如果在 systemd 环境中运行,您可能需要启用日志支持。这样做将使用日志原生协议,该协议除日志消息之外还包含结构化元数据。如果设置了 log_config_append,此选项将被忽略。

use-json = False

布尔值

使用 JSON 格式进行日志记录。如果设置了 log_config_append,则忽略此选项。

use-syslog = False

布尔值

使用 syslog 进行日志记录。现有的 syslog 格式是 DEPRECATED,稍后将更改为遵循 RFC5424。如果设置了 log_config_append,则忽略此选项。

use_eventlog = False

布尔值

日志输出到 Windows 事件日志.

use_stderr = False

布尔值

将输出输出到标准错误。如果设置了 log_config_append,则忽略此选项。

watch-log-file = False

布尔值

使用旨在监视文件系统的日志记录处理程序。移动或移除日志文件时,此处理程序将立即打开具有指定路径的新日志文件。只有在指定了 log_file 选项并使用 Linux 平台时,才有意义。如果设置了 log_config_append,则忽略此选项。

7.1.2. application_credential

下表概述了 /etc/keystone/keystone.conf 文件中的 [application_credential] 组下可用的选项。

表 7.1. application_credential
配置选项 = 默认值类型Description

cache_time = None

整数值

缓存应用程序凭证数据的时间(以秒为单位)。除非启用了全局缓存,否则这无效。

caching = True

布尔值

切换应用程序凭证缓存。除非启用了全局缓存,否则这无效。

driver = sql

字符串值

keystone.application_credential 命名空间中的应用程序凭证后端驱动程序的入口点。Keystone 仅提供 sql 驱动程序,因此除非您提供了自定义入口点,否则没有更改此设置的原因。

user_limit = -1

整数值

允许用户创建的最大应用程序凭证数。值为 -1 表示无限。如果没有设置限制,则允许用户创建应用程序凭证,这可能会在 keystone 数据库中导致禁止,或者打开 keystone 攻击。

7.1.3. 分配

下表概述了 /etc/keystone/keystone.conf 文件中的 [assignment] 组下可用的选项。

表 7.2. 分配
配置选项 = 默认值类型Description

driver = sql

字符串值

keystone.assignment 命名空间中的分配后端驱动程序(角色分配的位置)的入口点。keystone 本身仅提供 SQL 驱动程序。除非为 keystone 编写专有驱动程序,否则您不需要设置这个选项。

prohibited_implied_role = ['admin']

列表值

禁止成为代表角色的角色名称列表。

7.1.4. auth

下表概述了 /etc/keystone/keystone.conf 文件中的 [auth] 组下可用的选项。

表 7.3. auth
配置选项 = 默认值类型Description

application_credential = None

字符串值

keystone.auth.application_credential 命名空间中的 application_credential auth 插件模块的入口点。除非您要覆盖 keystone 自己的 application_credential 身份验证插件,否则您不需要设置它。

external = None

字符串值

keystone.auth.external 命名空间中的 external (REMOTE_USER) auth 插件模块的入口点。提供的驱动程序是 DefaultDomainDomain。默认驱动程序为 DefaultDomain,它假定默认域上下文中存在的 REMOTE_USER 变量中的 keystone 指定的用户名标识的所有用户。Domain 选项要求将额外的环境变量显示给 keystone, REMOTE_DOMAIN,其中包含 REMOTE_USER 的域名(如果未设置 REMOTE_DOMAIN,则改为使用默认域)。除非您要利用"外部身份验证",否则您不需要设置它,其中应用服务器(如 Apache)正在处理身份验证而不是 keystone。

mapped = None

字符串值

keystone.auth.mapped 命名空间中的映射 auth 插件模块的入口点。除非您要覆盖 keystone 自己的 映射 身份验证插件,否则您不需要设置它。

methods = ['external', 'password', 'token', 'oauth1', 'mapped', 'application_credential']

列表值

允许的身份验证方法.注: 如果您当前使用联邦,您应该禁用 外部 验证方法。外部身份验证和联邦都使用 REMOTE_USER 变量。由于调用 mapped 和 external 插件来验证请求环境中的属性,所以可能会导致冲突。

oauth1 = None

字符串值

keystone.auth.oauth1 命名空间中的 OAuth 1.0a auth 插件模块的入口点。除非您要覆盖 keystone 自己的 oauth1 身份验证插件,否则您不需要设置它。

password = None

字符串值

keystone.auth.password 命名空间中的 password auth 插件模块的入口点。除非您要覆盖 keystone 自己的密码身份验证插件,否则您不需要设置它。

token = None

字符串值

keystone.auth.token 命名空间中令牌 auth 插件模块的入口点。除非您要覆盖 keystone 自己的令牌身份验证插件,否则您不需要设置它。

7.1.5. 缓存

下表概述了 /etc/keystone/keystone.conf 文件中的 [cache] 组下可用的选项。

表 7.4. 缓存
配置选项 = 默认值类型Description

backend = dogpile.cache.null

字符串值

缓存后端模块。对于具有数百个线程服务器的基于 eventlet 的环境,建议使用带有池(oslo_cache.memcache_pool)的 Memcache。对于小于 100 个线程服务器的环境,建议使用 Memcached (dogpile.cache.memcached)或 Redis (dogpile.cache.redis)。具有单一服务器实例的测试环境可以使用 dogpile.cache.memory 后端。

backend_argument = []

多值

为 backend 模块提供的参数。指定每参数传递到 dogpile.cache 后端的一次这个选项。示例格式:"<argname>:<value>"。

config_prefix = cache.oslo

字符串值

为缓存区域构建配置字典的前缀。除非存在另一个具有相同配置名称的 dogpile.cache 区域,否则这不应更改。

dead_timeout = 60

浮点值

尝试在 HashClient 内部机制中重新添加节点前的时间(以秒为单位)。

debug_cache_backend = False

布尔值

从缓存后端进行额外的调试(缓存键、get/set/delete/etc 调用)。只有在您需要使用键/值查看特定的 cache-backend get/set/delete 调用时才有用。通常,这应该设为 false。

enable_retry_client = False

布尔值

启用重试客户端机制来处理失败。这些机制可用于嵌套所有的 pymemcache 客户端。打包程序允许您定义有多少尝试进行,以及 attemots 之间等待的时间。

enable_socket_keepalive = False

布尔值

dogpile 的 pymemcache 后端的套接字 keepalive 的全局切换

enabled = True

布尔值

缓存的全局切换。

expiration_time = 600

整数值

dogpile.cache 区域中的任何缓存项的默认 TTL (以秒为单位)。这适用于任何未为其定义显式缓存过期时间的缓存方法。

hashclient_retry_attempts = 2

整数值

在客户端标记为死前应尝试的次数,并在 HashClient 的内部机制中从池中删除。

hashclient_retry_delay = 1

浮点值

在 HashClient 内部机制中重试尝试之间应经过的时间(以秒为单位)。

memcache_dead_retry = 300

整数值

在再次尝试前,memcached 服务器被视为 dead 的秒数。(dogpile.cache.memcache 和 oslo_cache.memcache_pool 后端)。

memcache_pool_connection_get_timeout = 10

整数值

操作将等待的秒数,以获取 memcache 客户端连接。

memcache_pool_flush_on_reconnect = False

布尔值

如果 memcache 在重新连接时清除,则全局切换。(仅oslo_cache.memcache_pool 后端)。

memcache_pool_maxsize = 10

整数值

每个 memcached 服务器的最大打开连接数。(oslo_cache.memcache_pool backend)。

memcache_pool_unused_timeout = 60

整数值

到 memcached 的连接在池关闭前没有被使用的秒数。(仅oslo_cache.memcache_pool 后端)。

memcache_servers = ['localhost:11211']

列表值

memcache 服务器格式为 "host:port"。(dogpile.cache.memcached 和 oslo_cache.memcache_pool 后端)。如果给定主机引用 IPv6 或给定域,则您应该为给定地址系列(inet6) (inet6) (inet6) ( inet6[::1]:11211,inet6:[fd12:3456:789a:1::1]:11211,inet6:[controller-0.internalapi]:11211)作为前缀。如果未提供地址系列,则使用的默认地址系列将是 inet (对应于 IPv4)

memcache_socket_timeout = 1.0

浮点值

每次对服务器调用的超时时间(以秒为单位)。(dogpile.cache.memcache 和 oslo_cache.memcache_pool 后端)。

proxies = []

列表值

用于导入的代理类会影响 dogpile.cache 后端功能的方式。有关 change-backend-behavior 的 dogpile.cache 文档。

retry_attempts = 2

整数值

在失败前尝试操作的次数。

retry_delay = 0

浮点值

每次尝试之间休眠的秒数。

socket_keepalive_count = 1

整数值

在丢弃连接前,保持 TCP 的最大 keepalive 探测 TCP 数量。应该是大于零的正整数。

socket_keepalive_idle = 1

整数值

在 TCP 开始发送 keepalive 探测前,连接需要保持闲置的时间(以秒为单位)。应该是大于零的正整数。

socket_keepalive_interval = 1

整数值

各个 keepalive 探测之间的时间(以秒为单位)。应该是大于零的正整数。

tls_allowed_ciphers = None

字符串值

为使用 TLS 上下文创建的套接字设置可用密码。它应该是 OpenSSL 密码列表格式的字符串。如果没有指定,则所有启用了 OpenSSL 的密码都可用。

tls_cafile = None

字符串值

以 PEM 格式串联的 CA 证书文件的路径,以建立缓存服务器的真实性。如果 tls_enabled 是 False,这个选项将被忽略。

tls_certfile = None

字符串值

到 PEM 格式的单个文件的路径,其中包含客户端证书以及建立证书真实性所需的任意数量的 CA 证书。只有在需要客户端身份验证时才需要此文件。如果 tls_enabled 是 False,这个选项将被忽略。

tls_enabled = False

布尔值

与缓存服务器组合时,TLS 使用的全局切换。

tls_keyfile = None

字符串值

到包含客户端私钥的单个文件的路径。其他私钥将从 tls_certfile 中指定的文件获取。如果 tls_enabled 是 False,这个选项将被忽略。

7.1.6. catalog

下表概述了 /etc/keystone/keystone.conf 文件中的 [catalog] 组下可用的选项。

表 7.5. catalog
配置选项 = 默认值类型Description

cache_time = None

整数值

缓存目录数据的时间(以秒为单位)。除非同时启用了全局和目录缓存,否则这不起作用。目录数据(服务、端点等)通常不会频繁更改,因此可能需要更长的时间超过全局默认值。

caching = True

布尔值

切换目录缓存。除非启用了全局缓存,否则这无效。在典型的部署中,没有理由禁用此功能。

driver = sql

字符串值

keystone.catalog 命名空间中的目录驱动程序的入口点。Keystone 提供了一个 sql 选项(通过 SQL 支持基本 CRUD 操作)、模板 选项(从磁盘上的模板目录文件加载目录)和 endpoint_filter.sql 选项(支持每个项目的任意服务目录)。

list_limit = None

整数值

在目录集合中返回的最大实体数。通常没有设置此设置的原因,因为部署可以有足够的服务或端点超过合理的限制。

template_file = default_catalog.templates

字符串值

用于模板目录后端的文件的绝对路径。只有在 [catalog] 驱动程序 设为 templated 时,才使用此选项。

7.1.7. CORS

下表概述了 /etc/keystone/keystone.conf 文件中的 [cors] 组下可用的选项。

表 7.6. CORS
配置选项 = 默认值类型Description

allow_credentials = True

布尔值

指明实际请求可以包含用户凭证

allow_headers = ['X-Auth-Token', 'X-Openstack-Request-Id', 'X-Subject-Token', 'X-Project-Id', 'X-Project-Name', 'X-Project-Domain-Id', 'X-Project-Domain-Name', 'X-Domain-Id', 'X-Domain-Name', 'Openstack-Auth-Receipip']

列表值

指定在实际请求过程中可以使用哪些标头字段名称。

allow_methods = ['GET', 'PUT', 'POST', 'DELETE', 'PATCH']

列表值

指明在实际请求期间可以使用哪些方法。

allowed_origin = None

列表值

指明此资源是否可以与请求"origin"标头中收到的域共享。格式:"<protocol>://<host>[:<port>]",没有尾部斜杠。示例 :https://horizon.example.com

expose_headers = ['X-Auth-Token', 'X-Openstack-Request-Id', 'X-Subject-Token', 'Openstack-Auth-Receipt']

列表值

指明哪些标头可以安全地公开给 API。默认为 HTTP Simple Headers。

max_age = 3600

整数值

CORS preflight 请求的最大缓存期限。

7.1.8. credential

下表概述了 /etc/keystone/keystone.conf 文件中的 [credential] 组下可用的选项。

表 7.7. credential
配置选项 = 默认值类型Description

auth_ttl = 15

整数值

签名 EC2 或 S3 令牌请求的时间长度(以分钟为单位)从令牌请求中包含的时间戳有效。

cache_time = None

整数值

缓存凭证数据的时间(以秒为单位)。除非启用了全局缓存,否则这无效。

caching = True

布尔值

只在检索用户凭证时切换缓存。除非启用了全局缓存,否则这无效。

driver = sql

字符串值

keystone.credential 命名空间中的凭据后端驱动程序的入口点。Keystone 仅提供 sql 驱动程序,因此除非您提供自定义入口点,否则没有更改此设置的原因。

key_repository = /etc/keystone/credential-keys/

字符串值

包含用于加密和解密存储在凭据后端中的凭据的 Fernet 密钥目录。用于加密凭据的 Fernet 密钥与用于加密 Fernet 令牌的 Fernet 密钥没有关系。这两个密钥集都应单独管理,并且需要不同的轮转策略。不要与用于管理 Fernet 令牌密钥的存储库共享此存储库。

provider = fernet

字符串值

keystone.credential.provider 命名空间中的凭证加密和解密操作的入口点。Keystone 仅提供 fernet 驱动程序,因此,除非提供了用于加密和解密凭据的自定义入口点,否则没有更改此设置的原因。

user_limit = -1

整数值

允许用户创建的最大凭证数。值为 -1 表示无限。如果没有设置限制,则允许用户在其上创建凭证,这可能会导致 keystone 数据库中的 bloat 或打开 keystone 攻击。

7.1.9. database

下表概述了 /etc/keystone/keystone.conf 文件中的 [database] 组下可用的选项。

表 7.8. database
配置选项 = 默认值类型Description

backend = sqlalchemy

字符串值

用于数据库的后端。

connection = None

字符串值

用于连接到数据库的 SQLAlchemy 连接字符串。

connection_debug = 0

整数值

SQL 调试信息的详细程度: 0=None, 100=Everything。

`connection_parameters = `

字符串值

用于连接时附加到连接 URL 的可选 URL 参数;指定 param1=value1&param2=value2&…​

connection_recycle_time = 3600

整数值

连接池中存在的连接的时间超过这个秒数,下一次从池中签出它们的时间将替换为新的连接。

connection_trace = False

布尔值

将 Python 堆栈跟踪作为注释字符串添加到 SQL。

db_inc_retry_interval = True

布尔值

如果为 True,将数据库操作的重试间隔增加到 db_max_retry_interval。

db_max_retries = 20

整数值

在引发错误前出现连接错误或死锁错误时的最大重试次数。设置为 -1 以指定无限重试计数。

db_max_retry_interval = 10

整数值

如果设置了 db_inc_retry_interval,则数据库操作重试之间的最大秒数。

db_retry_interval = 1

整数值

数据库事务重试之间的秒数。

max_overflow = 50

整数值

如果设置,请将这个值用于 SQLAlchemy 的 max_overflow。

max_pool_size = 5

整数值

在池中保留的最大 SQL 连接数。将值设为 0 表示没有限制。

max_retries = 10

整数值

启动期间数据库连接重试的最大数量。设置为 -1 以指定无限重试计数。

mysql_enable_ndb = False

布尔值

如果为 True,则透明地启用对处理 MySQL 集群(NDB)的支持。

mysql_sql_mode = TRADITIONAL

字符串值

用于 MySQL 会话的 SQL 模式。这个选项(包括默认选项)会覆盖任何 server-set SQL 模式。要使用服务器配置设置的任何 SQL 模式,请将其设置为 no 值。示例:mysql_sql_mode=

pool_timeout = None

整数值

如果设置,请将这个值用于 SQLAlchemy 的 pool_timeout。

retry_interval = 10

整数值

重新尝试打开 SQL 连接之间的间隔。

slave_connection = None

字符串值

用于连接到从数据库的 SQLAlchemy 连接字符串。

sqlite_synchronous = True

布尔值

如果为 True,则 SQLite 使用同步模式。

use_db_reconnect = False

布尔值

启用在连接丢失时进行数据库重新连接的实验性使用。

7.1.10. domain_config

下表概述了 /etc/keystone/keystone.conf 文件中的 [domain_config] 组下可用的选项。

表 7.9. domain_config
配置选项 = 默认值类型Description

cache_time = 300

整数值

用于缓存域特定配置数据的生存时间(TTL,以秒为单位)。除非启用了 [domain_config] 缓存,否则这不起作用。

caching = True

布尔值

切换到域特定配置后端的缓存。除非启用了全局缓存,否则这无效。通常没有禁用此功能的原因。

driver = sql

字符串值

keystone.resource.domain_config 命名空间中的特定于域的配置驱动程序的入口点。keystone 只提供一个 sql 选项,因此除非您提供了自定义入口点,否则没有理由设置它。

7.1.11. endpoint_filter

下表概述了 /etc/keystone/keystone.conf 文件中的 [endpoint_filter] 组下可用的选项。

表 7.10. endpoint_filter
配置选项 = 默认值类型Description

driver = sql

字符串值

keystone.endpoint_filter 命名空间中的端点过滤器驱动程序的入口点。keystone 只提供一个 sql 选项,因此除非您提供了自定义入口点,否则没有理由设置它。

return_all_endpoints_if_no_filter = True

布尔值

如果配置的端点过滤器不生成用户 + 项目对的任何端点(因此可能会为空的服务目录),这会控制 keystone 的行为。如果设置为 true,则 keystone 将返回整个服务目录。如果设置为 false,则 keystone 将返回一个空服务目录。

7.1.12. endpoint_policy

下表概述了 /etc/keystone/keystone.conf 文件中的 [endpoint_policy] 组下可用的选项。

表 7.11. endpoint_policy
配置选项 = 默认值类型Description

driver = sql

字符串值

keystone.endpoint_policy 命名空间中的端点策略驱动程序的入口点。keystone 只提供一个 sql 驱动程序,因此除非您提供自定义入口点,否则没有设置它的原因。

7.1.13. eventlet_server

下表概述了 /etc/keystone/keystone.conf 文件中的 [eventlet_server] 组下可用的选项。

表 7.12. eventlet_server
配置选项 = 默认值类型Description

admin_bind_host = 0.0.0.0

主机地址值

要侦听的 admin 服务的网络接口的 IP 地址。弃用自: K

*reason:*Support 在 eventlet 下运行 keystone 已在 Newton 发行版本中删除。这些选项保持向后兼容,因为它们用于 URL 替换。

admin_port = 35357

端口值

要侦听的 admin 服务的端口号。弃用自: K

*reason:*Support 在 eventlet 下运行 keystone 已在 Newton 发行版本中删除。这些选项保持向后兼容,因为它们用于 URL 替换。

public_bind_host = 0.0.0.0

主机地址值

要侦听的公共服务的网络接口的 IP 地址。弃用自: K

*reason:*Support 在 eventlet 下运行 keystone 已在 Newton 发行版本中删除。这些选项保持向后兼容,因为它们用于 URL 替换。

public_port = 5000

端口值

要侦听的公共服务的端口号。弃用自: K

*reason:*Support 在 eventlet 下运行 keystone 已在 Newton 发行版本中删除。这些选项保持向后兼容,因为它们用于 URL 替换。

7.1.14. federation

下表概述了 /etc/keystone/keystone.conf 文件中的 [federation] 组下可用的选项。

表 7.13. federation
配置选项 = 默认值类型Description

`assertion_prefix = `

字符串值

过滤环境变量名称进行联邦断言时使用的前缀。匹配的变量被传递给联邦映射引擎。

caching = True

布尔值

切换到联邦缓存。除非启用了全局缓存,否则这无效。通常没有禁用此功能的原因。

default_authorization_ttl = 0

整数值

从映射传输的组成员资格的有效性(以分钟为单位)的默认时间(以分钟为单位)。默认值为 0,这意味着禁用。

driver = sql

字符串值

keystone.federation 命名空间中的联邦后端驱动程序的入口点。Keystone 仅提供 sql 驱动程序,因此不要设置此选项,除非您提供了自定义入口点。

federated_domain_name = Federated

字符串值

保留允许联邦临时用户具有域概念的任意域名。请注意,管理员将无法使用此名称创建域,或将现有域更新为此名称。除非确实需要修改这个值,否则不建议更改这个值。弃用自: T

*reason:* 这个选项已被其身份提供程序域中存在的临时用户替代。

remote_id_attribute = None

字符串值

用于从环境中获取身份提供程序的实体 ID 的所有协议的默认值。对于 mod_shib,这将是 Shib-Identity-Provider。对于 mod_auth_openidc,这可能是 HTTP_OIDC_ISS。对于 mod_auth_mellon,这可能是 MELLON_IDP。这可以通过使用 API 向联邦协议提供 remote_id_attribute 来基于每个协议覆盖。

sso_callback_template = /etc/keystone/sso_callback_template.html

字符串值

用作单点登录回调处理程序的 HTML 文件的绝对路径。本页预期通过将令牌编码到 POST 请求,将来自 keystone 的用户重定向到可信仪表板主机。Keystone 的默认值应该足以满足大多数部署的需要。

trusted_dashboard = []

多值

可信仪表板主机列表。在接受单点登录请求以返回令牌之前,原始主机必须是此列表的成员。对于多个值,此配置选项可以重复。您必须将其设置为使用基于 Web 的 SSO 流。例如: trusted_dashboard=https://acme.example.com/auth/websso trusted_dashboard=https://beta.example.com/auth/websso

7.1.15. fernet_receipts

下表概述了 /etc/keystone/keystone.conf 文件中的 [fernet_receipts] 组下可用的选项。

表 7.14. fernet_receipts
配置选项 = 默认值类型Description

key_repository = /etc/keystone/fernet-keys/

字符串值

包含 Fernet receipt 密钥的目录。在第一次使用 keystone-manage fernet_setup 前这个目录需要已存在,则对于运行 keystone-manage fernet_setupkeystone-manage fernet_rotate 的用户是可写的,则对于 keystone 的服务器进程是可读的。存储库可以在三个状态之一中包含键:单个暂存密钥(始终索引 0)用于接收验证、一个用于接收和验证的主键(始终为最高索引),以及用于接收验证的辅助键(所有其他索引值)的数量。对于多个 keystone 节点,每个节点必须共享相同的密钥存储库内容,但暂存密钥除外(index 0)。在任意一个节点上运行 keystone-manage fernet_rotate 后可以安全地将暂存密钥(index 0)提升为新主要(从上一个最高索引开始),生成一个新的暂存密钥(带有 index 0 的新密钥);生成的存储库可以原子复制到其他节点,而无需出现竞争条件的风险(例如: 在主机 A 上运行 keystone-manage fernet_rotate 是安全的,等待任何时间,在主机 A 上创建一个 tarball,在主机 B 上解包它到临时位置,并将目录移动(mv)到主机 B 上的目录。在密钥存储库中运行 keystone-manage fernet_rotate 两次 而不同步其他节点,则会导致无法被所有节点验证。

max_active_keys = 3

整数值

这会控制 keystone-manage fernet_rotate 轮转中保留多少密钥,然后再丢弃它们。默认值 3 表示 keystone 将维护一个暂存密钥(始终索引 0)、一个主密钥(最高数字索引)和一个辅助键(每个索引)。增加这个值意味着将保存在轮转中。

7.1.16. fernet_tokens

下表概述了 /etc/keystone/keystone.conf 文件中的 [fernet_tokens] 组下可用的选项。

表 7.15. fernet_tokens
配置选项 = 默认值类型Description

key_repository = /etc/keystone/fernet-keys/

字符串值

包含 Fernet 令牌密钥的目录。在第一次使用 keystone-manage fernet_setup 前这个目录需要已存在,则对于运行 keystone-manage fernet_setupkeystone-manage fernet_rotate 的用户是可写的,则对于 keystone 的服务器进程是可读的。存储库可以在三种状态之一中包含键:单个暂存密钥(始终索引 0)用于令牌验证、用于令牌验证的单一主密钥(始终为最高索引),以及用于令牌验证的辅助键(所有其他索引值)。对于多个 keystone 节点,每个节点必须共享相同的密钥存储库内容,但暂存密钥除外(index 0)。在任意一个节点上运行 keystone-manage fernet_rotate 后可以安全地将暂存密钥(index 0)提升为新主要(从上一个最高索引开始),生成一个新的暂存密钥(带有 index 0 的新密钥);生成的存储库可以原子复制到其他节点,而无需出现竞争条件的风险(例如: 在主机 A 上运行 keystone-manage fernet_rotate 是安全的,等待任何时间,在主机 A 上创建一个 tarball,在主机 B 上解包它到临时位置,并将目录移动(mv)到主机 B 上的目录。在密钥存储库上运行 keystone-manage fernet_rotate 两次,而不同步其他节点,则会导致令牌无法被所有节点验证。

max_active_keys = 3

整数值

这会控制 keystone-manage fernet_rotate 轮转中保留多少密钥,然后再丢弃它们。默认值 3 表示 keystone 将维护一个暂存密钥(始终索引 0)、一个主密钥(最高数字索引)和一个辅助键(每个索引)。增加这个值意味着将保存在轮转中。

7.1.17. healthcheck

下表概述了 /etc/keystone/keystone.conf 文件中的 [healthcheck] 组下可用的选项。

表 7.16. healthcheck
配置选项 = 默认值类型Description

backends = []

列表值

可执行健康检查并报告该信息作为请求的一部分的其他后端。

detailed = False

布尔值

显示响应中更详细的信息。安全备注:启用此选项可能会公开有关被监控服务的敏感详情。务必验证它是否不会违反您的安全策略。

disable_by_file_path = None

字符串值

检查是否存在文件,以确定应用是否在端口上运行。DisableByFileHealthcheck 插件使用。

disable_by_file_paths = []

列表值

根据端口检查文件是否存在,以确定应用是否在端口上运行。需要字符串的 "port:path" 列表。DisableByFilesPortsHealthcheck 插件使用。

path = /healthcheck

字符串值

响应 healtcheck 请求的路径。

7.1.18. identity

下表概述了 /etc/keystone/keystone.conf 文件中的 [identity] 组下可用的选项。

表 7.17. identity
配置选项 = 默认值类型Description

cache_time = 600

整数值

缓存身份数据的时间(以秒为单位)。除非启用了全局和身份缓存,否则这不起作用。

caching = True

布尔值

切换身份缓存。除非启用了全局缓存,否则这无效。通常没有禁用此功能的原因。

default_domain_id = default

字符串值

这引用了用于所有身份 API v2 请求的域(不知道域)。keystone-manage bootstrap 可以选择性地为您创建具有此 ID 的域。此 ID 引用的域无法在 v3 API 上删除,以防止意外破坏 v2 API。对此域没有特别的,除了必须存在的,才能保持对 v2 客户端的支持。通常没有更改此值的原因。

domain_config_dir = /etc/keystone/domains

字符串值

keystone 应定位域特定 [identity] 配置文件的绝对路径。除非将 [identity] domain_specific_drivers_enabled 设置为 true,否则此选项无效。通常没有更改此值的原因。

domain_configurations_from_database = False

布尔值

默认情况下,特定于域的配置数据是从 [identity] domain_config_dir 标识的目录中的文件读取。启用此配置选项允许您通过 API 管理域特定配置,这些配置在后端(通常是 SQL 数据库)中保留,而不是使用磁盘上的配置文件。

domain_specific_drivers_enabled = False

布尔值

域的子集(或全部)可以有自己的身份驱动程序,每个驱动程序都有自己的部分配置选项,存储在资源后端或域配置目录中的文件中(取决于 [identity] domain_configurations_from_database的设置)。只有特定于域的值才需要以这种方式指定。此功能默认为禁用,但可能在以后的发行版本中默认启用,设置为 true 以启用。

driver = sql

字符串值

keystone.identity 命名空间中的身份后端驱动程序的入口点。Keystone 提供 sqlldap 驱动程序。如果启用了 [identity] domain_specific_drivers_enabled,则此选项也用作默认驱动程序选择(以及本节中的其他配置)。除非您的部署主要依赖于 ldap AND 不使用域特定配置,否则通常应将此设置为 sql

list_limit = None

整数值

在身份集合中返回的最大实体数。

max_password_length = 4096

整数值

用户密码允许的最大长度。降低这个值以提高性能。更改此值不会影响现有密码。这个值也可以被特定的哈希算法最大允许长度覆盖,其优先于配置的值。bcrypt max_password_length 为 72 字节。

password_hash_algorithm = bcrypt

字符串值

用于存储在 keystone 中的密码的密码哈希算法。

password_hash_rounds = None

整数值

这个选项代表了在安全性和性能之间权衡。数值越高,性能会较慢,但安全性更高。更改此选项将只影响新创建的密码,因为已应用固定的轮换数,因此可以安全地在正在运行的集群中调整这个选项。bcrypt 的默认值为 12,必须在 4 到 31 之间,包括:scrypt 的默认值为 16,必须在 range (1,32) 内。pbkdf_sha512 的默认值为 60000,必须在 范围(1,1<<32) WARNING 中:如果使用 scrypt,增加这个值会增加 BOTH 时间和内存要求来哈希密码。

salt_bytesize = None

整数值

在 scrypt 和 pbkfd2_sha512 哈希 salt 中使用的字节数。scrypt 的默认值为 16 字节。pbkfd2_sha512 默认为 16 字节。限制为最多 96 字节,因为用于存储密码哈希的列的大小。

scrypt_block_size = None

整数值

要传递给 scrypt 哈希功能的可选块大小( r 参数)。对于调整 scrypt 以优化 CPU 架构性能非常有用。只有在 password_hash_algorithm 选项设置为 scrypt 时,才会使用此选项。默认值为 8。

scrypt_parallelism = None

整数值

可选的 parallelism 传递给 scrypt 哈希函数( p 参数)。只有在 password_hash_algorithm 选项设置为 scrypt 时,才会使用此选项。默认为 1。

7.1.19. identity_mapping

下表概述了 /etc/keystone/keystone.conf 文件中的 [identity_mapping] 组下可用的选项。

表 7.18. identity_mapping
配置选项 = 默认值类型Description

backward_compatible_ids = True

布尔值

对于没有生成 UUID (如 LDAP)的后端,用户和组群 ID 的格式在 Juno 中被改变,它带有提供到 LDAP 中底层属性的哈希映射的 keystone。默认情况下禁用此映射,这样可确保现有 ID 不会改变。即使映射通过使用域特定驱动程序([identity] domain_specific_drivers_enabled)启用,但 LDAP 处理的默认域的用户和组仍会不会被映射,以确保其 ID 保持向后兼容性。将此值设置为 false 将为所有后端启用新映射,包括默认的 LDAP 驱动程序。如果您尚未从默认 LDAP 域分配用户和组,且被 Keystone 为客户端提供不同的 ID,则只保证启用此选项(API 中的现有 ID 将会更改)。通常,这意味着您唯一可以将此值设置为 false 的时间是配置全新安装时,但这是推荐的值。

driver = sql

字符串值

keystone.identity.id_mapping 命名空间中的身份映射后端驱动程序的入口点。Keystone 仅提供 sql 驱动程序,因此除非您提供了自定义入口点,否则没有更改此设置的原因。

generator = sha256

字符串值

keystone.identity.id_generator 命名空间中用户和组实体的公共 ID 生成器的入口点。Keystone 身份映射程序仅支持生成 64 字节或更少生成器。Keystone 仅提供 sha256 入口点,因此除非您提供自定义入口点,否则没有更改此值的原因。

7.1.20. jwt_tokens

下表概述了 /etc/keystone/keystone.conf 文件中的 [jwt_tokens] 组下可用的选项。

表 7.19. jwt_tokens
配置选项 = 默认值类型Description

jws_private_key_repository = /etc/keystone/jws-keys/private

字符串值

包含用于签名 JWS 令牌的私钥的目录。此目录必须存在,以便 keystone 的服务器进程启动。它还必须可以被 keystone 的服务器进程读取。它必须至少包含一个与 keystone.conf [jwt_tokens] jws_public_key_repository 中对应公钥的私钥。如果此目录中存在多个私钥,则 keystone 将使用名为 private.pem 的密钥来签署令牌。未来,keystone 可以支持使用多个私钥为令牌签名。现在,在这个目录中仅需要名为 private.pem 的密钥才能发布 JWS 令牌。这个选项仅适用于发出 JWS 令牌并设置 keystone.conf [token] provider = jws

jws_public_key_repository = /etc/keystone/jws-keys/public

字符串值

包含用于验证 JWS 令牌签名的公钥的目录。此目录必须存在,以便 keystone 的服务器进程启动。它还必须可以被 keystone 的服务器进程读取。它必须至少包含一个与 keystone.conf [jwt_tokens] jws_private_key_repository 中的私钥对应的公钥。这个选项仅适用于发出 JWS 令牌并设置 keystone.conf [token] provider = jws

7.1.21. ldap

下表概述了 /etc/keystone/keystone.conf 文件中的 [ldap] 组下可用的选项。

表 7.20. ldap
配置选项 = 默认值类型Description

alias_dereferencing = default

字符串值

用于涉及别名的查询的 LDAP 解引用选项。值 default 会返回使用由 ldap.conf 配置的默认取消引用行为。值 never 阻止别名被全部解引用。值 搜索 仅在名称解析后解引用别名。用于在名称解析过程中 查找 别名的值。值 always 在所有情况下都会取消引用别名。

auth_pool_connection_lifetime = 60

整数值

与 LDAP 服务器的最大最终用户身份验证连接生命周期(以秒为单位)。超过这个生命周期时,连接将绑定并从连接池中中删除。除非 [ldap] use_auth_pool 也启用,否则此选项无效。

auth_pool_size = 100

整数值

用于最终用户身份验证的连接池的大小。除非 [ldap] use_auth_pool 也启用,否则此选项无效。

chase_referrals = None

布尔值

设置 keystone 在目录分区间的引用行为。如果保留未设置,则使用系统的默认行为。

connection_timeout = -1

整数值

与 LDAP 服务器一起使用的连接超时。值 -1 表示连接永远不会超时。

debug_level = None

整数值

为 LDAP 调用设置 LDAP 调试级别。值 0 表示没有启用调试。这个值是一个位掩码,请咨询您的 LDAP 文档了解可能的值。

group_ad_nesting = False

布尔值

如果启用,组查询将使用特定于 Active Directory 的过滤器进行嵌套组。

group_additional_attribute_mapping = []

列表值

用于将额外属性映射到 keystone 中的组的属性对的 LDAP 属性列表。预期的格式为 <ldap_attr>:<group_attr>,其中 ldap_attr 是 LDAP 对象和 group_attr 中的属性,它应当出现在身份 API 中。

group_attribute_ignore = []

列表值

要忽略的 create 和 update 的组属性列表。或者,或者是否应该为列表或显示组过滤特定的组属性。

group_desc_attribute = description

字符串值

在 keystone 中映射到组描述的 LDAP 属性。

group_filter = None

字符串值

用于组的 LDAP 搜索过滤器。

group_id_attribute = cn

字符串值

在 keystone 中映射到组 ID 的 LDAP 属性。这不能是一个多值属性。组 ID 应该在 keystone 域和 URL-safe 之间全局唯一。

group_member_attribute = member

字符串值

用于指示用户是组的成员的 LDAP 属性。

group_members_are_ids = False

布尔值

如果组对象类的成员是 keystone 用户 ID 而不是 LDAP DN,则启用此选项。当使用 posixGroup 作为 Open Directory 中的组对象类时,会出现这种情况。

group_name_attribute = ou

字符串值

在 keystone 中映射到组名称的 LDAP 属性。组名称预期只在 keystone 域中是唯一的,且不应该是 URL-safe。

group_objectclass = groupOfNames

字符串值

用于组的 LDAP 对象类。如果将此选项设置为 posixGroup,您可能还对启用 [ldap] group_members_are_ids 选项感兴趣。

group_tree_dn = None

字符串值

用于组的搜索基础。默认为 ou=UserGroups,并附加了 [ldap] 后缀

page_size = 0

整数值

定义 keystone 在列出对象时从 LDAP 服务器请求的每个页面的最大结果数。值为零(0)禁用分页。

password = None

字符串值

如果您的 LDAP 服务器需要,管理员的密码将绑定 DN 在查询 LDAP 服务器时使用。

pool_connection_lifetime = 600

整数值

到 LDAP 服务器的最大连接生命周期(以秒为单位)。超过这个生命周期时,连接将绑定并从连接池中中删除。除非 [ldap] use_pool 也启用,否则此选项无效。

pool_connection_timeout = -1

整数值

池 LDAP 连接时使用的连接超时。值 -1 表示连接永远不会超时。除非 [ldap] use_pool 也启用,否则此选项无效。

pool_retry_delay = 0.1

浮点值

尝试重新连接到 LDAP 服务器前等待的秒数。除非 [ldap] use_pool 也启用,否则此选项无效。

pool_retry_max = 3

整数值

在中止前尝试重新连接到 LDAP 服务器的次数上限。值为零可防止重试。除非 [ldap] use_pool 也启用,否则此选项无效。

pool_size = 10

整数值

LDAP 连接池的大小。除非 [ldap] use_pool 也启用,否则此选项无效。

query_scope = one

字符串值

搜索范围,用于定义在搜索基础中如何深度搜索。一个值 one (代表 oneLevelsingleLevel)表示对象立即搜索到基本对象,但不包括基本对象本身。sub (代表 子树 或整个 Subtree)的值表示基础对象本身和其下整个子树的搜索。

randomize_urls = False

布尔值

随机化每个 keystone 进程中的 URL 顺序。这使得失败行为更逐步化,因为如果第一个服务器停机,进程/线程将在尝试连接服务器进一步关闭前等待指定的超时。默认值为 False,以便向后兼容。

suffix = cn=example,cn=com

字符串值

如果没有通过 [ldap] user_tree_dn[ldap] group_tree_dn 定义 DN,要使用的默认 LDAP 服务器后缀。

tls_cacertdir = None

字符串值

与 LDAP 服务器通信时要使用的 CA 证书目录的绝对路径。如果您也设置了 [ldap] tls_cacertfile,则没有设置此选项的原因。

tls_cacertfile = None

字符串值

与 LDAP 服务器通信时使用的 CA 证书文件的绝对路径。这个选项优先于 [ldap] tls_cacertdir,因此不能同时设置这两个选项。

tls_req_cert = demand

字符串值

指定针对传入 TLS 会话上的客户端证书执行的检查。如果设置为 demand,则 LDAP 服务器将始终请求和要求证书。如果设置为 allow,则始终向 LDAP 服务器请求证书,但不需要证书。如果设置为 never,则不会请求证书。

url = ldap://localhost

字符串值

用于连接到 LDAP 服务器的 URL。多个 LDAP URL 可以指定为用逗号分开的字符串。成功绑定的第一个 URL 用于连接。

use_auth_pool = True

布尔值

为最终用户身份验证启用 LDAP 连接池。通常没有禁用此功能的原因。

use_pool = True

布尔值

启用 LDAP 连接池以查询 LDAP 服务器。通常没有禁用此功能的原因。

use_tls = False

布尔值

在与 LDAP 服务器通信时启用 TLS。使用此选项时,您还应设置 [ldap] tls_cacertfile[ldap] tls_cacertdir 选项。如果您通过 SSL (LDAPS)而不是 TLS 使用 LDAP,则不要设置此选项。

user = None

字符串值

如果您的 LDAP 服务器需要,管理员的用户名会绑定 DN 在查询 LDAP 服务器时使用。

user_additional_attribute_mapping = []

列表值

用于向 keystone 用户属性对的 LDAP 属性列表,用于将额外属性映射到 keystone 中的用户。预期的格式为 <ldap_attr>:<user_attrr>,其中 ldap_attr 是 LDAP 对象和 user_attr 中的属性,它应当出现在身份 API 中。

user_attribute_ignore = ['default_project_id']

列表值

要在创建和更新时要忽略的用户属性列表,或者是否为 list 或 show user 过滤特定的用户属性。

user_default_project_id_attribute = None

字符串值

在 keystone 中映射到用户的 default_project_id 的 LDAP 属性。当 keystone 对 LDAP 具有写入访问权限时,这最常使用。

user_description_attribute = description

字符串值

在 keystone 中映射到用户描述的 LDAP 属性。

user_enabled_attribute = enabled

字符串值

在 keystone 中映射到用户启用属性的 LDAP 属性。如果将此选项设置为 userAccountControl,那么您可能还对设置 [ldap] user_enabled_mask[ldap] user_enabled_default 感兴趣。

user_enabled_default = True

字符串值

启用用户的默认值。如果 LDAP 服务器使用非布尔值(bitmask)值来指示用户是否启用或禁用了,则这应匹配适当的整数值。如果这未设置为 True,则典型的值为 512。这通常在 [ldap] user_enabled_attribute = userAccountControl 时使用。

user_enabled_emulation = False

布尔值

如果启用,则 keystone 使用一种替代方法来确定用户是否已启用,还是通过检查它们是否是 [ldap] user_enabled_emulation_dn 选项定义的组的成员。启用这个选项会导致 keystone 忽略 [ldap] user_enabled_invert 的值。

user_enabled_emulation_dn = None

字符串值

使用启用模拟时用于存放启用的用户的组条目的 DN。设置此选项不会起作用,除非也启用了 [ldap] user_enabled_emulation

user_enabled_emulation_use_group_config = False

布尔值

使用 [ldap] group_member_attribute[ldap] group_objectclass 设置来确定模拟启用的组中的成员资格。启用这个选项不会起作用,除非也启用了 [ldap] user_enabled_emulation

user_enabled_invert = False

布尔值

在逻辑上对从 LDAP 服务器获取的 enabled 属性的布尔值进行求值。有些 LDAP 服务器使用布尔值锁定属性,其中 "true" 表示帐户被禁用。设置 [ldap] user_enabled_invert = true 将允许使用这些锁定属性。如果使用 [ldap] user_enabled_mask[ldap] user_enabled_emulation 选项,这个选项将无效。

user_enabled_mask = 0

整数值

位掩码整数,以选择哪个位表示启用的值,如果 LDAP 服务器在整数中以位表示为位,而不是作为离散的布尔值。值 0 表示掩码没有被使用。如果这没有设置为 0, 则典型的值为 2。这通常在 [ldap] user_enabled_attribute = userAccountControl 时使用。设置这个选项会导致 keystone 忽略 [ldap] user_enabled_invert 的值。

user_filter = None

字符串值

用于用户的 LDAP 搜索过滤器。

user_id_attribute = cn

字符串值

在 keystone 中映射到用户 ID 的 LDAP 属性。这不能是一个多值属性。用户 ID 应该在 keystone 域和 URL-safe 之间全局唯一。

user_mail_attribute = mail

字符串值

在 keystone 中映射到用户电子邮件的 LDAP 属性。

user_name_attribute = sn

字符串值

在 keystone 中映射到用户名的 LDAP 属性。用户名预期只在 keystone 域中是唯一的,且预期为 URL-safe。

user_objectclass = inetOrgPerson

字符串值

用于用户的 LDAP 对象类。

user_pass_attribute = userPassword

字符串值

在 keystone 中映射到用户密码的 LDAP 属性。

user_tree_dn = None

字符串值

用于用户的搜索基础。默认为 ou=Users,并附加了 [ldap] 后缀

7.1.22. memcache

下表概述了 /etc/keystone/keystone.conf 文件中的 [memcache] 组下可用的选项。

表 7.21. memcache
配置选项 = 默认值类型Description

dead_retry = 300

整数值

在再次尝试前,memcached 服务器被视为 dead 的秒数。这供 key 值存储系统使用。

pool_connection_get_timeout = 10

整数值

操作将等待的秒数,以获取 memcache 客户端连接。这供 key 值存储系统使用。

pool_maxsize = 10

整数值

每个 memcached 服务器的最大开放连接数。这供 key 值存储系统使用。

pool_unused_timeout = 60

整数值

到 memcached 的连接在池关闭前没有被使用的秒数。这供 key 值存储系统使用。

socket_timeout = 3

整数值

每个对服务器的调用的超时时间(以秒为单位)。这供 key 值存储系统使用。弃用自: T

*reason:* 这个选项与 oslo.cache 重复。配置 ''keystone.conf [cache] memcache_socket_timeout' 选项,以设置 memcached 的 socket_timeout。

7.1.23. oauth1

下表概述了 /etc/keystone/keystone.conf 文件中的 [oauth1] 组下可用的选项。

表 7.22. oauth1
配置选项 = 默认值类型Description

access_token_duration = 86400

整数值

OAuth 访问令牌在创建后保持有效的秒数。这是消费者必须与服务提供商(通常是 keystone)交互所需的时间。将这个选项设置为零意味着访问令牌将持续存在。

driver = sql

字符串值

keystone.oauth1 命名空间中的 OAuth 后端驱动程序的入口点。通常,除非您提供了自定义入口点,否则没有设置这个选项的原因。

request_token_duration = 28800

整数值

OAuth Request Token 在创建后保持有效的秒数。这是用户必须授权令牌的时间。将这个选项设置为零表示请求令牌将持续存在。

7.1.24. oslo_messaging_amqp

下表概述了 /etc/keystone/keystone.conf 文件中的 [oslo_messaging_amqp] 组下可用的选项。

表 7.23. oslo_messaging_amqp
配置选项 = 默认值类型Description

addressing_mode = dynamic

字符串值

表示驱动程序使用的寻址模式。允许的值: legacy - 使用旧的不可路由寻址;routable - 使用可路由地址;dynamic - 如果消息总线不支持路由,使用 legacy,如果支持,使用 routable。

anycast_address = anycast

字符串值

在发送到一组消费者时附加到地址前缀。消息总线用来识别应在消费者之间以轮循方式发送的消息。

broadcast_prefix = broadcast

字符串值

广播到所有服务器时使用的地址前缀

connection_retry_backoff = 2

整数值

每次失败故障转移尝试后,将 connection_retry_interval 增加到这秒数。

connection_retry_interval = 1

整数值

尝试重新连接前暂停的秒数。

connection_retry_interval_max = 30

整数值

connection_retry_interval + connection_retry_backoff 的最大限制

container_name = None

字符串值

AMQP 容器的名称必须全局唯一。默认为生成的 UUID

default_notification_exchange = None

字符串值

通知地址中使用的交换名称。Exchange name resolution priority: Target.exchange if set default_notification_exchange if set else control_exchange if set else notify

default_notify_timeout = 30

整数值

发送通知消息发送的截止时间。仅在调用者不提供超时到期时使用。

default_reply_retry = 0

整数值

重新发送回复消息的最大尝试次数,因为可恢复错误而失败。

default_reply_timeout = 30

整数值

rpc 回复消息发送的截止时间。

default_rpc_exchange = None

字符串值

RPC 地址中使用的交换名称。Exchange name resolution priority: Target.exchange if set default_rpc_exchange if set other control_exchange if set else rpc

default_send_timeout = 30

整数值

rpc cast 或调用消息发送的截止时间。仅在调用者不提供超时到期时使用。

default_sender_link_timeout = 600

整数值

调度闲置发送者链接清除的持续时间。过期后分离链接。

group_request_prefix = unicast

字符串值

发送到组中任何服务器时的地址前缀

idle_timeout = 0

整数值

不活跃连接的超时时间(以秒为单位)

link_retry_delay = 10

整数值

重新连接 AMQP 1.0 链接之间的暂停时间,该链接因为可恢复的错误而失败。

multicast_address = multicast

字符串值

在发送异常消息时,附加到地址前缀。消息总线用来识别 fanout 消息。

notify_address_prefix = openstack.org/om/notify

字符串值

所有生成的通知地址的地址前缀

notify_server_credit = 100

整数值

传入通知消息的窗口大小

pre_settled = ['rpc-cast', 'rpc-reply']

多值

发送此类型的消息预先组装。预先设置的消息不会接收来自 peer 的确认信息。请注意:如果发送失败,则预先设置的消息可能会被静默丢弃。允许的值: rpc-call - 发送 RPC Calls pre-settled rpc-reply- 发送 RPC Replies pre-settled rpc-cast - Send RPC Casts pre-settled notify - Send Notifications pre-settled

pseudo_vhost = True

布尔值

为不支持虚拟主机的消息总线启用虚拟主机支持(如 qpidd)。当设置为 true 时,虚拟主机名将添加到所有消息总线地址中,从而有效地为每个虚拟主机 创建专用子网。如果消息总线支持使用 AMQP 1.0 Open performative 中的 hostname 字段作为虚拟主机的名称,设置为 False。

reply_link_credit = 200

整数值

传入 RPC 消息的窗口大小。

rpc_address_prefix = openstack.org/om/rpc

字符串值

所有生成的 RPC 地址的地址前缀

rpc_server_credit = 100

整数值

传入 RPC Request 消息的窗口大小

`sasl_config_dir = `

字符串值

包含 SASL 配置的目录路径

`sasl_config_name = `

字符串值

配置文件名称(不带 .conf 后缀)

`sasl_default_realm = `

字符串值

如果用户名中没有 realm,则要使用的 SASL 域

`sasl_mechanisms = `

字符串值

可接受的 SASL 机制的以空格分隔的列表

server_request_prefix = exclusive

字符串值

发送到特定服务器时使用的地址前缀

ssl = False

布尔值

尝试通过 SSL 连接。如果没有给出其他与 ssl 相关的参数,它将使用系统的 CA-bundle 来验证服务器证书。

`ssl_ca_file = `

字符串值

用于验证服务器证书的 CA 证书 PEM 文件

`ssl_cert_file = `

字符串值

自我标识用于客户端身份验证的证书 PEM 文件

`ssl_key_file = `

字符串值

用于为 ssl_cert_file 证书签名的私钥 PEM 文件(可选)

ssl_key_password = None

字符串值

用于解密 ssl_key_file 的密码(如果加密)

ssl_verify_vhost = False

布尔值

默认情况下,SSL 检查服务器证书中的名称与 transport_url 中的主机名匹配。在某些配置中,最好使用虚拟主机名。例如,如果服务器使用 Server Name Indication TLS extension (rfc6066)来为每个虚拟主机提供证书。如果服务器的 SSL 证书使用虚拟主机名称而不是 DNS 名称,则将 ssl_verify_vhost 设置为 True。

trace = False

布尔值

debug :将 AMQP 帧转储到 stdout

unicast_address = unicast

字符串值

在发送到特定 RPC/Notification 服务器时,附加到地址前缀。消息总线用来识别发送到单个目的地的消息。

7.1.25. oslo_messaging_kafka

下表概述了 /etc/keystone/keystone.conf 文件中的 [oslo_messaging_kafka] 组下可用的选项。

表 7.24. oslo_messaging_kafka
配置选项 = 默认值类型Description

compression_codec = none

字符串值

producer 生成的所有数据的压缩 codec。如果没有设置,则不会使用压缩。请注意,这允许的值取决于 kafka 版本

conn_pool_min_size = 2

整数值

连接过期策略的池大小限制

conn_pool_ttl = 1200

整数值

池中闲置连接的时间延迟

consumer_group = oslo_messaging_consumer

字符串值

Kafka 消费者的组 ID。一个组中的消费者将协调消息消耗

enable_auto_commit = False

布尔值

启用异步消费者提交

kafka_consumer_timeout = 1.0

浮点值

Kafka 用户的默认超时

kafka_max_fetch_bytes = 1048576

整数值

Kafka consumer 的最大获取字节数

max_poll_records = 500

整数值

轮询调用中返回的最大记录数

pool_size = 10

整数值

Kafka Consumers 的池大小

producer_batch_size = 16384

整数值

producer async 发送的批处理大小

producer_batch_timeout = 0.0

浮点值

以秒为单位的 KafkaProducer 批处理延迟上限

sasl_mechanism = PLAIN

字符串值

当安全协议是 SASL 时的机制

security_protocol = PLAINTEXT

字符串值

用于与代理通信的协议

`ssl_cafile = `

字符串值

用于验证服务器证书的 CA 证书 PEM 文件

`ssl_client_cert_file = `

字符串值

用于身份验证的客户端证书 PEM 文件。

`ssl_client_key_file = `

字符串值

用于身份验证的客户端密钥 PEM 文件。

`ssl_client_key_password = `

字符串值

用于身份验证的客户端密钥密码文件。

7.1.26. oslo_messaging_notifications

下表概述了 /etc/keystone/keystone.conf 文件中的 [oslo_messaging_notifications] 组下可用的选项。

表 7.25. oslo_messaging_notifications
配置选项 = 默认值类型Description

driver = []

多值

处理发送通知的驱动程序。可能的值有 messaging, messagingv2, routing, log, test, noop

retry = -1

整数值

重新发送因为可恢复错误而发送失败的通知消息的最大尝试次数。0 - 不重试,-1 - indefinite

topics = ['notifications']

列表值

用于 OpenStack 通知的 AMQP 主题。

transport_url = None

字符串值

代表用于通知的消息传递驱动程序的 URL。如果没有设置,我们回退到用于 RPC 的同一配置。

7.1.27. oslo_messaging_rabbit

下表概述了 /etc/keystone/keystone.conf 文件中的 [oslo_messaging_rabbit] 组下可用的选项。

表 7.26. oslo_messaging_rabbit
配置选项 = 默认值类型Description

amqp_auto_delete = False

布尔值

AMQP 中的自动删除队列。

amqp_durable_queues = False

布尔值

在 AMQP 中使用持久队列。

direct_mandatory_flag = True

布尔值

(DEPRECATED)为直接发送启用/禁用 RabbitMQ 强制标记。直接发送用作回复,因此在客户端队列不存在时引发 MessageUndeliverable 异常。MessageUndeliverable 异常将用于循环使发送者恢复。此标志已弃用,且无法停用此功能

enable_cancel_on_failover = False

布尔值

启用 x-cancel-on-ha-failover 标志,使 rabbitmq 服务器将取消并通知 consumerswhen 队列停机

heartbeat_in_pthread = False

布尔值

默认情况下,通过原生 python 线程运行健康检查心跳线程。如果此选项等于 False,则健康检查 heartbeat 将继承父进程的执行模型。例如,如果父进程使用 eventlet/greenlet 对 stdlib 进行补丁,则心跳将通过绿色线程运行。这个选项应该只针对 wsgi 服务设置为 True。

heartbeat_rate = 2

整数值

heartbeat_timeout_threshold 期间的时间我们检查心跳的频率。

heartbeat_timeout_threshold = 60

整数值

如果 heartbeat 的 keep-alive 失败(0 禁用 heartbeat),则 Rabbit 代理被视为 down 的秒数。

kombu_compression = None

字符串值

EXPERIMENTAL: Possible 值为:gzip、bz2。如果没有设置压缩,则不会使用。这个选项可能在以后的版本中不可用。

kombu_failover_strategy = round-robin

字符串值

确定当当前连接到的 RabbitMQ 节点不可用时如何选择下一个 RabbitMQ 节点。仅在配置中提供多个 RabbitMQ 节点时生效。

kombu_missing_consumer_retry_timeout = 60

整数值

在放弃发送其回复前等待缺少的客户端的时间。这个值不应比 rpc_response_timeout 长。

kombu_reconnect_delay = 1.0

浮点值

响应 AMQP 消费者取消通知前等待多久。

rabbit_ha_queues = False

布尔值

尝试在 RabbitMQ 中使用 HA 队列(x-ha-policy: all)。如果更改这个选项,您必须擦除 RabbitMQ 数据库。在 RabbitMQ 3.0 中,在声明队列时,x-ha-policy 参数不再控制队列镜像。如果您只想确保所有队列(带有自动生成的名称的队列除外)都在所有节点上进行镜像,请运行:"rabbitmqctl set_policy HA ^(?!amq\.) gem {"ha-mode": "all"} "

rabbit_interval_max = 30

整数值

RabbitMQ 连接重试的最大间隔。默认值为 30 秒。

rabbit_login_method = AMQPLAIN

字符串值

RabbitMQ 登录方法。

rabbit_qos_prefetch_count = 0

整数值

指定要预抓取的消息数量。设置为零可允许无限消息。

rabbit_retry_backoff = 2

整数值

连接到 RabbitMQ 时重试之间的 backoff 时长。

rabbit_retry_interval = 1

整数值

使用 RabbitMQ 重试连接的频率。

rabbit_transient_queues_ttl = 1800

整数值

正整数代表队列 TTL (x-expires)的持续时间(以秒为单位)。TTL 期间未使用的队列将被自动删除。参数仅影响 reply 和 fanout 队列。

ssl = False

布尔值

通过 SSL 连接。

`ssl_ca_file = `

字符串值

SSL 证书颁发机构文件(仅在启用了 SSL 时评估)。

`ssl_cert_file = `

字符串值

SSL 证书文件(仅在启用了 SSL 时评估)。

`ssl_key_file = `

字符串值

SSL 密钥文件(仅在启用了 SSL 时valid)。

`ssl_version = `

字符串值

要使用的 SSL 版本(仅在启用了 SSL 时评估)。有效值为 TLSv1 和 SSLv23。SSLv2、SSLv3、TLSv1_1 和 TLSv1_2 可能在某些发行版中提供。

7.1.28. oslo_middleware

下表概述了 /etc/keystone/keystone.conf 文件中的 [oslo_middleware] 组下可用的选项。

表 7.27. oslo_middleware
配置选项 = 默认值类型Description

enable_proxy_headers_parsing = False

布尔值

应用程序是否在代理后面。这决定了中间件是否应该解析标头。

max_request_body_size = 114688

整数值

每个请求的最大正文大小,以字节为单位。

secure_proxy_ssl_header = X-Forwarded-Proto

字符串值

用于确定原始请求协议方案的 HTTP 标头,即使它被 SSL 终止代理隐藏也是如此。

7.1.29. oslo_policy

下表概述了 /etc/keystone/keystone.conf 文件中的 [oslo_policy] 组下可用的选项。

表 7.28. oslo_policy
配置选项 = 默认值类型描述

enforce_new_defaults = False

布尔值

这个选项控制在评估策略时是否使用旧的弃用默认值。如果为 True,则不会评估旧的已弃用的默认值。这意味着,如果旧默认值允许任何现有令牌,但不允许使用新默认值,它将被禁止。我们鼓励启用此标志以及 enforce_scope 标志,以便您可以同时获得新默认值和 scope_type 的好处

enforce_scope = False

布尔值

此选项控制在评估策略时是否强制执行范围。如果为 True,则请求中使用的令牌范围将与被强制执行策略的 scope_types 进行比较。如果范围不匹配,则引发 InvalidScope 异常。如果为 False,则会记录一条信息,告知操作员使用了不匹配的范围调用策略。

policy_default_rule = default

字符串值

默认规则。未找到请求的规则时强制执行。

policy_dirs = ['policy.d']

多值

存储策略配置文件的目录。它们可以相对于 config_dir 选项或绝对路径定义的搜索路径中的任何目录。由 policy_file 定义的文件必须存在,才能搜索这些目录。缺少或空目录将被忽略。

policy_file = policy.yaml

字符串值

将角色映射到给定服务权限的文件的相对或绝对路径。必须使用与配置文件设置相关的相对路径。

remote_content_type = application/x-www-form-urlencoded

字符串值

用于发送和接收基于 REST 策略检查的数据的内容类型

remote_ssl_ca_crt_file = None

字符串值

基于 REST 的策略检查的 ca cert 文件的绝对路径

remote_ssl_client_crt_file = None

字符串值

基于 REST 的策略检查的客户端证书的绝对路径

remote_ssl_client_key_file = None

字符串值

绝对路径客户端密钥文件 REST 基于策略检查

remote_ssl_verify_server_crt = False

布尔值

基于 REST 的策略检查的服务器身份验证

7.1.30. policy

下表概述了 /etc/keystone/keystone.conf 文件中的 [policy] 组下可用的选项。

表 7.29. policy
配置选项 = 默认值类型Description

driver = sql

字符串值

keystone.policy 命名空间中的策略后端驱动程序的入口点。提供的驱动程序是 规则 (不支持 v3 策略 API 的任何 CRUD 操作)和 sql。通常,除非您提供了自定义入口点,否则没有设置这个选项的原因。

list_limit = None

整数值

政策集合中返回的最大实体数。

7.1.31. profiler

下表概述了 /etc/keystone/keystone.conf 文件中的 [profiler] 组下可用的选项。

表 7.30. profiler
配置选项 = 默认值类型Description

connection_string = messaging://

字符串值

通知程序后端的连接字符串。

默认值为 messaging://,它将通知程序设置为 oslo_messaging。

可能的值示例:

  • messaging:// - 使用 oslo_messaging 驱动程序来发送范围。
  • redis://127.0.0.1:6379 - 使用 redis 驱动程序发送 span。
  • MongoDB://127.0.0.1:27017 - 使用 mongodb 驱动程序进行发送范围。
  • Elasticsearch://127.0.0.1:9200 - 使用 elasticsearch 驱动程序来发送 span。
  • Jaeger://127.0.0.1:6831 - 使用 jaeger tracing 作为发送 span 的驱动程序。

enabled = False

布尔值

为此节点上的所有服务启用性能分析。

默认值为 False (完全禁用性能分析功能)。

可能的值:

  • true :启用该功能
  • false :禁用该功能。分析无法通过此项目操作启动。如果性能分析由另一个项目触发,则此项目部分将为空。

es_doc_type = notification

字符串值

elasticsearch 中通知索引的文档类型。

es_scroll_size = 10000

整数值

Elasticsearch 批量分割大型请求。此参数定义每个批处理的最大大小(例如: es_scroll_size=10000)。

es_scroll_time = 2m

字符串值

此参数是一个时间值参数(例如: es_scroll_time=2m),指示参与搜索的节点将维护相关资源以继续和支持它。

filter_error_trace = False

布尔值

启用包含 error/exception 的过滤器追踪来分隔的位置。

默认值为 False。

可能的值:

  • true :启用包含 error/exception 的过滤器追踪。
  • false :禁用过滤器。

hmac_keys = SECRET_KEY

字符串值

用于加密上下文数据的 secret 密钥,以用于性能分析。

此字符串值应该具有以下格式:<key1>[,<key2>,…​<keyn>],其中每个键都是随机字符串。通过 REST API 触发性能分析的用户必须在 REST API 调用的标头中设置其中一个键,使其包含此节点的性能分析结果。

"enabled"标志和"hmac_keys"配置选项都应设置为启用性能分析。此外,为了跨所有服务生成正确的性能分析信息,OpenStack 项目之间至少需要一个关键。这样可确保它可用于客户端生成 trace,其中包含所有可能的资源的信息。

sentinel_service_name = mymaster

字符串值

Redissentinel 使用服务名称来识别 master redis 服务。此参数定义名称(例如: sentinal_service_name=mymaster)。

socket_timeout = 0.1

浮点值

Redissentinel 在连接上提供了一个 timeout 选项。此参数定义该超时(例如: socket_timeout=0.1)。

trace_sqlalchemy = False

布尔值

在服务中启用 SQL 请求性能分析。

默认值为 False (SQL 请求不会被跟踪)。

可能的值:

  • true :启用 SQL 请求性能分析。每个 SQL 查询都将是 trace 的一部分,可以通过花费的时间来分析。
  • false :禁用 SQL 请求性能分析。花费的时间仅显示在更高级别的操作上。无法以这种方式分析单个 SQL 查询。

7.1.32. receipt

下表概述了 /etc/keystone/keystone.conf 文件中的 [receipt] 组下可用的选项。

表 7.31. receipt
配置选项 = 默认值类型Description

cache_on_issue = True

布尔值

启用存储签发的接收数据来接收验证缓存,以便首先接收验证不会实际造成完全验证周期。除非启用了全局缓存和接收缓存,否则这个选项无效。

cache_time = 300

整数值

缓存接收创建和验证数据的秒数。除非同时启用了全局和 [receipt] 缓存,否则这不起作用。

caching = True

布尔值

切换到缓存接收创建和验证数据。除非启用了全局缓存,或者禁用了 cache_on_issue,因为我们只对问题进行缓存接收,否则无效。

expiration = 300

整数值

接收应保持有效的时间(以秒为单位)。这个值应该始终比较短,因为它代表了用户在使用缺失的 auth 方法重新尝试验证的时间。

provider = fernet

字符串值

keystone.receipt.provider 命名空间中的接收供应商的入口点。receipt 供应商控制接收和验证操作。Keystone 现在仅包含 fernet receipt 提供程序。fernet receipts 并不需要保留,但要求您运行 keystone-manage fernet_setup (也请参阅 keystone-manage fernet_rotate 命令)。

7.1.33. resource

下表概述了 /etc/keystone/keystone.conf 文件中的 [resource] 组下可用的选项。

表 7.32. resource
配置选项 = 默认值类型Description

admin_project_domain_name = None

字符串值

拥有 admin_project_name 的域名。如果保留未设置,则没有 admin 项目。[resource] admin_project_name 还必须设置为使用这个选项。

admin_project_name = None

字符串值

这是一个特殊的项目,它代表跨服务的云级管理员特权。指向此项目的令牌将包含一个 true is_admin_project 属性,以指示策略特定项目的角色分配应在每个项目中同样应用的系统。如果保留未设置,则没有 admin 项目,因此没有显式方法跨项目角色分配。[resource] admin_project_domain_name 还必须设置为使用这个选项。

cache_time = None

整数值

缓存资源数据的时间(以秒为单位)。除非启用了全局缓存,否则这无效。

caching = True

布尔值

切换资源缓存。除非启用了全局缓存,否则这无效。

domain_name_url_safe = off

字符串值

这控制域名是否仅限于包含 URL-reserved 字符。如果设置为 new,则尝试使用 URL-unsafe 名称创建或更新域将失败。如果设置为 strict,则尝试使用 URL-unsafe 域名限定令牌将失败,从而强制更新所有域名为 URL-safe。

driver = sql

字符串值

keystone.resource 命名空间中的资源驱动程序的入口点。keystone 只提供 sql 驱动程序。除非为 keystone 编写专有驱动程序,否则您不需要设置这个选项。

list_limit = None

整数值

在资源集合中返回的最大实体数。

project_name_url_safe = off

字符串值

这控制项目名称是否仅限于包含 URL-reserved 字符。如果设置为 new,则尝试使用 URL-unsafe 名称创建或更新项目将失败。如果设置为 strict,则尝试使用 URL-unsafe 项目名称限定令牌将失败,从而强制更新所有项目名称为 URL-safe。

7.1.34. revoke

下表概述了 /etc/keystone/keystone.conf 文件中的 [revoke] 组下可用的选项。

表 7.33. revoke
配置选项 = 默认值类型Description

cache_time = 3600

整数值

缓存撤销列表和撤销事件的时间(以秒为单位)。除非同时启用了全局和 [revoke] 缓存,否则这不起作用。

caching = True

布尔值

切换到撤销事件缓存。除非启用了全局缓存,否则这无效。

driver = sql

字符串值

keystone.revoke 命名空间中的令牌撤销后端驱动程序的入口点。Keystone 仅提供 sql 驱动程序,因此不要设置此选项,除非您提供了自定义入口点。

expiration_buffer = 1800

整数值

令牌过期后的秒数,当相应的撤销事件可以从后端清除。

7.1.35. role

下表概述了 /etc/keystone/keystone.conf 文件中的 [role] 组下可用的选项。

表 7.34. role
配置选项 = 默认值类型Description

cache_time = None

整数值

缓存角色数据的时间(以秒为单位)。除非同时启用了全局缓存和 [role] 缓存,否则这不起作用。

caching = True

布尔值

切换角色缓存。除非启用了全局缓存,否则这无效。在典型的部署中,没有理由禁用此功能。

driver = None

字符串值

keystone.role 命名空间中的角色后端驱动程序的入口点。Keystone 仅提供 sql 驱动程序,因此除非您提供自定义入口点,否则没有更改此设置的原因。

list_limit = None

整数值

角色集合中返回的最大实体数。如果您在部署中有大量离散角色,这对调优非常有用。

7.1.36. saml

下表概述了 /etc/keystone/keystone.conf 文件中的 [saml] 组下可用的选项。

表 7.35. saml
配置选项 = 默认值类型Description

assertion_expiration_time = 3600

整数值

确定 keystone 生成的任何 SAML 断言的生命周期,使用 NotOnOrAfter 属性。

certfile = /etc/keystone/ssl/certs/signing_cert.pem

字符串值

用于 SAML 签名的公共证书文件的绝对路径。该值不能包含逗号()。

idp_contact_company = Example, Inc.

字符串值

这是身份提供程序的联系人员的公司名称。

idp_contact_email = support@example.com

字符串值

这是身份提供程序联系人员的电子邮件地址。

idp_contact_name = SAML Identity Provider Support

字符串值

这是身份提供程序的联系人员的指定名称。

idp_contact_surname = Support

字符串值

这是身份提供程序的联系人员的姓氏。

idp_contact_telephone = +1 800 555 0100

字符串值

这是身份提供程序的联系人员的电话号码。

idp_contact_type = other

字符串值

这是最适合描述身份提供程序的联系人员的联系人类型。

idp_entity_id = None

URI 值

这是生成 SAML 断言时使用的身份提供程序(keystone)的唯一实体标识符。生成身份提供程序元数据需要这个值,且必须是 URI (建议使用 URL)。例如: https://keystone.example.com/v3/OS-FEDERATION/saml2/idp

idp_lang = en

字符串值

这是身份提供程序的组织使用的语言。

idp_metadata_path = /etc/keystone/saml2_idp_metadata.xml

字符串值

身份提供程序元数据文件的绝对路径。此文件应该使用 keystone-manage saml_idp_metadata 命令生成。通常没有更改此值的原因。

idp_organization_display_name = OpenStack SAML Identity Provider

字符串值

这是要显示的身份提供程序的组织的名称。

idp_organization_name = SAML Identity Provider

字符串值

这是身份提供程序的组织的名称。

idp_organization_url = https://example.com/

URI 值

这是身份提供程序的组织的 URL。这里引用的 URL 对于人类有用。

idp_sso_endpoint = None

URI 值

这是接受 HTTP POST 请求的身份提供程序的单点登录(SSO)服务位置。生成身份提供程序元数据需要值。例如: https://keystone.example.com/v3/OS-FEDERATION/saml2/sso

keyfile = /etc/keystone/ssl/private/signing_key.pem

字符串值

用于 SAML 签名的私钥文件的绝对路径。该值不能包含逗号()。

relay_state_prefix = ss:mem:

字符串值

生成增强客户端和代理(ECP)断言时使用的 RelayState SAML 属性的前缀。在典型的部署中,没有更改此值的原因。

xmlsec1_binary = xmlsec1

字符串值

用于 XML 签名的二进制文件的名称或绝对路径。虽然只支持 XML 安全库(xmlsec1),但它可能在您的系统上有一个非标准名称或路径。如果 keystone 无法找到二进制文件,您可能需要安装适当的软件包,使用此选项指定绝对路径,或者调整 keystone 的 PATH 环境变量。

7.1.37. security_compliance

下表概述了 /etc/keystone/keystone.conf 文件中的 [security_compliance] 组下可用的选项。

表 7.36. security_compliance
配置选项 = 默认值类型Description

change_password_upon_first_use = False

布尔值

启用此选项要求用户在创建用户时或管理重置时更改密码。在访问任何服务前,受影响的用户必须更改其密码。要忽略特定用户(如服务用户)的这个要求,请通过更新用户 API 为所需的用户设置 options 属性 ignore_change_password_upon_first_use 设置为 True。此功能默认为禁用。此功能仅适用于 [identity] 驱动程序的 sql 后端。

disable_user_account_days_inactive = None

整数值

在被视为"主动"并自动禁用(锁定)前,用户可以经过验证的最大天数。此功能默认为禁用;将任何值设置为启用它。此功能取决于 [identity] 驱动程序的 sql 后端。当用户超过这个阈值并被视为"inactive"时,HTTP API 中用户的 enabled 属性可能与用户表中 启用的 栏的值不匹配。

lockout_duration = 1800

整数值

超过用户帐户的失败尝试次数上限(由 [security_compliance] lockout_failure_attempts指定)的最大数量被锁定。除非将 [security_compliance] lockout_failure_attempts 设置为非零值,否则设置此选项将无效。此功能取决于 [identity] 驱动程序的 sql 后端。

lockout_failure_attempts = None

整数值

在由 [security_compliance] lockout_duration 指定的秒数内,用户可以在用户帐户锁定前验证的次数上限。此功能默认为禁用。如果启用了这个功能,并且未设置 [security_compliance] lockout_duration,则用户可能会无限期锁定,直到用户通过 API 明确启用为止。此功能取决于 [identity] 驱动程序的 sql 后端。

minimum_password_age = 0

整数值

在用户可以更改密码之前必须使用密码的天数。这可防止用户立即更改密码,以擦除密码历史记录并重复使用旧密码。此功能不会阻止管理员手动重置密码。它默认是禁用的,并允许立即更改密码。此功能取决于 [identity] 驱动程序的 sql 后端。注: 如果设置了 [security_compliance] password_expires_days,则此选项的值应小于 password_expires_days

password_expires_days = None

整数值

在要求更改密码之前,密码被视为有效的天数。此功能默认为禁用。如果启用,新密码更改将具有过期日期,但现有密码不会受到影响。此功能取决于 [identity] 驱动程序的 sql 后端。

password_regex = None

字符串值

用于验证密码强度要求的正则表达式。默认情况下,正则表达式将匹配任何密码。以下是需要至少 1 个字母、1 个数字且最小长度为 7 个字符的模式示例: ^(?=.\\d) (?=.[a-zA-Z]).{7,}$ 此功能取决于 [identity] 驱动程序的 sql 后端。

password_regex_description = None

字符串值

以人员使用的语言描述您的密码正则表达式。如果密码无法与正则表达式匹配,则此配置变量的内容将返回到用户,以说明请求的密码不足的原因。

unique_last_password_count = 0

整数值

这将控制在历史记录中保留的之前用户密码迭代的数量,以便强制新创建的密码是唯一的。包含新密码的总数不应大于或等于这个值。将值设为 0 (默认值)将禁用此功能。因此,要启用此功能,值必须大于 0。此功能取决于 [identity] 驱动程序的 sql 后端。

7.1.38. shadow_users

下表概述了 /etc/keystone/keystone.conf 文件中的 [shadow_users] 组下可用的选项。

表 7.37. shadow_users
配置选项 = 默认值类型Description

driver = sql

字符串值

keystone. identity.shadow_users 命名空间中的 shadow 用户后端驱动程序的入口点。此驱动程序用于对外部管理的身份(通过联邦、LDAP 等)保留本地用户引用。Keystone 仅提供 sql 驱动程序,因此除非您提供自定义入口点,否则没有更改此选项的原因。

7.1.39. token

下表概述了 /etc/keystone/keystone.conf 文件中的 [token] 组下可用的选项。

表 7.38. token
配置选项 = 默认值类型Description

allow_expired_window = 172800

整数值

这控制了检索令牌超出内置过期时间的秒数。这允许长时间运行的操作成功。默认为 2 天。

allow_rescope_scoped_token = True

布尔值

这会切换范围性令牌是否可以重新限定到新项目或域,从而防止用户交换任何其他令牌的范围令牌(包括具有默认项目范围)的作用域令牌。这会强制用户对无作用域令牌进行身份验证(稍后会交换具有更具体的范围的令牌的无作用域令牌),或者为每个范围的令牌提供其凭据,以避免完全重复使用。

cache_on_issue = True

布尔值

启用将发布的令牌数据存储到令牌验证缓存,以便第一个令牌验证不会实际造成完整的验证周期。除非启用了全局缓存,并且仍然缓存令牌,即使 [token] caching = False,此选项也不会起作用。弃用自: S

*reason:*Keystone 已公开用于缓存令牌的配置选项。在发出令牌时,使用单独的配置选项来缓存令牌,不必要复杂,如果禁用令牌缓存,则误导,因为令牌在签发时默认会预缓存。在发布时预缓存令牌的功能将完全依赖于 ''keystone.conf [token] 缓存' 选项。

cache_time = None

整数值

缓存令牌创建和验证数据的秒数。除非同时启用了 global 和 [token] 缓存,否则这不起作用。

caching = True

布尔值

切换到缓存令牌创建和验证数据。除非启用了全局缓存,否则这无效。

expiration = 3600

整数值

令牌应保持有效的时间(以秒为单位)。显著减少这个值可能会破坏涉及多个服务协调的"长时间运行"操作,并强制用户更频繁地使用 keystone 进行身份验证。显著增加这个值将增加将同时有效的令牌数量。Keystone 令牌也是 bearer 令牌,因此较短的持续时间也会降低被入侵令牌的潜在安全影响。

provider = fernet

字符串值

keystone.token.provider 命名空间中的令牌提供程序的入口点。令牌提供程序控制令牌构造、验证和撤销操作。支持的上游供应商有 fernetjwsfernetjws 令牌都不需要持久性,且它们都需要额外的设置。如果使用 fernet,则需要运行 keystone-manage fernet_setup,这将创建用于加密令牌的对称密钥。如果使用 jws,则需要使用 SHA-256 哈希算法生成 ECDSA 密钥对,该算法可使用 keystone-manage create_jws_keypair 完成。请注意,fernet 令牌已加密,jws 令牌仅被签名。如果您的部署对用于生成令牌 ID 的有效负载内容有安全要求,请务必考虑这一点。

revoke_by_id = True

布尔值

这会切换支持按令牌标识符撤销各个令牌,因此各种令牌枚举操作(如列出向特定用户发出的所有令牌)。这些操作用于确定要考虑撤销的令牌列表。如果您使用 kvs [revoke] 驱动程序,请不要禁用此选项。

7.1.40. tokenless_auth

下表概述了 /etc/keystone/keystone.conf 文件中的 [tokenless_auth] 组下可用的选项。

表 7.39. tokenless_auth
配置选项 = 默认值类型Description

issuer_attribute = SSL_CLIENT_I_DN

字符串值

用于将客户端证书签发者传递给 keystone 的 WSGI 环境变量的名称。此属性用作无 X.509 令牌授权的身份提供程序 ID,以及协议查找其对应的映射。在典型的部署中,没有更改此值的原因。

protocol = x509

字符串值

用于代表 X.509 无令牌的授权的联邦协议 ID。这与 [tokenless_auth] issuer_attribute 的值相结合来查找对应的联邦映射。在典型的部署中,没有更改此值的原因。

trusted_issuer = []

多值

可区分名称的列表,用于标识允许使用 X.509 无令牌授权的客户端证书的可信签发者。如果没有该选项,则不允许证书。可区分名称(DN)的值的格式必须用逗号分开,且不包含空格。另外,因为单个 DN 可能会包含逗号,因此该配置选项可能会多次重复,以代表多个值。例如: keystone.conf 会包括两个连续的行来信任两个不同的 DN,如 trusted_issuer = CN=john,OU=keystone,O=openstacktrusted_issuer = CN=mary,OU=eng,O=abc

7.1.41. totp

下表概述了 /etc/keystone/keystone.conf 文件中的 [totp] 组下可用的选项。

表 7.40. totp
配置选项 = 默认值类型Description

included_previous_windows = 1

整数值

在处理 TOTP 传递时要检查的以前的窗口数量。

7.1.42. trust

下表概述了 /etc/keystone/keystone.conf 文件中的 [trust] 组下可用的选项。

表 7.41. trust
配置选项 = 默认值类型Description

allow_redelegation = False

布尔值

允许将授权从一个用户重新定向到另一个用户,并有效地将信任链接在一起。禁用后,信任的 remaining_uses 属性被限制为零。

driver = sql

字符串值

keystone.trust 命名空间中的信任后端驱动程序的入口点。Keystone 仅提供 sql 驱动程序,因此除非您提供了自定义入口点,否则没有更改此设置的原因。

max_redelegation_count = 3

整数值

授权可以在信任链中从一个用户重新定向到另一个用户的次数上限。对于特定的信任,这个数字可以进一步减少。

7.1.43. unified_limit

下表概述了 /etc/keystone/keystone.conf 文件中的 [unified_limit] 组下可用的选项。

表 7.42. unified_limit
配置选项 = 默认值类型Description

cache_time = None

整数值

缓存统一限制数据的时间(以秒为单位)。除非启用了全局缓存和 [unified_limit] 缓存,否则这不起作用。

caching = True

布尔值

切换到统一限制缓存。除非启用了全局缓存,否则这无效。在典型的部署中,没有理由禁用此功能。

driver = sql

字符串值

keystone.unified_limit 命名空间中的统一限制后端驱动程序的入口点。Keystone 仅提供 sql 驱动程序,因此除非您提供自定义入口点,否则没有更改此设置的原因。

enforcement_model = flat

字符串值

验证与项目关联的限制时要使用的强制模型。根据现有限制,执行模型的行为会有所不同,如果模型在运行的部署中切换,这可能会导致向后兼容的更改。

list_limit = None

整数值

在统一限制集合中返回的最大实体数。如果您在部署中有大量统一限制,这对调优非常有用。

7.1.44. wsgi

下表概述了 /etc/keystone/keystone.conf 文件中的 [wsgi] 组下可用的选项。

表 7.43. wsgi
配置选项 = 默认值类型Description

debug_middleware = False

布尔值

如果设置为 true,这会在 Keystone 中启用 oslo 调试中间件。此中间件打印有关请求和响应的许多信息。它可用于获取线(编码)上数据的信息并传递给 WSGI 应用程序管道。此中间件对配置文件的 [DEFAULT] 部分中的"debug"设置没有影响,或者将 Keystone 的日志级别设置为"DEBUG";它特定于调试 WSGI 数据,并保留 Keystone (特定请求相关的数据)。此选项用于对 web 服务器(apache、nginx 等)和 Keystone 之间的请求和响应数据进行内省。此中间件作为中间件链中的第一个元素插入,并显示与线路最接近的数据。警告:不适合在生产环境中使用。此中间件可以和发出敏感/非特权数据。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.