<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kerberos on Luke Hebert</title><link>https://lukehebert.com/tag/kerberos/</link><description>Recent content in Kerberos on Luke Hebert</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 14 May 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://lukehebert.com/tag/kerberos/index.xml" rel="self" type="application/rss+xml"/><item><title>Basic Kerberos Test Class in Java</title><link>https://lukehebert.com/post/basic-kerberos-test-class-in-java/</link><pubDate>Wed, 14 May 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/basic-kerberos-test-class-in-java/</guid><description>A minimal Java class and JAAS configuration for testing Kerberos authentication in isolation, useful when application-level debugging is too noisy to isolate the problem.</description></item><item><title>Kerberos Code 41: Someone’s Tweaking the Stream!</title><link>https://lukehebert.com/post/kerberos-message-stream-modified-41/</link><pubDate>Fri, 18 Feb 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-message-stream-modified-41/</guid><description>JDK 1.8.0u242 and later introduced Kerberos referral handling per RFC 6806, which can break Active Directory name canonicalization and produce a KRB_AP_ERR_MODIFIED error. This post walks through the two configuration fixes that resolve the issue.</description></item><item><title>The Golden Ticket: Kerberos’ Forbidden Pass</title><link>https://lukehebert.com/post/golden-ticket-attack/</link><pubDate>Mon, 15 Nov 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/golden-ticket-attack/</guid><description>A Golden Ticket attack lets an attacker forge Kerberos tickets and impersonate any user in an Active Directory domain. Learn how the attack works and the concrete steps you can take to defend against it.</description></item><item><title>Resetting AD KRBTGT Password</title><link>https://lukehebert.com/post/resetting-ad-krbtgt-password/</link><pubDate>Fri, 05 Nov 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/resetting-ad-krbtgt-password/</guid><description>A practical guide to resetting the krbtgt account password in Active Directory, including considerations for external trusts and the Microsoft-provided reset script.</description></item><item><title>Kerberos Issue Tracker</title><link>https://lukehebert.com/post/kerberos-issue-tracker/</link><pubDate>Fri, 24 Sep 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-issue-tracker/</guid><description>A quick reference for the MIT Kerberos project issue tracker, where bugs, security advisories, and feature requests for the reference Kerberos implementation are tracked and resolved.</description></item><item><title>Kafka Dump</title><link>https://lukehebert.com/post/kafka-dump/</link><pubDate>Wed, 25 Aug 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kafka-dump/</guid><description>A practical walkthrough for dumping Kafka topic data, including a generic consumer approach and a full Atlas-specific workflow covering JAAS configuration, Kerberos authentication, and log extraction.</description></item><item><title>Dump Kafka Atlas Topic to Review Messages</title><link>https://lukehebert.com/post/dump-kafka-atlas-topic-to-review-messages/</link><pubDate>Fri, 20 Aug 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/dump-kafka-atlas-topic-to-review-messages/</guid><description>A quick walkthrough for dumping the ATLAS_HOOK Kafka topic to inspect Atlas hook messages locally, including Kerberos authentication setup and consumer lag checks.</description></item><item><title>Debug Kerberos Gen Credentials in CM</title><link>https://lukehebert.com/post/debug-kerberos-gen-credentials-in-cm/</link><pubDate>Wed, 10 Feb 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/debug-kerberos-gen-credentials-in-cm/</guid><description>Learn how to enable Kerberos trace logging in Cloudera Manager&amp;rsquo;s credential generation scripts to diagnose authentication failures quickly.</description></item><item><title>Spark Token Debug</title><link>https://lukehebert.com/post/spark-token-debug/</link><pubDate>Thu, 04 Feb 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/spark-token-debug/</guid><description>Enable verbose Kerberos and token logging on Spark driver and executor nodes to capture the diagnostic data you need when authentication is failing. Covers log4j configuration files and the exact spark-submit flags to wire them in.</description></item><item><title>Explain Kerberos Like I'm 5</title><link>https://lukehebert.com/post/explain-kerberos-like-im-5/</link><pubDate>Thu, 10 Dec 2020 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/explain-kerberos-like-im-5/</guid><description>A plain-English walkthrough of how Kerberos authentication works, using a simple analogy to make the ticket-granting process click. Perfect for anyone who has stared at a KDC diagram and felt lost.</description></item><item><title>LDAPS and UnicodePWD</title><link>https://lukehebert.com/post/ldaps-and-unicodepwd/</link><pubDate>Tue, 01 Dec 2020 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ldaps-and-unicodepwd/</guid><description>LDAPS is a hard requirement when setting passwords via unicodePwd on Active Directory. Non-TLS connections are rejected by AD itself, and SASL is not a supported alternative.</description></item><item><title>Common Error Codes for Active Directory Authentication</title><link>https://lukehebert.com/post/common-error-codes-for-active-directory-authentication-acceptsecuritycontext/</link><pubDate>Tue, 24 Nov 2020 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/common-error-codes-for-active-directory-authentication-acceptsecuritycontext/</guid><description>A quick reference for the LDAP error codes returned during Active Directory bind operations, including what each code means and how to interpret the AcceptSecurityContext error message.</description></item><item><title>Cannot Find Key of Appropriate Type, Kerberoasting &amp; Hadoop</title><link>https://lukehebert.com/post/cannot-find-key-of-the-appropriate-type-to-decrypt-ap-rep/</link><pubDate>Tue, 03 Nov 2020 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/cannot-find-key-of-the-appropriate-type-to-decrypt-ap-rep/</guid><description>A troubleshooting guide for the Kerberos error &amp;lsquo;Cannot find key of the appropriate type to decrypt AP REP,&amp;rsquo; covering encryption type mismatches between keytabs and Active Directory, plus practical steps to align AES and RC4 settings.</description></item><item><title>Kerberos Encryption Type By Number (enctype)</title><link>https://lukehebert.com/post/kerberos-encryption-type-by-number-enctype/</link><pubDate>Thu, 07 Sep 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-encryption-type-by-number-enctype/</guid><description>A quick reference for Kerberos enctype numbers and what they map to, so you can stop guessing which cipher a ticket is actually using.</description></item><item><title>HDFS Proxy Users</title><link>https://lukehebert.com/post/hdfs-proxy-users/</link><pubDate>Wed, 06 Sep 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/hdfs-proxy-users/</guid><description>HDFS proxy users let you configure impersonation so specific users can submit jobs or access HDFS on behalf of others. This guide covers the core-site.xml properties, host and group restrictions, and Kerberos considerations for secure clusters.</description></item><item><title>PTR Records &amp; Kerberos</title><link>https://lukehebert.com/post/ptr-records/</link><pubDate>Tue, 05 Sep 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ptr-records/</guid><description>A valid PTR record must resolve to a name that resolves back to the original address. Multiple PTR records for a single address break name resolution and can cause Kerberos ticket verification to fail.</description></item><item><title>The Unspecified Crime of the Failed Checksum</title><link>https://lukehebert.com/post/failure-unspecified-at-gss-api-level-mechanism-level-checksum-failed/</link><pubDate>Thu, 31 Aug 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/failure-unspecified-at-gss-api-level-mechanism-level-checksum-failed/</guid><description>A quick reference for the six most common causes of the Kerberos GSS-API checksum failure error, from wrong passwords to time skew and SPNEGO canonicalization issues.</description></item><item><title>Realm Detection and Pathing in the JSSE (Java)</title><link>https://lukehebert.com/post/crealm-and-srealm-for-java-sun-security-krb5-realm.java-realm-detection-and-pathing/</link><pubDate>Tue, 22 Aug 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/crealm-and-srealm-for-java-sun-security-krb5-realm.java-realm-detection-and-pathing/</guid><description>A look at how Java&amp;rsquo;s built-in Kerberos implementation uses cRealm and sRealm to determine the path between client and service realms, including hierarchical traversal and capaths configuration.</description></item><item><title>"Not That Key!" No, Your Other Key...</title><link>https://lukehebert.com/post/specified-version-of-key-is-not-available-44/</link><pubDate>Mon, 21 Aug 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/specified-version-of-key-is-not-available-44/</guid><description>Kerberos error 44 occurs when the keytab KVNO does not match the KDC database. This guide walks through diagnosing the mismatch and regenerating the keytab to restore authentication.</description></item><item><title>Lost in the Realm: Kerberos Dropped the Map Again</title><link>https://lukehebert.com/post/server-not-found-kerberos/</link><pubDate>Wed, 16 Aug 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/server-not-found-kerberos/</guid><description>A quick troubleshooting guide for the &amp;lsquo;Server not found in Kerberos database&amp;rsquo; error, covering the four most common root causes and how to verify each one.</description></item><item><title>Check Hue Credentials and Flags (Kerberos)</title><link>https://lukehebert.com/post/check-hue-credentials-or-keytab-credentials-and-credential-flags-kerberos/</link><pubDate>Fri, 04 Aug 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-hue-credentials-or-keytab-credentials-and-credential-flags-kerberos/</guid><description>Walk through inspecting a Hue keytab file, verifying its principals with klist, and confirming that the resulting ticket carries the Renewable flag Hue requires for long-running service operations.</description></item><item><title>400 Cannot Find Key of Appropriate Type to Decrypt AP REP</title><link>https://lukehebert.com/post/400-cannot-find-key-of-appropriate-type-to-decrypt-ap-rep/</link><pubDate>Tue, 18 Jul 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/400-cannot-find-key-of-appropriate-type-to-decrypt-ap-rep/</guid><description>A practical troubleshooting guide for the Kerberos AP REP decryption error, covering the most common causes from keytab mismatches to encryption type misconfigurations.</description></item><item><title>Trace Kerberos in the CLI</title><link>https://lukehebert.com/post/trace-kerberos-in-the-cli/</link><pubDate>Thu, 29 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/trace-kerberos-in-the-cli/</guid><description>Kerberos authentication failures can be frustrating to debug. Setting the KRB5_TRACE environment variable gives you detailed library-level logging that pinpoints exactly where the exchange breaks down.</description></item><item><title>Active Directory Error Types: Kerberos Client Credentials Revoked</title><link>https://lukehebert.com/post/active-directory-error-types-ad_mit-client-credentials-revoked/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/active-directory-error-types-ad_mit-client-credentials-revoked/</guid><description>A quick reference for diagnosing Kerberos authentication failures in Active Directory, covering the lockout state machine and the specific error codes (5be, 775, 18) that indicate revoked credentials or a locked account.</description></item><item><title>Alternate KRB5.conf Location</title><link>https://lukehebert.com/post/alternate-krb5.conf-location/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/alternate-krb5.conf-location/</guid><description>Java reads its Kerberos configuration from a fixed set of paths before falling back to the system default. Setting KRB5_CONFIG lets you point a Java application at a custom krb5.conf without touching the OS-level file.</description></item><item><title>Are Unix Users Required for Hadoop</title><link>https://lukehebert.com/post/are-unix-users-required-for-hadoop/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/are-unix-users-required-for-hadoop/</guid><description>Hadoop requires OS-level user accounts on every cluster node regardless of security configuration. This post explains why, covering both secure and simple mode, and addresses whether the requirement can be removed.</description></item><item><title>Compare KVNO in DB and in Keytab (These Should Match)</title><link>https://lukehebert.com/post/compare-knvo-in-db-and-in-keytab-these-should-match/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/compare-knvo-in-db-and-in-keytab-these-should-match/</guid><description>A quick two-step check to confirm the Kerberos key version number in your KDC database matches the value stored in a local keytab file. Mismatched KVNO values are a common cause of authentication failures in Hadoop and other Kerberized services.</description></item><item><title>How to Enable Kerberos Event Logging (Windows)</title><link>https://lukehebert.com/post/how-to-enable-kerberos-event-logging-windows/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/how-to-enable-kerberos-event-logging-windows/</guid><description>Kerberos authentication failures can be tricky to diagnose without detailed logging. This guide walks you through enabling Kerberos event logging on a Windows machine via the registry so you can capture authentication events in the system log.</description></item><item><title>JDK Breakdowns for Web UI and SPNEGO (u92, u91, u40, u45)</title><link>https://lukehebert.com/post/jdk-break-downs-for-web-ui-and-spengo-u92_u91_u40_u45/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/jdk-break-downs-for-web-ui-and-spengo-u92_u91_u40_u45/</guid><description>Specific JDK 1.8.0 builds (u40, u45, u91, u92) are known to break SPNEGO authentication and Hadoop web interfaces. This post documents the affected versions, the symptoms, and the recommended downgrade path.</description></item><item><title>Kerberos CLI Debug Tracing &amp; Hadoop</title><link>https://lukehebert.com/post/kerberos-cli-debug-trace-hadoop/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-cli-debug-trace-hadoop/</guid><description>A quick reference for enabling verbose Kerberos and Hadoop debug output on the command line, so you can see exactly where authentication is failing.</description></item><item><title>Kerberos Cross-Realm Trust</title><link>https://lukehebert.com/post/kerberos-cross-realm-trust/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-cross-realm-trust/</guid><description>Kerberos cross-realm authentication relies entirely on TGS exchanges between KDCs. Understanding the three-step ticket flow makes it easier to troubleshoot trust relationships between domains.</description></item><item><title>Kerberos Debug Mode for the JVM, Spark, and SPNEGO</title><link>https://lukehebert.com/post/kerberos-debug-mode-for-the-jvmsparkspnego/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-debug-mode-for-the-jvmsparkspnego/</guid><description>Enable Kerberos debug logging in a JVM, Spark driver, and Spark executors to troubleshoot SPNEGO and authentication issues. Covers the exact Java system properties, Spark configuration keys, and how to redirect Spark logs to stdout so Kerberos output interleaves with application logs.</description></item><item><title>Kerberos Shortname Mapping (Auth_to_Local)</title><link>https://lukehebert.com/post/kerberos-shortname-mapping-auth-to-local/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-shortname-mapping-auth-to-local/</guid><description>A practical walkthrough of how Hadoop maps Kerberos principals to short names via the auth_to_local property, including rule syntax, acceptance filters, and common troubleshooting patterns.</description></item><item><title>Multiple HTTP Service Principal Names</title><link>https://lukehebert.com/post/multiple-http-principles/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/multiple-http-principles/</guid><description>How to verify and manage HTTP service principal names in Active Directory using ldapsearch and setspn, including a note about Centrify&amp;rsquo;s uppercase requirement.</description></item><item><title>Name Node Trash Check Point Interval &amp; TGTs on Non-HA NN with KMS</title><link>https://lukehebert.com/post/change-nn-trash-check-point-interval-can-correct-tgt-on-nn-non-ha-with-kms/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/change-nn-trash-check-point-interval-can-correct-tgt-on-nn-non-ha-with-kms/</guid><description>Adjusting the NameNode trash checkpoint interval can resolve TGT renewal issues on non-HA NameNodes using KMS. This change is safe and does not affect trash retention.</description></item><item><title>Wrong Number! Taming the Kerberos Identity Crisis</title><link>https://lukehebert.com/post/kerberos-krb-ap-err-not-us-or-bad-tgs-server-name/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-krb-ap-err-not-us-or-bad-tgs-server-name/</guid><description>A practical look at why the MIT krb5 KDC rejects a TGS-REQ with KRB_AP_ERR_NOT_US, including the exact validation logic and the most common root causes behind the error.</description></item></channel></rss>