Как получить аутентификацию Kerberos, работающую в k8s - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь пройти аутентификацию через Kerberos в AWX. Я размещаю AWX в Azure Kubernetes Services. KDC, который мы используем, это ldap. Я могу общаться с сервером ldap с помощью ping и через порт 88 с telnet при выполнении из самого контейнера. Я не уверен, что еще я могу сделать, чтобы проверить это, и файлы журнала пусты.

Я добавил файл krb5.conf и файл krb5.keytab в контейнеры Task / Web. Я пробовал с и без keytab. Я попытался изменить кэш на файл, а не на связку ключей.

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ include "awx.fullname" . }}-application-config-krb5
  labels:
    app.kubernetes.io/name: {{ include "awx.name" . }}
    helm.sh/chart: {{ include "awx.chart" . }}
    app.kubernetes.io/instance: {{ .Release.Name }}
    app.kubernetes.io/managed-by: {{ .Release.Service }}
data:
  krb5.conf: |
    # Configuration snippets may be placed in this directory as well
    includedir /etc/krb5.conf.d/

    [logging]
    default = FILE:/var/log/krb5libs.log
    kdc = FILE:/var/log/krb5kdc.log
    admin_server = FILE:/var/log/kadmind.log

    [libdefaults]
    dns_lookup_realm = false
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = true
    rdns = false
    default_realm = MYDOMAIN.COM
    default_ccache_name = KEYRING:persistent:%{uid}

    [realms]
    MYDOMAIN.COM = {
      kdc = ldap.mydomain.com
      admin_server = ldap.mydomain.com
    }

    [domain_realm]
    .mydomain.com = MYDOMAIN.COM
    mydomain.com = MYDOMAIN.COM

Я получаю одну и ту же ошибку независимо от конфигурации, которую я пробую. Любопытно, что я делаю не так. Я могу заставить это работать с рабочей конфигурацией kerberos на виртуальной машине с AWX, работающей локально в докере, однако я не могу заставить ее работать в AKS. Не уверен, является ли это конкретным AKS или Kubernetes в целом.

Ошибка:

kinit: не удается связаться ни с одним KDC для области 'MYDOMAIN.COM' при получении начальные учетные данные

...