Я пытаюсь запустить код, который проверяет токен авторизации от клиента.
Я написал этот код внутри функции:
host = 'site_address'
state = None
service_name = f'HTTP@{host}'
try:
rc, state = kerberos.authGSSServerInit(service_name)
if rc != kerberos.AUTH_GSS_COMPLETE:
return None
rc = kerberos.authGSSServerStep(state, token) <<<<< !!! ERROR !!!
if rc == kerberos.AUTH_GSS_COMPLETE:
self.kerberos_token = kerberos.authGSSServerResponse(state)
self.kerberos_user = kerberos.authGSSServerUserName(state)
return rc
elif rc == kerberos.AUTH_GSS_CONTINUE:
return kerberos.AUTH_GSS_CONTINUE
else:
return None
except kerberos.GSSError as error:
LOGGER.error('Failed to perform the token verification due to %s', error)
return None
finally:
if state:
kerberos.authGSSServerClean(state)
Но код завершается с ошибкой на rc = kerberos.authGSSServerStep(state, token)
(помечена строка в коде) с этой ошибкой:
GSSError: (('Unspecified GSS failure. Minor code may provide more information', 851968), ('Request ticket server HTTP/<site_address>@<realm_name> kvno 4 found in keytab but not with enctype rc4-hmac', 100005))
Также выкинул эту ошибку на экран:
[3302] 1547638447.877515: Failed to decrypt AP-REQ ticket: -1765328340/Request ticket server HTTP/base.testing.gc@TESTING.GC kvno 4 found in keytab but not with enctype rc4-hmac
Мой вопрос: почему я получаю это сообщение? Мой пользователь, который настраивается в Active Directory, помечен включенным This account supports Kerberos AES 256 bit encryption
, а файл keytab
создан с помощью /crypto AES256-SHA1
enctype.
Почему мой сервер (докер на машине с Ubuntu - Ubuntu 18.04
) пытается расшифровать это с помощью rc4-hmac
enctype? Как это исправить?
Редактировать Может быть, мой вопрос должен звучать так: кто мне скажет, в каком enctype
мне прочитать keytab
?