Openstack创建一个像管理员这样的超级用户

Openstack创建一个像管理员这样的超级用户,openstack,Openstack,我正在尝试将寄存器添加到Openstack。所以我想创建一个像admin这样的超级用户。然后,我可以创建没有管理员的超级用户的用户。有人能给我一些建议吗?我回答了您之前关于在openstack中控制用户管理的替代方法的问题。使用keystone API目前没有太多选项,adam young在令牌中实现共享信任方面做了大量工作。这将提供向用户授予可信令牌的方法,以减少管理功能集。。。最终。现在,您可能会更好地了解我在另一个堆栈溢出问题中提出的解决方案 参考: 您可以在openstack中阅读有关信

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

我回答了您之前关于在openstack中控制用户管理的替代方法的问题。使用keystone API目前没有太多选项,adam young在令牌中实现共享信任方面做了大量工作。这将提供向用户授予可信令牌的方法,以减少管理功能集。。。最终。现在,您可能会更好地了解我在另一个堆栈溢出问题中提出的解决方案

参考:

您可以在openstack中阅读有关信任和rbac的更多信息:

下面是如何创建一个不是“管理员”但具有管理员角色的用户

您可以使用它来创建一个用户,您的代码可以使用该用户来创建新用户。但是,很明显,该代码将具有完整的管理凭据。我不知道你的风险是什么。但很明显,您希望能够注册用户。您可以考虑用KiStand Admin CRED构建简单的RPC机制。并让面向公众的应用程序向该RPC服务发送最少的信息。然后硬化RPC接口。或者,正如我之前所说的,考虑在其他堆栈溢出问题中建议的替代方案(即:LDAP,直接MySQL查询)< /P> 现在,您应该在该管理员租户中有一个用户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  |
+----------------------------------+------------+---------+------------------------+

谢谢你的回答。我应该使用python代码来实现“创建像管理员一样的用户”,而不是现在的“shell模式”。我想我应该创建这样一个keystone客户端“keystone=client.client(username='admin',password='47da55c1fe2f4360',tenant_name='admin',auth_url=”),但我不知道下一步怎么做-(你可能会说:“你可以考虑用一个KiStand Admin CRED建立一个简单的RPC机制。让你的面向公众的应用程序向RPC服务发送最少的信息。”你能告诉我实现它的详细步骤吗?谢谢!我已经解决了这个问题。我已经安装了OpenStack G.我编辑了这个文件。“/usr/share/openstack dashboard/openstack_dashboard/api/keystone.py”,添加类似keystoneclient的“def super_keysteneclient(request,username,admin=False)”
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  |
+----------------------------------+------------+---------+------------------------+