我正在尝试将寄存器添加到 Openstack。所以我想创建一个像管理员这样的超级用户。然后我可以在没有管理员的情况下由超级用户创建用户。有人可以给我一些建议吗?
1 回答
我回答了您之前关于在 openstack 中控制用户管理的替代方法的问题。虽然目前使用 keystone API 的选择并不多,但 adam Young 正在做大量工作来实现令牌中的共享信任。这将提供向用户授予可信令牌以减少管理功能集的方法......最终。现在,尽管您可能更好地查看我在其他堆栈溢出问题中提出的解决方案。
参考:Openstack 创建没有 keystone 身份验证的用户
您可以在此处阅读有关 openstack 中的信任和 rbac 的更多信息:http: //adam.younglogic.com/2013/03/trusts-rbac/
以下是您如何创建一个不是“管理员”但具有管理员角色的用户
您可以使用它来创建一个用户,您的代码可以使用该用户来创建新用户。但是,显然该代码将具有完整的管理凭据。我不知道你的风险状况是什么。但显然你希望能够注册用户。您可能会考虑使用 keystone 管理员凭据构建一个简单的 RPC 机制。并让您面向公众的应用程序向该 RPC 服务发送最少的信息。然后加固 RPC 接口。或者,正如我之前所说,考虑在您的其他 stackoverflow 问题中建议的替代方案(即:LDAP,直接 MySQL 查询)
root@openstack-cc1:~# keystone tenant-list
+----------------------------------+----------+---------+
| id | name | enabled |
+----------------------------------+----------+---------+
| 5c1bd4f84d044450aaa22d16360f29c0 | admin | True |
| 2862b9e419b74880a507f96de3424f89 | services | True |
+----------------------------------+----------+---------+
root@openstack-cc1:~# keystone user-create --name sallyadmin --tenant-id 5c1bd4f84d044450aaa22d16360f29c0 --pass sallypassword --email sally@cloudbadass.net --enabled true
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | sally@cloudbadass.net |
| enabled | True |
| id | ac822a0297864fe6870b065e50ea4568 |
| name | sallyadmin |
| tenantId | 5c1bd4f84d044450aaa22d16360f29c0 |
+----------+----------------------------------+
现在您应该在该管理员租户中有一个用户 sallyadmin。
现在让我们添加一个角色
root@openstack-cc1:~# keystone role-list
+----------------------------------+----------+
| id | name |
+----------------------------------+----------+
| b3dc33d067a240d49b5c1404fee049f1 | Member |
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |
| ba82a9493b034d4b83ae96c8aff75b8d | admin |
+----------------------------------+----------+
root@openstack-cc1:~# keystone user-list
+----------------------------------+------------+---------+------------------------+
| id | name | enabled | email |
+----------------------------------+------------+---------+------------------------+
| ccf2c111e21c44dca0ab40f6a886247c | admin | True | matt.joyce@lulz.com |
| 5e82674cc67d461c9a3ccb14e86b3794 | cinder | True | cinder@localhost |
| 80d8defdf0464787b11423427c0fe508 | glance | True | glance@localhost |
| 8332b99589044cd5a40ca1a9329f7aef | nova | True | nova@localhost |
| ac822a0297864fe6870b065e50ea4568 | sallyadmin | True | sally@cloudbadass.net |
+----------------------------------+------------+---------+------------------------+
root@openstack-cc1:~# keystone user-role-add --user ac822a0297864fe6870b065e50ea4568 --role ba82a9493b034d4b83ae96c8aff75b8d --tenant-id 5c1bd4f84d044450aaa22d16360f29c0
现在让我们测试一下 sallyadmin!
root@openstack-cc1:~# export OS_USERNAME="sallyadmin"
root@openstack-cc1:~# export OS_PASSWORD="sallypassword"
root@openstack-cc1:~# keystone user-list
+----------------------------------+------------+---------+------------------------+
| id | name | enabled | email |
+----------------------------------+------------+---------+------------------------+
| ccf2c111e21c44dca0ab40f6a886247c | admin | True | matt.joyce@lulz.com |
| 5e82674cc67d461c9a3ccb14e86b3794 | cinder | True | cinder@localhost |
| 80d8defdf0464787b11423427c0fe508 | glance | True | glance@localhost |
| 8332b99589044cd5a40ca1a9329f7aef | nova | True | nova@localhost |
| ac822a0297864fe6870b065e50ea4568 | sallyadmin | True | sally@cloudbadass.net |
+----------------------------------+------------+---------+------------------------+