I am trying to use mod_auth_kerb 5.3, with Apache 2.2.8 on Solaris 10
using the Solaris provided Kerberos. I am interested in getting the
delegated credentials stored.

(Although Solaris 10 comes with a mod_auth_gss, it does not support
the storing of the delegated credentials, and does not support Kerberos
with passwords, and thus I am using mod_auth_kerb.)

I have been able to get this to some what work but the Solaris 10
Kerberos is missing some features for storing the delegated credential.

Solaris Kerberos has a number of problems:

   (1) The gss_store_cred will only store in to the default cred,
       but will look for the KRB5CCNAME environment variable. Setting
       the environment from within an Apache authn module for use
       by the module is tricky. I have not worked out all the details,
       and it may only work with a MPM prefork type server.

   (2) The Solaris SPNEGO mechanism does not support calling
       gss_store_cred even though it returned a delegated cred from a
       sub mechanism. I had to resort to using something similar to
       __gss_get_mechanism_cred which is not exported from libgss.so,
       to get the Kerberos delegated_cred out of the union_cred_id_t
       delegated_cred form SPNEGO then calling gss_store_cred.

   (3) Trying to avoid using gss_store_cred, and using gss_krb5_copy_ccache
       which is what mod_auth_kerb does with other Kerberos implementations
       also  did not work. It produced a validation error.
       gss major_status=0x030a0000 It appears the Solaris Kerberos delegated
       credential is not a full credential. I also had to use dlopen and
       dlsym to get at the entry for gss_krb5_copy_ccache.

The KDC is Windows AD 2003, and the OK_TO_DELEGATE bit is set on the
service account. I can get IE 7 on XP, Solaris 10 provided Mozilla 1.7,
and FireFox 2.0.0.14 on Ubuntu to send delegated credentials and get them
stored. FireFox 2.0.0.14 on Solaris 10 will authenticate but for some reason
does not delegate.


What I am hopping will come of this, is Sun will fix (1) and provide
a way to pass in the ccache or a cache name, and will fix (2) and have SPNEGO
call the sub mechanism's gss_store_cred, or at least expose 
gss_get_mechanism_cred.

I have been an advocate for using the vendor's version of Kerberos when 
available,
and Sun has been responsive in the past by exposing the Kerberos API in Solaris 
10.













-- 

  Douglas E. Engert  <DEEngert at anl.gov>
  Argonne National Laboratory
  9700 South Cass Avenue
  Argonne, Illinois  60439
  (630) 252-5444

Reply via email to