簡體   English   中英

在kubernetes之前添加身份驗證代理

[英]Adding authentication proxy in front of kubernetes

我在kubernetes API之前添加了一個代理,以便使用自制的身份驗證系統對用戶進行身份驗證(以及其他操作)。

在此處輸入圖片說明

我已經修改了kube配置,使kubectl達到了代理。 代理具有自己的kubeconfig以及有效的證書頒發機構數據,因此我不需要任何憑證。

到目前為止,一切正常,這是我在本地需要的最低配置:

clusters:
- cluster:
    server: http://localhost:8080
  name: proxy
contexts:
- context:
    cluster: proxy
  name: proxy
current-context: proxy

現在,身份驗證應該基於令牌,我希望我能夠將其作為kubectl請求標頭的一部分進行傳遞。

我嘗試了多種配置,在kubeconfig中添加了一個帶有令牌的用戶,例如

clusters:
- cluster:
    server: http://localhost:8080
  name: proxy

contexts:
- context:
    cluster: proxy
    user: robin
  name: proxy
current-context: proxy

users:
- name: robin
  user:
    token: my-token

或指定一個auth-provider,例如

clusters:
- cluster:
    server: http://localhost:8080
  name: proxy

contexts:
- context:
    cluster: proxy
    user: robin
  name: proxy
current-context: proxy

users:
- name: robin
  user:
    auth-provider:
      config:
        access-token: my-token

我什至嘗試不使用任何用戶,只是將令牌添加為首選項的一部分,因為我想要的只是在標題中包含令牌

clusters:
- cluster:
    server: http://localhost:8080
  name: proxy

contexts:
- context:
    cluster: proxy
  name: proxy
current-context: proxy

preferences:
  token: my-token

但是我從來沒有看到我的令牌作為代理端的請求標頭的一部分。 傾銷請求,我得到的只是:

GET /api/v1/namespaces/default/pods?limit=500 HTTP/1.1
Host: localhost:8080
Accept: application/json;as=Table;v=v1beta1;g=meta.k8s.io, application/json
Accept-Encoding: gzip
User-Agent: kubectl/v1.11.0 (darwin/amd64) kubernetes/91e7b4f

我顯然在這里丟失了一些東西,kubectl如何不能在其標頭中傳遞用戶信息? 假設我沒有代理,“ kubectl-> kubernetes”令牌身份驗證如何工作?

如果有人在kubernetes和客戶端之間添加這種身份驗證層有任何經驗,我可以使用一些幫助:)

令牌憑證僅通過TLS保護的連接發送。 服務器必須為https:// ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM