2

我正在尝试将寄存器添加到 Openstack。所以我想创建一个像管理员这样的超级用户。然后我可以在没有管理员的情况下由超级用户创建用户。有人可以给我一些建议吗?

4

1 回答 1

2

我回答了您之前关于在 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  |
+----------------------------------+------------+---------+------------------------+
于 2013-09-24T14:54:46.420 回答