Ger*_*lle 5 fiware fiware-cosmos
我最近看到FIWARE Lab中对Cosmos的WebHDFS的访问受到了OAuth2的保护.我知道我必须向请求添加OAuth2令牌才能继续使用WebHDFS,但是:
如果没有令牌,API始终会返回:
$ curl -X GET "http://cosmos.lab.fi-ware.org:14000/webhdfs/v1/user/gtorodelvalle?op=liststatus&user.name=gtorodelvalle"
Auth-token not found in request header
Run Code Online (Sandbox Code Playgroud)
是的,现在 WebHDFS 访问受到 OAuth2 的保护。这是 FIWARE 中保护 REST API 的通用机制的一部分,该机制执行身份验证和授权。您可以在这里找到更多详细信息。
首先,您必须向 Cosmos 令牌生成器请求 OAuth2 令牌。这是一个运行在cosmos.lab.fiware.org:13000
. 您可以使用任何 REST 客户端来执行此操作,最简单的方法是使用curl 命令:
$ curl -k -X POST "https://cosmos.lab.fiware.org:13000/cosmos-auth/v1/token" -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=password&username=frb@tid.es&password=xxxxxxxx"
{"access_token": "qjHPUcnW6leYAqr3Xw34DWLQlja0Ix", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "V2Wlk7aFCnElKlW9BOmRzGhBtqgR2z"}
Run Code Online (Sandbox Code Playgroud)
如您所见,有效负载中需要您的 FIWARE Lab 凭据,采用基于密码的授权类型的形式。
获取访问令牌(在上面的示例中是qjHPUcnW6leYAqr3Xw34DWLQlja0Ix
)后,只需将其添加到您过去执行的同一 WebHDFS 请求中即可。使用X-Auth-Token
标头添加令牌:
$ curl -X GET "http://cosmos.lab.fiware.org:14000/webhdfs/v1/user/frb/path/to/the/data?op=liststatus&user.name=frb" -H "X-Auth-Token: qjHPUcnW6leYAqr3Xw34DWLQlja0Ix"
{"FileStatuses":{"FileStatus":[...]}}
Run Code Online (Sandbox Code Playgroud)
如果您使用随机令牌尝试上述请求,服务器将返回令牌无效;那是因为您没有正确进行身份验证:
$ curl -X GET "http://cosmos.lab.fiware.org:14000/webhdfs/v1/user/frb/path/tp/the/data?op=liststatus&user.name=frb" -H "X-Auth-Token: randomtoken93487345"
User token not authorized
Run Code Online (Sandbox Code Playgroud)
同样的方式,如果使用有效的令牌但尝试访问另一个 HDFS 用户空间,您将得到相同的答案;这是因为您无权访问除您拥有的用户空间之外的任何 HDFS 用户空间:
$ curl -X GET "http://cosmos.lab.fiware.org:14000/webhdfs/v1/user/fgalan/path/tp/the/data?op=liststatus&user.name=fgalan" -H "X-Auth-Token: qjHPUcnW6leYAqr3Xw34DWLQlja0Ix"
User token not authorized
Run Code Online (Sandbox Code Playgroud)
重要更新:
从2016年夏天开始,cosmos.lab.fiware.org
就不再工作了。相反,一对集群,storage.cosmos.lab.fiware.org
并且computing.cosmos.lab.fiware.org
已经设置完毕。关于 Cosmos 的身份验证服务器,它当前运行在computing.cosmos.lab.fiware.org
端口 TCP/13000 上。
归档时间: |
|
查看次数: |
767 次 |
最近记录: |