Description of problem:
libcurl upstream dropped support for delegating Kerberos tickets. This was applied to EL6 in bug https://bugzilla.redhat.com/show_bug.cgi?id=711454
The IPA project needs to be able to delegate tickets via XML-RPC (we use the xmlrpc-c package which in turn uses libcurl).
This also affects certmonger which uses similar xmlrpc-c/libcurl calls to communicate with IPA.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Install an IPA server
2. On a separate machine run: ipa-client-install using details from step 1
Joining realm failed because of failing XML-RPC request.
This error may be caused by incompatible server/client major versions.
On the Apache server if you set LogLevel debug in nss.conf you'll see that the ticket was not delegated.
I have proposed a solution upstream:
Whoever is going to commit the fix, please just make sure we use the same option name/constant as upstream. Otherwise we would have incompatible API/ABI. Thanks in advance!
I sent improved patch to upstream:
and I'm currently waiting for response.
Upstream requests to take RFC 5896 into consideration:
I have proposed an incremental patch addressing this request:
A new version of the patch reflecting Julien Chaffraix's review comments:
Created attachment 516492 [details]
el6 backport of the upstream patches
Technical note added. If any revisions are required, please edit the "Technical Notes" field
accordingly. All revisions will be proofread by the Engineering Content Services team.
As a solution to a security issue, GSSAPI credential delegation was disabled, which broke the functionality of the applications that were relying on delegation, which was incorrectly enabled by libcurl. To fix this issue, the CURLOPT_GSSAPI_DELEGATION libcurl option has been introduced in order to enable delegation explicitly when applications need it. All applications using GSSAPI credential delegation can now use this new libcurl option to be able to run properly.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.