Wilma pep代理和keystone - 找不到有效的访问令牌

时间:2015-08-20 09:28:19

标签: openstack fiware

我有wilma将有效请求重定向到orion但没有消息到达它,因为我总是得到"访问令牌未找到"来自威尔玛。在wilma配置文件中输入的帐户是keystone的管理员帐户。 从openStack API docs我使用以下请求请求令牌。

curl -i \
>   -H "Content-Type: application/json" \
>   -d '
> { "auth": {
>     "identity": {
>       "methods": ["password"],
>       "password": {
>         "user": {
>           "name": "userAdmin",
>           "domain": { "id": "default" },
>           "password": "pw"
>         }
>       }
>     }
>   }
> }' \
>   http://130.206.115.xxx:5000/v3/auth/tokens ; echo

我认为我得到了一个有效的令牌,因为使用curl和x-auth-token直接请求keystone工作正常。

然后我尝试从我的电脑上卷曲

curl --header "X-Auth-Token:$TOKEN" <ipOfWilma>:80/v2/entities

得到答案:&#34;用户令牌未经授权&#34;。 威尔玛报告控制台

[TOKEN] Checking token with IDM...
User access-token not authorized
Auth-token not found in request header

Keystone报告相同的

"GET /v3/access-tokens/90ecf18114164f98b25668b9a940eb44 HTTP/1.1" 404

为什么我在通过wilma时找不到此访问令牌,而不是直接请求?

编辑:我也尝试过请求域范围的令牌,但收到同样的错误。

1 个答案:

答案 0 :(得分:2)

好的,我想我明白了。有两件事需要考虑:

  1. Wilma返回的错误是Auth-token not found in request header,是什么让我觉得你不能很好地发送--header 'X-Auth-Token: <x-auth-token>'。确保你的值得到很好的解析(因为我看到你使用了一个参数)。

  2. 您从Keystone检索的令牌是keystone token,并非用于您需要的内容。要访问受保护资源,您需要使用Oauth-token。它在开始时可能有点混乱,但如果你考虑一下,这一切都是有道理的。检查Open Specification以便更好地理解。

  3. 所以,在这一点上,我假设您已经在Keyrock实例中配置了您的APP,并且您能够检索client_secretclient_id。现在,您有两种方法可以在Fi-ware-Idm wiki

    中检索Oauth Token
    1. Authorization Code Grant。您有一个简单的示例here,只需根据您的要求配置config.js

    2. Resource Owner Password Credentials Grant,对于简单的请求更容易检索(在我看来)。对于这种情况,我们在bash here中有一个简单的脚本。只需确保根据您的要求替换CLIENT_ID中的CLIENT_SECRETREQUEST和主机(或IP)。然后,运行:

      sh auth-token.sh <user-email> <password>
      
    3. 然后你应该能够检索令牌。使用该令牌,如果资源在Authzforce中获得授权,一切都应该有效。

      最后,如果您进入docker并想尝试一下,我们会使用dockerdocker-compose使用您正在使用的通用启动器进行解决方法。例如,您可以在此处找到PEP Wilma的文档以及如何运行它(它非常简单)。

      如果您有任何疑问,请告诉我。