как настроить ошибку заголовков HTTP входа k8s nginx - PullRequest
0 голосов
/ 14 апреля 2020

в нашем кластере есть настроенный сервер ошибок и служба авторизации

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/use-regex: 'true'
    nginx.ingress.kubernetes.io/auth-url: 'http:/***/auth'

https://kubernetes.github.io/ingress-nginx/user-guide/custom-errors/ https://github.com/kubernetes/ingress-nginx/tree/master/images/custom-error-pages

Из приведенной выше ссылки и журнала, отображаемого на страницах с ошибками серверной службы 401 аутентификации, он имеет только 8 заголовков жесткого кода, как показано ниже.

2020/04/14 03:24:35 запрос информации & {GET /? Access_token = pk1.eyJ1Ijoid2ViZXJ0YW8iLCJhIjoiY2pibTdmaWc2MTZqaDJybzFzcm93bGE2eiJ9.cwSE9DYCYP0dIeY4Hhp6Kg HTTP / 1.0 1 0 карта [Принять: []: шифрование подключения: [*], шифрование, шифрование, шифрование: [*1014*]: шифрование, шифрование, шифрование, шифрование, шифрование, контроль, шифрование, шифрование, контроль, шифрование): шифрование: [*1014*]: шифрование, шифрование Токен: [c7d07b51-5e3d-469d-9ec4-73be2cf5cd26] Пользователь-агент: [PostmanRuntime / 7.24.0] X-код: [401] X-формат: [ / ] X-Ingress-Name: [stati c -api-ingress] Пространство имен X: [по умолчанию] X-Original-Uri: [/ xxxx / -76.9,38.9,15 / 1000x1000@1x?access_token=pk1.eyJ1Ijoid2ViZXJ0YW8iLCJhIjoiY2pibTdmaWc2MTZqaDJybzFzcm93bGE2eiJ9.cwSE9DYCYP0dIeY4Hhp6Kg] Имя X-службы: [stati c - api-svc] X-Service-Port: [80]] {} 0 [] true api.staging.versalinks. net map [] map [] map [] 172.20.0.70:11440 /?access_token=pk1.eyJ1Ijoid2ViZXJ0YW8iLCJhIjoiY2c2BjBZFHDFW0DF eiJ9.cwSE9DYCYP0dIeY4Hhp6Kg 0xc00009e0c0}

Возможно ли добавить добавленный заголовок X-AUTH-INFO из службы аутентификации?

1 Ответ

0 голосов
/ 14 апреля 2020

Вы можете использовать Пользовательские заголовки для nginx входного контроллера через ConfigMap для передачи пользовательского списка заголовков на вышестоящий сервер.

Вы должны определить ConfigMap с вашими пользовательскими заголовками:

apiVersion: v1
data:
  X-Different-Name: "true"
  X-Request-Start: t=${msec}
  X-Using-Nginx-Controller: "true"
kind: ConfigMap
metadata:
  name: custom-headers
  namespace: ingress-nginx

Это определяет ConfigMap в ingress-nginx пространстве имен с именем custom-headers, содержащее несколько пользовательских HTTP-префиксов с префиксом X.

apiVersion: v1
data:
  proxy-set-headers: "ingress-nginx/custom-headers"
kind: ConfigMap
metadata:
  name: nginx-configuration
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx

Это определяет ConfigMap в ingress-nginx пространстве имен с именем nginx-configuration. Это управляет глобальной конфигурацией входного контроллера и уже существует в стандартной установке. Ключ proxy-set-headers настроен для цитирования ранее созданного ingress-nginx/custom-headers ConfigMap.

Входной контроллер nginx будет считывать ingress-nginx/nginx-configuration ConfigMap, находить ключ proxy-set-headers, читать заголовки HTTP из ingress-nginx/custom-headers ConfigMap и включайте эти заголовки HTTP во все запросы, передаваемые из nginx в бэкэнды.

...