2019年8月7日 星期三

透過 dex 取得 kubernetes 認證 (4)

這篇來補充一下前幾篇漏掉的事項。

第一個是 token 過期,要 refresh token 的需求。在取得 id_token 的同時, dex 也會提供一個 refresh 用的 token。這個要分 web 或是 command line 的情況。

如果是 web ,這部分我還沒實作,不過看起來應該也是到取得 token 同樣的網址下,用 resfresh token 去更新 id_token。

如果是 command line,在 kubectl config set-credentials 的參數就需要加上一堆 oidc auth-provider 相關的資訊。官網上有詳細的資訊,這部分我沒有實作,因為覺得這種作法太不合人性了   XD

網路上有很多文章用 dex-k8s-authenticator 來簡化設定 kubectl 的流程,我還沒有試過,可以參考看看。


第二個是要撤銷 token ,也就是 revoke token 的需求。
目前似乎沒有現成簡易的方法可以做到,先保留這項需求。


另外補充一些之前沒提到的訊息。

* dex 有提供一個 endpoint 可以看到一些資訊,例如支援哪些 claims,以前兩篇文章內的例子來說,endpoint 會是 https://dex.example.com:32200/.well-known/openid-configuration

* dex 在 v2.10  後的某一版開始,response_type 支援比較多種的參數,以因應不同的流程。我是從 v2.10 直接跳到 v2.17,在 v2.10 的時候, response_type 只能設定為 "code",前面提到所有 RP 都是以 response_type 為 code 的情況下所完成的流程。新版的 dex 還支援 response_type 為 "id_token" 及 "token" 的選項,這部分要再找資料看流程上的差異為何。

先寫到這,還有一些細節想不起來,才隔一天多而已  orz

沒有留言: