[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Cross Realm HELP



Buck,

   Thanks for your reply.

   In my particular configuration, there is a realm called "PARENT.EXAMPLE.COM", and two children realms called "CHILD1.EXAMPLE.COM", and "CHILD2.EXAMPLE.COM". Cross realm trusts exist so that if I authenticate into CHILD1, I can traverse to PARENT, and then to CHILD2, where the LDAP directory resides.

   My krb5.conf file is setup correctly because another application can successfully accomplish what I'm after. It logs into CHILD1, traverses realms until it gets to CHILD2, and binds to the LDAP Directory. So from this I'm assuming the krb5.conf and the necessary trusts are setup properly.

   After we know our environment is in working order, what's the code look like? Is there something I pass to my heimdal calls that tell it to authenticate to one realm, but then traverse realms until you get to another realm where the ldap directory is? Or should the OpenLDAP take care of this for me in ldap_sasl_interactive_bind_s()?
   I'm a little confused as to who's responsibility it is to traverse the realms. Do I need to put it in the code myself? Can Heimdal magically take care of this for me? Does the OpenLDAP or Cyrus SASL libraries take care of this for me? Again, any help is greatly appreciated!

   Thanks,

 - Jeremiah
 inlovewithGod@gmail.com

On 9/20/05, Buck Huppmann <buckh@pobox.com > wrote:
> I can also use OpenLDAP and SASL (GSSAPI (Kerberos)) to connect to an LDAP
> directory. I first do the above to authenticate myself with Kerberos, store
> the credentials, and connect to the LDAP directory
> (ldap_sasl_interactive_bind_s()). However, this only works when the user and
> the LDAP directory are in the same realm.
>
> I'm wondering if I'm supposed to first authenticate to the realm where the
> ldap server is before using ldap_sasl_interactive_bind_s()? Do I need to
> pass something in the krb5_get_init_creds_password() to authenticate to
> another realm? Am I missing something else entirely? Any help would be
> greatly appreciated!

you have two options

1. authenticate as a a user in the realm of the LDAP server, as
   you suggest. then the KDC for the LDAP server realm will be able
   to handle everything

2. set up a cross-realm key between the realm you want to get initial
   credentials in and the realm of the LDAP server. see
   http://www.pdc.kth.se/heimdal/heimdal.html#Cross-realm

both of these require that you either have a [realms] krb5.conf entry
for the realm of the ldap server (and any required [domain_realm] con-
figuration) or that the realm and its KDCs are discernible by DNS look-
up (and you have dns_lookup_kdc = true in [libdefaults], if your heim-
dal installation is older). see
http://www.pdc.kth.se/heimdal/heimdal.html#Configuration-file and/or
http://www.pdc.kth.se/heimdal/heimdal.html#Setting-up-DNS if any
of this is news to you