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