【问题标题】:How to get OAuth token from CloudFoundry如何从 CloudFoundry 获取 OAuth 令牌
【发布时间】:2015-01-16 13:52:10
【问题描述】:

我想使用 curl 从云代工厂获取数据,但我无法进行身份验证(针对 CF 的 oauth)。拜托,有人可以指点我并举例说明如何获得oauth令牌吗?我想使用登录名和密码。

谢谢

【问题讨论】:

    标签: oauth-2.0 cloud-foundry


    【解决方案1】:

    这并不完全符合您的要求,但如果安装了最近的 cf cli,您可以正常登录,然后使用 cf curl 命令运行原始请求。

    例如

    $ cf login (or cf auth for non-interactive login)
    $ cf curl /v2/spaces/c4e73f65-4dbc-47dc-9d21-e8c566c40587/summary
    

    要使用实际的 curl,再次使用 cf cli,检索不记名令牌:

    $ cf oauth-token
    

    然后执行带有授权标头的 curl 命令:

    $ curl --header 'Authorization: bearer ...' https://api.example.com/v2/spaces/c4e73f65-4dbc-47dc-9d21-e8c566c40587/summary
    

    【讨论】:

    • 非常感谢!它现在有帮助。
    • Hmm ... 得到了令牌,但是 curl 返回:{"code":10002,"description":"Authentication error","error_code":"CF-NotAuthenticated"};我用过你的 curl 例子。
    • 确保在 Authorization 标头之后拥有以 bearer 开头的整个令牌,并且它不会以某种方式被修改。还要检查您是否使用现代 cf cli github.com/cloudfoundry/cli/releases
    【解决方案2】:

    试试这个。我在 Cloud Foundry 文档中找到了它:https://github.com/cloudfoundry/uaa/blob/master/docs/UAA-APIs.rst#oauth2-token-endpoint

    curl -v -XPOST -H"Application/json" -u "cf:" --data "username=<username>&password=<password>&client_id=cf&grant_type=password&response_type=token" https://login.run.pivotal.io/oauth/token
    

    【讨论】:

    • 请注意,登录 api 通常来自与 api 不同的子域。我们在内部运行 cf,并拥有 login.cf.ourcompany.com 和 api.cf.ourcompany.com
    • 谢谢,client_idresponse_type 可以跳过。
    【解决方案3】:

    如果您已经使用cf 登录,您会发现授权令牌存储在 ~/.cf/config.json 中的“AccessToken”键下。您可以轻松地将其拉出。

    如果您需要在不使用cf CLI 的情况下自己获取授权持有者令牌,您可以按照https://www.ng.bluemix.net/docs/#services/AppUserRegistry/index.html#appuserregistry 的说明进行操作。您也可以export CF_TRACE=true,然后自己执行cf login,然后观看 CLI 与服务器进行的 REST 舞蹈以获取授权令牌。

    【讨论】:

      【解决方案4】:

      用户名、密码应为 base 64 编码。 Url 应该是您的 pcf 服务的登录端点。

      curl https://login.<url>.com/oauth/token -X POST --user "cf:"  -H 'Content-Type: application/x-www-form-urlencoded' -d "username=<user>&password=<password>&client_id=cf&grant_type=password&response_type=token"
      

      【讨论】:

        猜你喜欢
        • 2020-06-24
        • 2018-09-05
        • 1970-01-01
        • 2021-09-07
        • 1970-01-01
        • 2016-12-13
        • 2019-03-13
        • 2019-10-17
        • 2019-05-02
        相关资源
        最近更新 更多