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

Openstack Wilma pep代理和keystone-未找到有效的访问令牌,openstack,fiware,Openstack,Fiware,我让wilma将有效请求重定向到orion,但没有消息到达它,因为我总是从wilma那里获得“未找到访问令牌”。在wilma配置文件中输入的帐户是keystone的管理员帐户。 我使用下面的请求请求令牌 curl -i \ > -H "Content-Type: application/json" \ > -d ' > { "auth": { > "identity": { > "methods": ["password"], >

我让wilma将有效请求重定向到orion,但没有消息到达它,因为我总是从wilma那里获得“未找到访问令牌”。在wilma配置文件中输入的帐户是keystone的管理员帐户。 我使用下面的请求请求令牌

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
Keystone报告了同样的情况

"GET /v3/access-tokens/90ecf18114164f98b25668b9a940eb44 HTTP/1.1" 404
为什么我在通过wilma时找不到这个访问令牌,而不是直接请求


编辑:我还尝试请求域范围内的令牌,但收到了相同的错误。

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

  • Wilma返回的错误是在请求头中找不到
    Auth-token
    ,这让我觉得您发送的
    --头“X-Auth-token:”
    不好。确保您的值得到了很好的解析(因为我看到您使用了一个参数)

  • 您从Keystone检索的令牌是一个
    Keystone令牌
    ,不适用于您需要的内容。要访问受保护的资源,您需要使用
    Oauth令牌
    。一开始可能会有点困惑,但如果你仔细想想,一切都是有道理的。检查以获得更好的理解

  • 因此,在这一点上,我假设您已经在Keyrock实例中配置了您的应用程序,并且您能够检索
    客户端\u secret
    客户端\u id
    。现在,您有两种方法检索Oauth令牌,如下所示:

  • 。您有一个简单的示例,只需根据您的需求配置
    config.js

  • ,对于简单的请求,它更容易检索(在我看来)。对于这种情况,我们在bash中有一个简单的脚本。只需确保根据您的要求更换
    请求中的
    客户端ID
    客户端机密
    、主机(或IP)。然后,只需运行:

    sh auth-token.sh <user-email> <password>
    
    sh auth-token.sh
    
  • 然后您应该能够检索令牌。使用该令牌,并且如果资源在Authzforce中得到授权,那么一切都应该正常工作

    最后,如果您喜欢
    docker
    并想尝试一下,我们有一个使用
    docker
    docker compose
    的变通方法,它使用您正在使用的通用启用码。例如,您可以在这里找到的文档以及如何运行它(非常简单)


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

    当您说“我也尝试请求域范围内的令牌”时,表示域范围内的请求是否有效?我得到了相同的错误。编辑和澄清。真棒!!如果您还有任何疑问,请告诉我:)
    sh auth-token.sh <user-email> <password>