使用REST API调用的Openshift 4.x会话令牌检索

问题描述

我有一个用例,需要检索4.x openshift会话令牌。对于3.11端点,此shell命令可以正常工作:

export TOKEN=$(curl -u user1:test@123 -kI 'https://myose01:8443/oauth/authorize?clientid=openshift-challenging-client&response_type=token' | grep -oP "access_token=\K[^&]*")

但是,Openshift 4.4似乎具有不同的端点,并且在再现相同结果时遇到了麻烦。有人知道4.4等效吗?

不能使用openshift cli

解决方法

首先使用此命令获取端点:

oc get --raw '/.well-known/oauth-authorization-server'

您正在寻找:authorization_endpoint

然后将此标题添加到您的请求中:

-H "X-CSRF-Token: 100"

所以如果你运行: curl -u user1:test@123 'https://authorization_endpoint_URL/oauth/authorize?clientid=openshift-challenging-client&response_type=token' -kI -H "X-CSRF-Token: 100" | grep -oP "access_token=\K[^&]*"

你会得到你的令牌。