Получение токена¶
Токен необходим для получения доступа к контроллеру. Ни один из REST API запросов невозможен без токена.
Способы получения токена¶
Примечание
Все параметры в командах указаны для примера, при использовании подставляйте актуальные параметры.
Важно
Перед получением токена необходимо установить переменные окружения. Либо в консольной утилите указывать дополнительные параметры авторизации:
--os-auth-type password
- тип аутентификации;--os-identity-api-version 3
- версия API службы идентификации.
Получение запросом к API c использованием
curl
.Команда:
curl -i \ -H "Content-Type: application/json" \ -d ' { "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "admin", "domain": { "name": "default" }, "password": "adminpwd" } } } } }' \ http://controller:5000/v3/auth/tokens ; echo
Посредством консольной утилиты Openstack Client.
Команда:
openstack --os-auth-url http://controller:500/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name admin --os-password=****** --os-username admin token issue
Где:
500
- номер порта управляющего узла, к которому обращается Keystone для получения токена.Посредством команды
tnx extensions list
консольной утилиты Openstack Client (работает только для OpenStack Mitaka).Команда:
openstack tnx extensions list --filter tnx
Механизм аутентификации описан в разделе «Аутентификация в OpenStackClient».
Пример ответа:
url_for_volume http://controller:8776/v1/8f6b7f07a9e740ba876c989c8f1c43a2 url_for_compute http://controller:8774/v2.1/8f6b7f07a9e740ba876c989c8f1c43a2 token=93d7e03b8c1341c1b2d19c4be43fe5e6 tenant=8f6b7f07a9e740ba876c989c8f1c43a2 +----+--------------------------+----------------------+----------------------------------+ | # | Name | Alias | Description | +----+--------------------------+----------------------+----------------------------------+ | 1 | TnxPowerActions | power-actions | View a log of power actions for | | | | | hypervisor. | | 2 | TnxVolumes | tnx-cc-os-volumes | Decorate os-volumes resource | | | | | extension. | | | | | Adding os-volumes/action | | | | | route. | | 3 | TnxHypervisorsExtension | tnx-hypervisors | Tionix Extension. Hypervisors | | 4 | TnxLicenses | tnx-licenses | Tionix Extension. licenses | | 5 | TnxMetrics | tnx-metrics | cloud stats extension | | 6 | TnxMonitor | tnx-monitor | Get info about Monitor. | | 7 | TnxNcPowerDevices | tnx-nc-power-devices | Tionix Extension. Power devices | | 8 | TnxNodeControl | tnx-node-control | Get info about Node Control. | | 9 | TnxHosts | tnx-os-hosts | Decorator to os-hosts resource | | | | | extension. For adding ACTION to | | | | | host | | 10 | TnxServersExtension | tnx-servers | | | 11 | TnxServersHostsExtension | tnx-servers-hosts | | | 12 | TnxServersSLAExtension | tnx-servers-sla | | | 13 | TnxServersUsersExtension | tnx-servers-users | | | 14 | TnxSessionsExtension | tnx-sessions | | | 15 | TnxTenantsExtension | tnx-tenants | Tionix Extension. Tenants | | 16 | TnxVDIServer | tnx-vdi-server | Get info about VDI Server. | +----+--------------------------+----------------------+----------------------------------+
Способы получения токена на проект¶
Токены на проект предназначены для разрешения на работу в рамках определенного проекта. Они содержат каталог услуг, набор ролей и подробную информацию о проекте, на работу в котором выдается разрешение.
Примечание
Все параметры в командах указаны для примера, при использовании подставляйте актуальные параметры.
Получение токена на проект запросом к API c использованием
curl
.Команда:
curl -i \ -H "Content-Type: application/json" \ -d ' { "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "admin", "domain": { "name": "default" } , "password": "adminpwd" } } }, "scope": { "project": { "name": "demo", "domain": { "name": "default" } } } } }' \ "http://controller:5000/v3/auth/tokens" ; echo
Получение токена на проект посредством консольной утилиты Openstack Client.
Команда:
openstack --os-username=admin --os-user-domain-name=default --os-password=****** --os-project-name=admin --os-project-domain-name=default token issue