2013-09-24 8 views

ответ

2

Я ответил на ваш предыдущий вопрос об альтернативных способах управления пользователями в openstack. Использование API-интерфейса Keystone на данный момент не так много, хотя, adam young много работает над реализацией общих трастов в токенах. Это предоставит средства для предоставления доверенного токена пользователю для уменьшения набора административных функций ... в конечном итоге. Пока, хотя вы, вероятно, лучше смотрите на решения, которые я задал в другом вопросе о переполнении стека.

исе: Openstack create user without keystone authentication

Вы можете прочитать больше о трестах и ​​RBAC в OpenStack здесь: http://adam.younglogic.com/2013/03/trusts-rbac/

Ниже как создать пользователь, который не является «администратором», но имеет роль администратора

Вы можете использовать это, чтобы создать пользователя, который может использоваться вашим кодом для создания новых пользователей. Однако, очевидно, что код будет иметь полные административные полномочия. Я не знаю, каков ваш профиль риска. Но, очевидно, вы хотите иметь возможность регистрировать пользователей. Вы можете подумать о создании простого механизма RPC с помощью кэша администратора. И ваше публичное приложение отправит минимальную информацию в эту службу RPC. Затем затвердеть интерфейс RPC. Или, как я уже говорил ранее, рассмотреть альтернативные варианты, предложенные в вашем других StackOverflow вопрос (IE: LDAP, прямые запросы MySQL)

[email protected]:~# keystone tenant-list 
+----------------------------------+----------+---------+ 
|    id    | name | enabled | 
+----------------------------------+----------+---------+ 
| 5c1bd4f84d044450aaa22d16360f29c0 | admin | True | 
| 2862b9e419b74880a507f96de3424f89 | services | True | 
+----------------------------------+----------+---------+ 
[email protected]:~# keystone user-create --name sallyadmin --tenant-id 5c1bd4f84d044450aaa22d16360f29c0 --pass sallypassword --email [email protected] --enabled true 
+----------+----------------------------------+ 
| Property |    Value    | 
+----------+----------------------------------+ 
| email |  [email protected]  | 
| enabled |    True    | 
| id | ac822a0297864fe6870b065e50ea4568 | 
| name |   sallyadmin   | 
| tenantId | 5c1bd4f84d044450aaa22d16360f29c0 | 
+----------+----------------------------------+ 

Теперь вы должны иметь sallyadmin пользователя в этом администратора арендатора.

Теперь давайте добавим роль

[email protected]:~# keystone role-list 
+----------------------------------+----------+ 
|    id    | name | 
+----------------------------------+----------+ 
| b3dc33d067a240d49b5c1404fee049f1 | Member | 
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ | 
| ba82a9493b034d4b83ae96c8aff75b8d | admin | 
+----------------------------------+----------+ 
[email protected]:~# keystone user-list 
+----------------------------------+------------+---------+------------------------+ 
|    id    | name | enabled |   email   | 
+----------------------------------+------------+---------+------------------------+ 
| ccf2c111e21c44dca0ab40f6a886247c | admin | True | [email protected] | 
| 5e82674cc67d461c9a3ccb14e86b3794 | cinder | True | [email protected] | 
| 80d8defdf0464787b11423427c0fe508 | glance | True | [email protected] | 
| 8332b99589044cd5a40ca1a9329f7aef | nova | True |  [email protected]  | 
| ac822a0297864fe6870b065e50ea4568 | sallyadmin | True | [email protected] | 
+----------------------------------+------------+---------+------------------------+ 
[email protected]:~# keystone user-role-add --user ac822a0297864fe6870b065e50ea4568 --role ba82a9493b034d4b83ae96c8aff75b8d --tenant-id 5c1bd4f84d044450aaa22d16360f29c0 

Теперь давайте проверить sallyadmin!

[email protected]:~# export OS_USERNAME="sallyadmin" 
[email protected]:~# export OS_PASSWORD="sallypassword" 
[email protected]:~# keystone user-list 
+----------------------------------+------------+---------+------------------------+ 
|    id    | name | enabled |   email   | 
+----------------------------------+------------+---------+------------------------+ 
| ccf2c111e21c44dca0ab40f6a886247c | admin | True | [email protected] | 
| 5e82674cc67d461c9a3ccb14e86b3794 | cinder | True | [email protected] | 
| 80d8defdf0464787b11423427c0fe508 | glance | True | [email protected] | 
| 8332b99589044cd5a40ca1a9329f7aef | nova | True |  [email protected]  | 
| ac822a0297864fe6870b065e50ea4568 | sallyadmin | True | [email protected] | 
+----------------------------------+------------+---------+------------------------+ 
+0

Благодарим вас за ответ. Я должен использовать код python, чтобы реализовать «создать пользователя как admin», а не «режим оболочки». Я думаю, что я должен создать keystoneclient, как этот «keystone = client.Client (username = 'admin', password = '47da55c1e21f4360', tenant_name = 'admin', auth_url = 'http: //10.0.3.181: 35357/v2.0/') ", но я не знаю, как это сделать дальше. :-( – changzhi

+0

Вы говорите: «Вы можете подумать о создании простого механизма RPC с ключом администратора. И ваше публичное приложение отправит минимальную информацию в эту службу RPC». Не могли бы вы рассказать мне о подробных шагах, чтобы реализовать это? Спасибо! – changzhi

+0

I я решил установить Openstack G. Я редактирую этот файл «/usr/share/openstack-dashboard/openstack_dashboard/api/keystone.py», добавляю «def super_keystoneclient (request, username, admin = False)», как keystoneclient – changzhi

Смежные вопросы