使用 Keystone 中间件与 Barbican¶
先决条件¶
要启用 Barbican 与 Keystone 的集成,您需要一个相对较新版本的 Keystone。 如果您正在安装一个 OpenStack 云,其中所有服务(包括 Keystone 和 Barbican)都来自同一版本,则这已经足够了。 如果您没有可用的 Keystone 实例,可以使用以下方法之一设置您自己的实例。
一个带有 Keystone 的 OpenStack 云(最简单的情况是 Devstack)
将 Barbican 挂接到 Keystone¶
假设您已经设置了 Keystone 实例,将 Barbican 连接到 Keystone 非常简单。 完成后,Barbican 应该要求在所有 API 调用(获取版本调用除外)中提供有效的 X-Auth-Token。
关闭所有活动的 Barbican 实例
编辑
/etc/barbican/barbican-api-paste.ini将 pipeline
/v1值从未认证的barbican_api更改为已认证的barbican-api-keystone。 此步骤对于来自 OpenStack Newton 或更高版本的 barbican 来说是不必要的,因为从 OpenStack Newton 开始,barbican 默认使用 Keystone 认证。[composite:main] use = egg:Paste#urlmap /: barbican_version /v1: barbican-api-keystone
替换
authtoken过滤器值以匹配您的 Keystone 设置[filter:authtoken] paste.filter_factory = keystonemiddleware.auth_token:filter_factory auth_plugin = password username = {YOUR_KEYSTONE_USERNAME} password = {YOUR_KEYSTONE_PASSWORD} user_domain_id = {YOUR_KEYSTONE_USER_DOMAIN} project_name = {YOUR_KEYSTONE_PROJECT} project_domain_id = {YOUR_KEYSTONE_PROJECT_DOMAIN} www_authenticate_uri = http://{YOUR_KEYSTONE_ENDPOINT}:5000/v3 auth_url = http://{YOUR_KEYSTONE_ENDPOINT}:5000/v3
或者,您可以将其缩短为
[filter:authtoken] paste.filter_factory = keystonemiddleware.auth_token:filter_factory
并将 Barbican 的 Keystone 凭据存储在
[keystone_authtoken]部分的/etc/barbican/barbican.conf中[keystone_authtoken] auth_plugin = password username = {YOUR_KEYSTONE_USERNAME} password = {YOUR_KEYSTONE_PASSWORD} user_domain_id = {YOUR_KEYSTONE_USER_DOMAIN} project_name = {YOUR_KEYSTONE_PROJECT} project_domain_id = {YOUR_KEYSTONE_PROJECT_DOMAIN} www_authenticate_uri = http://{YOUR_KEYSTONE_ENDPOINT}:5000/v3 auth_url = http://{YOUR_KEYSTONE_ENDPOINT}:5000/v3
启动 Barbican
{barbican_home}/bin/barbican.sh start