Getting auth token from keystone in horizon

django, openstack, openstack-horizon, python

Solution

Easiest is to use a Rest client to login and just take the token from the response. I like the Firefox RESTClient add-on but you can use any client you want.

Post a request to the Openstack Identity URL:

POST keystone_ip:port/version/tokens

(e.g. `127.0.0.1:5000/v2.0/tokens`)

with header:

Content-Type: application/json

and body:

{
    "auth": {
        "tenantName": "enter_your_tenantname",
        "passwordCredentials": {
            "username": "enter_your_username",
            "password": "enter_your_password"
        }
    }
}

Note: If you're not sure what is the correct identity (keystone) URL you can log in manually to Horizon and look for a list of API endpoints.

The response body will include something like this:

{
    "token": {
        "issued_at": "2014-02-25T08:34:56.068363",
        "expires": "2014-02-26T08:34:55Z",
        "id": "529e3a0e1c375j498315c71d08134837"
    }
}

Use the returned token id as a header in new rest calls. For example, to get a list of servers use request:

GET compute_endpoint_ip:port/v2/tenant_id/servers

with Headers:

X-Auth-Token: 529e3a0e1c375j498315c71d08134837
Content-Type: application/json

Problem

I want to get the auth token from keystone using horizon and then wants to pass that auth token to my backed code. i don't know how to get this, please help me out. I read many articles and blogs blogs but i am not able to find the answer. Please just point me into the right direction.

Original source