Добавление аутентификационного прокси перед kubernetes - PullRequest
0 голосов
/ 16 ноября 2018

Я добавляю прокси перед API kubernetes для аутентификации пользователей (среди прочих действий) с помощью домашней системы аутентификации.

enter image description here

Я изменил свою конфигурацию 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

Или указание поставщика аутентификации, такого как

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 и клиентом, я мог бы использовать некоторыепомогите :)

1 Ответ

0 голосов
/ 17 ноября 2018

Учетные данные токена отправляются только через защищенные соединения TLS.Сервер должен быть https: //...

...