使用 Keystone 进行身份验证¶
Glance 可以选择与 Keystone 集成。设置起来相对简单,因为 Keystone 发行版包含必要的中间件。安装 Keystone 并编辑配置文件后,新创建的镜像的 owner 属性将被设置为经过身份验证用户的租户,并且 is_public 属性将导致对那些属性为 false 的镜像的访问权限仅限于所有者、具有管理员上下文的用户,或者与该镜像共享的租户/用户。
配置 Glance 服务器使用 Keystone¶
Keystone 通过使用中间件与 Glance 集成。Glance API 的默认配置文件使用一个名为 unauthenticated-context 的中间件,它生成包含空白身份验证信息的请求上下文。为了配置 Glance 使用 Keystone,必须用 authtoken 和 context 中间件替换 unauthenticated-context 中间件。authtoken 中间件执行身份验证令牌验证并检索实际的用户身份验证信息。它可以在 Keystone 发行版中找到。
配置 Glance API 使用 Keystone¶
配置 Glance API 使用 Keystone 相对简单。第一步是确保在 glance-api-paste.ini 中存在这两个中间件的声明。以下是 authtoken 的一个示例
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
auth_url = http://localhost:5000
project_domain_id = default
project_name = service_admins
user_domain_id = default
username = glance_admin
password = password1234
这些变量的实际值需要根据您的具体情况进行设置。有关更多信息,请参考 Keystone 文档 中关于 auth_token 中间件的说明。
简而言之
auth_url变量指向 Keystone 服务。中间件使用此信息来实际查询 Keystone 以验证身份验证令牌的有效性。身份验证凭据(
project_name、project_domain_id、user_domain_id、username和password)将用于检索服务令牌。该令牌将在后台授权用户令牌。
最后,为了实际启用 Keystone 身份验证,必须修改应用程序管道。默认情况下,它看起来像这样
[pipeline:glance-api]
pipeline = versionnegotiation unauthenticated-context apiv1app
您的特定管道可能因其他选项(例如镜像缓存)而异。必须通过将 unauthenticated-context 替换为 authtoken 和 context 来进行更改
[pipeline:glance-api]
pipeline = versionnegotiation authtoken context apiv1app