第 8 章 应用程序凭证
使用 应用凭据 来避免将用户帐户凭据嵌入到配置文件中。相反,用户会创建一个 Application Credential,它接收委派对单个项目的访问权限,并具有自己的不同的机密。用户也可以将委派的特权限制为该项目中的单个角色。这样,您可以采用最小特权的原则,其中经过身份验证的用户只能获得一个项目以及需要正常工作的角色,而不是所有项目和角色。
您可以使用这种方法来消耗 API,而不显示用户凭据,应用可以在不需要嵌入的用户凭据的情况下向 Keystone 进行身份验证。
您可以使用应用程序凭证为应用程序生成令牌并配置 keystone_authtoken 设置。以下部分描述了这些用例。
Application Credential 依赖于创建它的用户帐户,因此当该帐户被删除或丢失对相关角色的访问权限时,它将终止。
8.1. 使用应用程序凭证生成令牌 复制链接链接已复制到粘贴板!
应用程序凭据在仪表板中作为自助服务功能提供给用户使用。本例演示了用户如何创建应用凭据,然后使用它生成令牌。
创建测试项目并测试用户帐户:
创建名为
AppCreds的项目:openstack project create AppCreds
$ openstack project create AppCredsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
AppCredsUser的用户:openstack user create --project AppCreds --password-prompt AppCredsUser
$ openstack user create --project AppCreds --password-prompt AppCredsUserCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为
AppCreds项目授予member角色的AppCredsUser访问权限:openstack role add --user AppCredsUser --project AppCreds member
$ openstack role add --user AppCredsUser --project AppCreds memberCopy to Clipboard Copied! Toggle word wrap Toggle overflow
以
AppCredsUser身份登录仪表板并创建应用程序凭证:概述IdentityApplication Credentials+Create Application Credential。注意确保您下载
clouds.yaml文件内容,因为在关闭了Your Application Credential的弹出窗口后,您无法再次访问它。使用 CLI 创建名为
/home/stack/.config/openstack/clouds.yaml的文件,并粘贴clouds.yaml文件的内容。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您的部署这些值将有所不同。
使用 Application Credential 来生成令牌。使用以下命令时,不得作为任何特定用户提供,且必须与
clouds.yaml文件位于同一个目录中。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果您收到与 init()类似的错误,则获取 unexpected 关键字参数 'application_credential_secret',则您可能仍会 source 到前面的凭证。对于全新的环境,请运行 sudo su - 堆栈。