2012-05-20 11 views
6

Ho seguito questa guida: http://keystone.openstack.org/api_curl_examples.htmlcome ottenere un token openstack e convalidarlo?

e sembrava che ho ottenuto un gettone valido Ran:

curl -d '{"auth":{"passwordCredentials":{"username": "can", "password": "mypassword"}}}' -H "Content-type: application/json" http://url:35357/v2.0/tokens 

e restituito:

{ 
"access": 
{ 
    "token": 
    { 
     "expires": "2012-05-21T14:35:17Z", 
     "id": "468da447bd1c4821bbc5def0498fd441" 
    }, 
    "serviceCatalog": {}, 
    "user": 
    { 
     "username": "can", 
     "roles_links": [], 
     "id": "bb6d3a09ad0c4924bf20c1a32ccb5781", 
     "roles": [], 
     "name": "can" 
    } 
} 
} 

ma quando sono venuto a prossimi sezioni per convalidare questo token, ho incontrato questo numero magico: X-Auth-Token:999888777666. All'inizio ho pensato che fosse il token che ho ottenuto, ma mi sbagliavo.

Credo di aver perso qualcosa, così ho letto le sezioni relative a documenti di OpenStack (http://keystone.openstack.org/configuration.html e http://docs.openstack.org/api/openstack-compute/programmer/content/), ma ancora nessuna idea di come il numero proviene.

qualcuno potrebbe spiegare a me

  1. qual è il significato di quel numero magico
  2. come ottenere il giusto valore di esso in modo da poter ottenere un token di lavoro per gestire altre parti del OpenStack
+0

È possibile r che equivale ajax non per arricciare ..? –

risposta

1

Il token stesso è in dict["access"]["token"]["id"] che è quella parte che andrà nell'intestazione delle successive richieste HTTP, ovvero

X-Auth-Token: 468da447bd1c4821bbc5def0498fd441 

Il valore 999888777666 proviene dall'esercitazione di esempio del ricciolo e sicuramente non funzionerà.

Per quanto riguarda il valore del token stesso, viene generato in modo casuale dal servizio OpenStack e non deve contenere alcuna informazione utile dal proprio punto di vista.

(A proposito, probabilmente non dovresti incollare i token nei forum poiché sono validi per 24 ore e chiunque abbia una copia del token e l'accesso all'endpoint di elaborazione può utilizzarlo per impersonare te).

+0

Ho detto che non è il token. Ho cercato in questo modo: ricciolo -H "X-Auth-Token: 468da447bd1c4821bbc5def0498fd441" http: // URL: 35357/v2.0/gettoni/468da447bd1c4821bbc5def0498fd441 e preso un 401 non autorizzati –

+0

Hrm - sì l'origine del Il token 999 * non ha molto senso nei documenti. La richiesta di arricciatura sopra dovrebbe funzionare, anche se il tutorial http://keystone.openstack.org/api_curl_examples.html sembra implicare che è necessario connettersi con un account amministratore per accedere alla risorsa/token. Puoi accedere ad altre cose con il tuo token? es. url: 35357/v2.0/tenant –

+0

Sto provando di più ma non buone notizie –

7

Quel numero magico (stringa in realtà) è l'impostazione admin_token nel file keystone.conf. Nella sezione [DEFAULT] in keystone.conf impostato

admin_token = abcd1234 

Se non lo si usa per le azioni di amministratore, vedrete qualcosa di simile

[email protected]:~/devstack$ curl http://localhost:35357/v2.0/tenants 
{"error": {"message": "The request you have made requires authentication.", "code": 401, "title": "Not Authorized"}} 

Se non utilizza, è' ll vedere qualcosa di simile

[email protected]:~/devstack$ curl -H "X-Auth-Token: abcd1234" http://localhost:35357/v2.0/tenants 
{"tenants_links": [], "tenants": [{"enabled": true, "description": null, "name": "demo", "id": "aee8a46babcb4e4286021c8f6ef996cd"}, {"enabled": true, "description": null, "name": "invisible_to_admin", "id": "de17fea45de148ada0a58e998e6c3e73"}, {"enabled": true, "description": null, "name": "admin", "id": "f34b0c8ab30e450489b121fbe723fde5"}, {"enabled": true, "description": null, "name": "service", "id": "fbe3e2e530fd47298cb2cba1b4afa3da"}]} 
+2

Nota che se hai un nome utente valido con un ruolo di amministratore in un titolare, puoi usare quel nome utente e password per recuperare un token temporaneo che consentirà le azioni di amministrazione. –

2

per ottenere l'elenco degli inquilini, nel nostro attuale implementazione, l'autenticazione con credenziali di amministratore e utilizzare il token restituito ottenere l'elenco degli inquilini. L'implementazione funziona senza problemi con il token di autenticazione. Potrebbe funzionare con admin_token ma non ho verificato.

Se vedete gli esempi si fa riferimento, ci sono 2 tipi di endpoint utilizzati

  1. Endpoint che punta a porta 5000 - porta pubblica
  2. Endpoint che punta alla porta 35357 - porta di amministrazione

Negli esempi che stanno colpendo la porta di amministrazione, è necessario specificare l'intestazione "X-Auth-Token" come admin_token (specificato nel file keystone.conf)

Problemi correlati