Selective kdc discovery
Paul B. Henson
henson at acm.org
Thu Oct 29 14:13:47 EDT 2020
So management wants to replicate our core authentication infrastructure
into the cloud so if the campus is down people will still be able to
access cloud services. The components in question consist of a
shibboleth idp which avails of kerberos for authentication and LDAP for
directory services/attributes.
Ideally, I would like on campus services to use the campus instances if
they are available, and failover to the cloud instances if not. And
correspondingly, I would like the cloud services to use the cloud
instances if they are available, and campus ones if not.
For LDAP the idp allows configuration of multiple directory servers,
with failover. So I can easily configure the campus idp to hit campus
ldap first, then failover to the cloud, and vice versa for the cloud idp.
I'm trying to figure out how to handle kerberos. The question is also
complicated in that the idp uses the java Kerberos client, which I don't
think has feature parity with the MIT libraries in terms of kdc discovery.
Using SRV or URI DNS records, it looks like I can configure some number
of kdc's as primary, and other ones as secondary. However, this would
cause both the campus and cloud instances to get the same one first, and
the other one second. Potentially this could be worked around with
separate DNS views, but I don't think that is going to be feasible for
this deployment. I am also not sure if the java kerberos client
understands SRV/URI records and properly splits them based on priority?
In the krb5.conf file, you can specify kdc's statically, but there is no
mechanism for prioritizing them or indicating which ones should be tried
first. You can also specify one or more master_kdc's, but based on the
documentation those are only accessed in the case of a password failure
on one of the regular kdc entries? If, hypothetically, all of the
regular kdc entries timeout, would the master_kdc entries still be used,
or would the request simply fail at that point with an unreachable kdc
error?
Any other suggestions for achieving a separate primary/failover
configuration for two different network locations in a fashion that
would work properly with the Java kerberos client?
Thanks much…
More information about the Kerberos
mailing list