Gssapi + Freeipa + Python. Не удается найти принципала клиента. Но он существует. Зачем? - PullRequest
0 голосов
/ 18 июня 2020

Что я делаю в первую очередь:

>kinit
Default principal: bob@R1.COM

Valid starting       Expires              Service principal
18.06.2020 18:27:11  19.06.2020 18:26:26  postgres/c1.com.ru@R1.COM
18.06.2020 18:27:11  19.06.2020 18:26:26  postgres/c1s.com.com@
18.06.2020 18:26:30  19.06.2020 18:26:26  krbtgt/R1.COM@R1.COM

Хорошо. существует принципал для postgres / c1.com. ru@R1.COM.

И второй:

import gssapi

p_name = 'postgres/c1.com.ru@R1.COM'
name = gssapi.Name(p_name) #the principal for this service
creds = gssapi.Credentials(name=name, usage='initiate')

И я получаю эту ошибку:

Traceback (most recent call last):
  File "gt1.py", line 8, in <module>
    creds = gssapi.Credentials(name=name, usage='initiate')
  File "/usr/lib/python2.7/dist-packages/gssapi/creds.py", line 64, in __new__
    store=store)
  File "/usr/lib/python2.7/dist-packages/gssapi/creds.py", line 137, in acquire
    mechs, usage)
  File "gssapi/raw/creds.pyx", line 158, in gssapi.raw.creds.acquire_cred (gssapi/raw/creds.c:2051)
gssapi.raw.misc.GSSError: Major (851968): Unspecified GSS failure.  Minor code may provide more information, Minor (2529639053): Can't find client principal postgres/cu1s.rostelecom1.ru@ROSTELECOM1.RU in cache collection

Почему это может случиться? Любые идеи? Пожалуйста, мне нужна помощь ...

1 Ответ

0 голосов
/ 20 июня 2020

Вы смешиваете две разные вещи: клиента и целевого принципала. Ваш кеш учетных данных, обозначенный klist, показывает, что принципал клиента в этом ccache равен bob@R1.COM, в то время как вы используете postgres/c1.com.ru@R1.COM в качестве принципала клиента.

Вам нужно либо: - инициализировать ccache с ключом для postgres/c1.com.ru сначала (скорее всего, с помощью некоторой keytab) - используйте keytab при инициализации учетных данных в вашем приложении Python.

Для последнего вам необходимо передать ссылку на хранилище кредитов. Что-то вроде этого вспомогательного кода в FreeIPA: https://pagure.io/freeipa/blob/master/f/ipalib/install/kinit.py#_43

...