I am trying to run a code that verifies an Authorization token from the client. I wrote this code inside an function:
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)
But the code fails at rc = kerberos.authGSSServerStep(state, token) (Marked the line in the code) with this error:
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))
Also thrown this error to the screen:
[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
My question is: why do I receive this message? My user that is configures in the Active Directory is marked with the This account supports Kerberos AES 256 bit encryption enabled and the keytab file created with the /crypto AES256-SHA1 enctype.
Why is my server (docker on ubuntu machine- Ubuntu 18.04) is trying to dcrypt this with rc4-hmac enctype? How to I fix it?
Edit Maybe my question should be: who tells me in which enctype should I read the keytab?