gpt4 book ai didi

oauth - 如何使用 rest api 调用获取 Openshift session token

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

作为自动化测试套件的一部分,我必须使用 OpenShift 的 REST API 来发送命令并获取 OpenShift 的状态。要对这些 API 调用进行身份验证,我需要在每个调用中嵌入一个授权 token 。

目前,我通过在安装了 OpenShift 的机器上使用 ssh 执行以下命令来获取此 token :
oc login --username=<uname> --password=<password>
oc whoami --show-token

我想停止使用 oc 完全工具并使用对 API 的 HTTP 调用获取此 token ,但我真的无法找到解释如何使用它的文档。如果我使用选项 --loglevel=10调用 oc 命令时,我可以看到 oc 发出的 HTTP 调用登录时,但我很难从这些日志中对过程进行逆向工程。

从理论上讲,这不是 OpenShift 特有的,而是 OAuth 协议(protocol)特有的,我找到了一些文档,如发布的 here但是如果没有具体的例子,我仍然觉得很难实现。

如果这有帮助,我正在使用 ruby​​(不是 rails)开发这个工具。

附言我知道通常对于这种类型的工作应该使用服务帐户 token ,但由于这是一个测试环境,OpenShift 安装会经常被删除并重新安装。这将迫使我每次使用 oc 命令行工具重新创建服务帐户,并再次阻止我使该过程自动化。

最佳答案

我在 this 中找到了答案GitHub 问题。

令人惊讶的是,一个 curl 命令就足以获取 token :

curl -u joe:password -kv -H "X-CSRF-Token: xxx" 'https://master.cluster.local:8443/oauth/authorize?client_id=openshift-challenging-client&response_type=token'

响应将是一个尝试重定向到另一个 URL 的 HTTP 302。重定向 URL 将包含 token ,例如:
Location: https://master.cluster.local:8443/oauth/token/display#access_token=VO4dAgNGLnX5MGYu_wXau8au2Rw0QAqnwq8AtrLkMfU&expires_in=86400&token_type=bearer

关于oauth - 如何使用 rest api 调用获取 Openshift session token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49501133/

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