跳转到: 导航, 搜索

OpenStackClient/Authentication

使用 OpenStackClient 进行身份验证的方式与从 Folsom 时间框架开始的项目 CLI 类似。 实际的选项名称和环境变量实际上是相同的,因此可以使用相同的基本配置在 CLI 工具之间来回切换。

环境变量 vs 选项

所有身份验证信息都可以使用命令行全局选项或环境变量指定。 将选项名称转换为变量名称的细节在 《用户界面指南》 中有介绍,简而言之,该过程就是将破折号更改为下划线,并将所有字符转换为大写。

例如:身份验证端点的 URL 可以使用 --os-auth-url 选项或 OS_AUTH_URL 环境变量指定。

注意:OSC 与项目客户端的一个区别在于,OSC 倾向于使用 --os-project-name--os-project-id,而不是原来的 --os-tenant-name 等。旧名称仍然有效,但除此之外未记录在案。


密码流程

密码流程通常用于一次性、交互式和初始连接。 它需要定义一个租户项目(名称或 ID)、用户名、密码和身份验证端点。

# Pick one of OS_PROJECT_NAME or OS_PROJECT_ID
OS_PROJECT_ID=<project-id>                 # --os-project-id
OS_PROJECT_NAME=<project-name>             # --os-project-name

OS_USERNAME=<username>                     # --os-username
OS_PASSWORD=<password>                     # --os-password
OS_AUTH_URL=<identity-api-endpoint>        # --os-auth-url

笔记

  • Keystone 中的 ID 与名称:虽然 ID 和名称都旨在是唯一的,但 ID 是不可变的,而名称可以更改

令牌流程

密码流程身份验证需要在每次调用 CLI 命令时都通过身份验证 API 进行一次访问。 在一起执行多个命令(或在脚本中)时,缓存身份验证令牌并将其传递给 CLI 命令会更有效。 由于当前默认 PKI 令牌的尺寸,这在交互式操作中比较困难。

OS_TOKEN=<token>                           # --os-token

您将与之通信的服务端点通常由身份验证服务目录提供。 具体而言,令牌流程绕过了服务目录,因此需要指定正在调用的服务 API 的最终 API 端点。

即使服务目录提供了信息,也可以将其用于在密码流程身份验证中使用时显式设置端点。

OS_ENDPOINT=<api-endpoint>                 # --os-endpoint