如何在OpenShift中续期授权令牌?实现无需每日重复登录
OpenShift 授权令牌续期与刷新问题解答
令牌能否续期?
OpenShift里通过常规oc login生成的短期授权令牌,没法直接续期——这类令牌的过期时间是生成时就固定好的,没有直接延长有效期的操作。
能否用旧令牌请求新令牌?
可以,在旧令牌过期前,完全能通过它获取新的授权令牌,步骤如下:
- 先获取当前有效的旧令牌:
oc whoami -t - 调用OpenShift OAuth接口刷新令牌,命令示例:
curl -X POST \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=refresh_token&refresh_token=<替换为旧令牌>&client_id=openshift-challenging-client" \ https://<替换为你的OpenShift API地址>/oauth/token - 执行后会返回包含新访问令牌和新刷新令牌的JSON结果,新令牌的有效期会重新计算。
- 注意:只有当你的账号对应的OAuth客户端支持
refresh_token授权类型时才能这么操作,默认的openshift-challenging-client是支持的。
额外方案:长期有效令牌
如果不想频繁处理令牌过期,可以创建服务账号令牌,这类令牌有效期更长,甚至能配置为永久有效:
- 创建服务账号:
oc create sa <自定义服务账号名> - 给服务账号绑定所需权限:
oc policy add-role-to-user <所需角色> system:serviceaccount:<你的项目名>:<服务账号名> - 获取服务账号令牌:
oc sa get-token <服务账号名>
内容的提问来源于stack exchange,提问作者Krist van Besien
相关产品推荐
相关产品推荐

