JDK-6631053 : Support canonicalize in Kerberos configuration file
  • Type: Enhancement
  • Component: security-libs
  • Sub-Component: org.ietf.jgss:krb5
  • Affected Version: 6
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2007-11-16
  • Updated: 2019-08-14
  • Resolved: 2019-08-14
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 14
14Resolved
Related Reports
Duplicate :  
Description
A DESCRIPTION OF THE REQUEST :
The canonicalize option of ticket requests can not be set for Kerberos authentication attempts initiated by the JRE (e.g. JNDI).  The method available for setting related flags of the ticket request is through a Kerberos configuration file, so this seems the likely route for resolving this issue.

JUSTIFICATION :
Our particular case involves a JNDI connection to an Active Directory Application Mode LDAP server behind a load-balancer.  A Windows 2000 Server is acting as the domain controller.

In this case, it is impossible to perform Kerberos authentication with Java.  JNDI's SASL/GSSAPI support is hard-wired to request the ticket using the address of the load-balancer, and without the canonicalize option, the KDC cannot return a certificate with the proper principal.  However, an identical ticket request with the canonicalize option set will produce an usable ticket; we have observed this directly with Microsoft's ldp tool.  (We should note that doing this with ldp requires forcing ldp to use GSSAPI, and the method of doing this is non-intuitive.)


EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Canonicalize can be enabled through the Kerberos configuration file.
ACTUAL -
Canonicalize can not be enabled through the Kerberos configuration file.

CUSTOMER SUBMITTED WORKAROUND :
In our case, eliminate the load balancer, and load-balance in software.

In some cases, one could use a different method of authentication, but this is not always practical.

The only other options are to replace nearly the entire JNDI/SASL/GSSAPI/Kerberos stack with another solution (neither practical nor desirable), or modify the JRE to allow setting the canonicalize option (the resulting JRE can't legally be distributed).

Comments
RFC 6806 covers referral for both client and server, as well cross-realm routing, we might consider them as a whole.
19-04-2016