gpt4 book ai didi

fiware - FIWARE 实验室中对 Cosmos 的 WebHDFS 的 OAuth2 访问

转载 作者:行者123 更新时间:2023-12-04 19:58:25 25 4
gpt4 key购买 nike

我最近看到 FIWARE 实验室对 Cosmos 的 WebHDFS 的访问受到了 OAuth2 的保护。我知道我必须向请求添加 OAuth2 token 才能继续使用 WebHDFS,但是:

  • 我怎样才能得到 token ?
  • 如何将 token 添加到请求中?

  • 如果没有 token ,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

    最佳答案

    是的,现在 WebHDFS 访问受 OAuth2 保护。这是在 FIWARE 中保护 REST API 的通用机制的一部分,它执行身份验证和授权。您可以找到更多详情 here .

    首先,您必须向 Cosmos token 生成器请求 OAuth2 token 。这是在 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"}

    如您所见,有效负载中需要您的 FIWARE Lab 凭据,形式为基于密码的授权类型。

    一旦获得访问 token (在上面的示例中,它是 qjHPUcnW6leYAqr3Xw34DWLQlja0Ix ),只需将其添加到您过去执行的相同 WebHDFS 请求中。使用 X-Auth-Token 添加 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":[...]}}

    如果您使用随机 token 尝试上述请求,服务器将返回 token 无效;那是因为您没有正确验证:
    $ 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

    同样,如果使用有效 token 但尝试访问另一个 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

    重要更新:

    从 2016 年夏季开始, cosmos.lab.fiware.org不再工作了。相反,一对集群, storage.cosmos.lab.fiware.orgcomputing.cosmos.lab.fiware.org已经设置。关于Cosmos的auth server,目前运行在 computing.cosmos.lab.fiware.org , 端口 TCP/13000。

    关于fiware - FIWARE 实验室中对 Cosmos 的 WebHDFS 的 OAuth2 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31187977/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com