代码之家  ›  专栏  ›  技术社区  ›  jccampos

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

  •  1
  • jccampos  · 技术社区  · 9 年前

    我有wilma将有效请求重定向到orion,但没有消息到达它,因为我总是从wilma获得“未找到访问令牌”。在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
    

    并得到答案:“用户令牌未授权”。 Wilma在控制台上报告

    [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 回复  |  直到 9 年前
        1
  •  2
  •   albertinisg    9 年前

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

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

    2. 从Keystone检索的令牌是 keystone token ,而不是为了满足您的需要。要访问受保护的资源,您需要使用 Oauth-token 。一开始可能会有点困惑,但如果你仔细想想,这一切都是有道理的。检查 Open Specification 以便更好地理解。

    因此,在这一点上,我将假设您已经在Keyrock实例中配置了您的应用程序,并且您能够检索 client_secret client_id 。现在您有两种方法来检索Oauth令牌 Fi-ware-Idm wiki :

    1. Authorization Code Grant 你有一个简单的例子 here ,只需配置 config.js 根据您的要求。

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

      sh auth-token.sh <user-email> <password>
      

    然后,您应该能够检索令牌。有了这个令牌,如果资源在Authzforce中得到授权,一切都应该正常。

    最后,如果你 docker 我们有一个变通方法,使用 码头装卸工 docker-compose 使用您正在使用的Generic Enablers。例如,您可以在此处找到 PEP Wilma 以及如何运行它(非常简单)。

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