code: def get_kerberos_ticket(username, password):
          
  
          cache = "/tmp/ion-%s" % uuid.uuid4()
  
          logger.debug("Setting KRB5CCNAME to 'FILE:{}'".format(cache))
          os.environ["KRB5CCNAME"] = "FILE:" + cache
  
          try:
              realm = settings.CSL_REALM
              kinit = pexpect.spawnu("/usr/bin/kinit {}@{}".format(username, realm), timeout=settings.KINIT_TIMEOUT)
              kinit.expect(":")
              kinit.sendline(password)
              returned = kinit.expect([pexpect.EOF, "password:"])
              if returned == 1:
                  logger.debug("Password for {}@{} expired, needs reset".format(username, realm))
                  return "reset"
              kinit.close()
              exitstatus = kinit.exitstatus
          except pexpect.TIMEOUT:
              KerberosAuthenticationBackend.kinit_timeout_handle(username, realm)
              exitstatus = 1
  
          if exitstatus != 0:
              try:
                  realm = settings.AD_REALM
                  kinit = pexpect.spawnu("/usr/bin/kinit {}@{}".format(username, realm), timeout=settings.KINIT_TIMEOUT)
                  kinit.expect(":")
                  kinit.sendline(password)
                  returned = kinit.expect([pexpect.EOF, "password:"])
                  if returned == 1:
                      return False
                  kinit.close()
                  exitstatus = kinit.exitstatus
              except pexpect.TIMEOUT:
                  KerberosAuthenticationBackend.kinit_timeout_handle(username, realm)
                  exitstatus = 1
  
          if "KRB5CCNAME" in os.environ:
              subprocess.check_call(['kdestroy', '-c', os.environ["KRB5CCNAME"]])
              del os.environ["KRB5CCNAME"]
  
          if exitstatus == 0:
              logger.debug("Kerberos authorized {}@{}".format(username, realm))
              return True
          else:
              logger.debug("Kerberos failed to authorize {}".format(username))
              return False
docs: Attempts to create a Kerberos ticket for a user.
  
          Args:
              username
                  The username.
              password
                  The password.
  
          Returns:
              Boolean indicating success or failure of ticket creation