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.htmlhttp://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 回答