我有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时找不到此访问令牌,而不是直接请求?
编辑:我也尝试过请求域范围的令牌,但收到同样的错误。
答案 0 :(得分:2)
好的,我想我明白了。有两件事需要考虑:
Wilma返回的错误是Auth-token not found in request header
,是什么让我觉得你不能很好地发送--header 'X-Auth-Token: <x-auth-token>'
。确保你的值得到很好的解析(因为我看到你使用了一个参数)。
您从Keystone检索的令牌是keystone token
,并非用于您需要的内容。要访问受保护资源,您需要使用Oauth-token
。它在开始时可能有点混乱,但如果你考虑一下,这一切都是有道理的。检查Open Specification以便更好地理解。
所以,在这一点上,我假设您已经在Keyrock实例中配置了您的APP,并且您能够检索client_secret
和client_id
。现在,您有两种方法可以在Fi-ware-Idm wiki:
Authorization Code Grant。您有一个简单的示例here,只需根据您的要求配置config.js
。
Resource Owner Password Credentials Grant,对于简单的请求更容易检索(在我看来)。对于这种情况,我们在bash here中有一个简单的脚本。只需确保根据您的要求替换CLIENT_ID
中的CLIENT_SECRET
,REQUEST
和主机(或IP)。然后,运行:
sh auth-token.sh <user-email> <password>
然后你应该能够检索令牌。使用该令牌,如果资源在Authzforce中获得授权,一切都应该有效。
最后,如果您进入docker
并想尝试一下,我们会使用docker
和docker-compose
使用您正在使用的通用启动器进行解决方法。例如,您可以在此处找到PEP Wilma的文档以及如何运行它(它非常简单)。
如果您有任何疑问,请告诉我。