概述
openshift API的调用机制遵循OAuth 2.0机制,在调用API进行操作前需要先获取access token,然后拿着这个token再去调用相应的API。
open shift中提供了两种形式的token,一个是session token ,一个是service account token.前者有效期24小时,后者长期有效,但是后者是属于某一 namespace,而且能调用的API可能比较局限,本文两种方法都会介绍。
获取token的几种方法
Authorization Code Grant
此方法需要先向/oauth/authorize发送一个请求获取一个Authorization Code,
然后再拿着这个Authorization Code往/oauth/token发送请求获取access token。
这个方法比较麻烦,不建议使用。
Resource Owner Password Credentials Grant
Client Credentials Grant
此方法需要客户端有特别的认证。
Extension Grants
Implicit Grant
这个方法是常用的,如果你想调用openshift API,建议采用此方法
使用Session Token调用API
使用的是Implicit Grant方法
使用curl命令获取session token
curl -u username:password -kv -H "X-CSRF-Token: 1" 'https://example.test.com:8443/oauth/authorize?client_id=openshift-challenging-client&response_type=token'
username是用户名,password是密码
成功返回的信息如下:
..............
HTTP/2 302
..................
location: https://example.test.com:8443/oauth/token/implicit#access_token=asr