7

私はこのガイドに従いました:http://keystone.openstack.org/api_curl_examples.html

実行して有効なトークンを取得したようです。

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

そしてそれは戻った:

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

しかし、このトークンを検証するために次のいくつかのセクションに来たとき、私はこのマジックナンバーに遭遇しました:X-Auth-Token:999888777666最初は自分が手に入れたトークンだと思っていましたが、間違っていました。

私は何かを見逃したかもしれないと思うので、openstackドキュメントの関連セクションを読みました(http://keystone.openstack.org/configuration.htmlおよびhttp://docs.openstack.org/api/openstack-compute/programmer/content /)、しかし、番号がどのように由来するのかはまだわかりません。

誰かが私に説明できますか

  1. そのマジックナンバーの意味は何ですか
  2. openstackの他の部分を管理するための作業トークンを取得できるように、その適切な値を取得する方法
4

3 に答える 3

9

そのマジック ナンバー (実際には文字列) は、keystone.conf ファイルの admin_token 設定です。keystone.conf セットの [DEFAULT] セクションの下

admin_token = abcd1234

管理アクションに使用しない場合は、次のように表示されます

ubuntu@i-000004bc:~/devstack$ curl http://localhost:35357/v2.0/tenants
{"error": {"message": "The request you have made requires authentication.", "code": 401, "title": "Not Authorized"}}

使用すると、次のようなものが表示されます

ubuntu@i-000004bc:~/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"}]}
于 2012-05-28T20:20:29.493 に答える
2

テナントのリストを取得するには、現在の実装では、管理者の資格情報で認証し、返されたトークンを使用してテナントのリストを取得します。実装は、認証トークンでスムーズに機能します。admin_token で動作する可能性がありますが、確認していません。

参照している例を見ると、2 種類のエンドポイントが使用されています。

  1. ポート 5000 を指すエンドポイント - パブリック ポート
  2. ポート 35357 を指すエンドポイント - 管理ポート

管理ポートにヒットしている例では、「X-Auth-Token」ヘッダーを admin_token (keystone.conf ファイルで指定) として指定する必要があります。

于 2012-10-26T06:32:30.850 に答える
1

トークン自体は、dict["access"]["token"]["id"]後続の HTTP 要求のヘッダーに入る部分です。つまり、

X-Auth-Token: 468da447bd1c4821bbc5def0498fd441

値 999888777666 は curl サンプル チュートリアルからのものであり、確実に機能しません。

トークン自体の値については、OpenStack サービスによってランダムに生成され、ユーザーの観点から有用な情報を含むべきではありません。

(ところで、トークンは 24 時間有効であり、トークンのコピーとコンピューティング エンドポイントへのアクセス権を持っている人は誰でもそれを使用してあなたになりすますことができるため、おそらくトークンをフォーラムに貼り付けるべきではありません)。

于 2012-05-20T21:27:05.727 に答える