2016-07-22 57 views
0

我在包含Keystone和Swift的Fedora 24服务器虚拟机上安装了一台OpenStack Mitaka。我经历了OpenStack安装说明并获得了v3 keystone API的正常工作,但是我正在安装的一些其他软件取决于v2。即使对v3 API的等效请求正常工作,我也无法使用v2 API进行身份验证并获取令牌。这里有两个请求我做:如何在V3和V2 API中制作相同的Openstack Keystone认证请求?

V3:

curl -i -H "Content-Type: application/json" -d ' 
{ "auth": { 
    "identity": { 
     "methods": ["password"], 
     "password": { 
     "user": { 
      "name": "admin", 
      "domain": { "name": "default" }, 
      "password": "PASSWORD" 
     } 
     } 
    } 
    } 
}' http://SERVER:35357/v3/auth/tokens 

V2:

curl -d -H "Content-Type: application/json" 
'{"auth": { 
     "passwordCredentials": { 
      "username": "admin", 
      "password": "PASSWORD" 
     }, 
     "tenantName": "admin" 
    } 
    }' http://SERVER:35357/v2.0/tokens 

的V3请求返回一个令牌,但V2请求失败:

{"error": {"message": "The request you have made requires authentication.", "code": 401, "title": "Unauthorized"}} 

这些API请求是否等同?是否需要更改keystone.conf设置才能使V2 API有效?

回答

0

如果您在默认情况下运行v2 keystone版本,它将在http://SERVER:5000/v2.0上启动,确保您的端口已打开并且v2版本已启用且正在运行。

+0

v2 API肯定已启动并正在运行,并且我已经在5000和35357上尝试了这个请求。如果我更改了请求主体的格式和拼写错误passwordCredentials,它特别抱怨缺少该元素,这只是部分的v2 API AFAIK。 – sew