I'm looking for a way to "route" Kerberos requests incoming to a single
IP to different backend depending on the requested realms.
Here with Kerberos, I'm wondering how we can achieve something
equivalent, using a shared IP for multiple Kerberos realms and having
the incoming requests routed to the appropriate backend by some kind of >inspection.
Le 13 mars 2024 |a 15:16, Ken Hornstein <kenh@cmf.nrl.navy.mil> a |-crit :Yes, that's the main option we see so far, but before jumping on the "let write our own proxy" solution I wanted to be sure that we don't miss something like proxy feature in an Kerberos implementation or some kind of cascading scenario.
Here with Kerberos, I'm wondering how we can achieve something
equivalent, using a shared IP for multiple Kerberos realms and having
the incoming requests routed to the appropriate backend by some kind of
inspection.
I think that is certainly _possible_, but I don't believe there is
anything that does that today. You'd have to parse the Kerberos message (which is ASN.1 and there are plenty of things that can handle that)
and extract out the realm of the server principal and route the message appropriately.
One thing that leaps out at me is that by default a lotYes, that's another aspect of the issue, our expectations so far are on support for TCP only clients. Since it's for mobile users that we are looking to have this support, it shouldn't be an issue.
of Kerberos messages default to UDP transport so that might be a bit
trickier to proxy them (but not impossible).
On 13. Mar 2024, at 12:48, Yoann Gini <yoann.gini@gmail.com> wrote:
Which allow us to have end to end TLS communication between our customers and their tenant. Which is mandatory for our mTLS. But without consuming one public IP per tenant to keep cost under control.
Here with Kerberos, I'm wondering how we can achieve something equivalent, using a shared IP for multiple Kerberos realms and having the incoming requests routed to the appropriate backend by some kind of inspection.
One thing that leaps out at me is that by default a lot of Kerberos
messages default to UDP transport so that might be a bit trickier to
proxy them (but not impossible).
Yes, that's another aspect of the issue, our expectations so far are on >support for TCP only clients. Since it's for mobile users that we are
looking to have this support, it shouldn't be an issue.
Le 13 mars 2024 |a 15:44, Marco Rebhan <me@dblsaiko.net> a |-crit :That's an option not reachable so far.
On 13. Mar 2024, at 12:48, Yoann Gini <yoann.gini@gmail.com <mailto:yoann.gini@gmail.com>> wrote:
Which allow us to have end to end TLS communication between our customers and their tenant. Which is mandatory for our mTLS. But without consuming one public IP per tenant to keep cost under control.
Here with Kerberos, I'm wondering how we can achieve something equivalent, using a shared IP for multiple Kerberos realms and having the incoming requests routed to the appropriate backend by some kind of inspection.
Set it up with a publicly routable IPv6 network, with one IP per tenant. YourCOre not going to run out of a /64 anytime soon, so the cost should stay constant.
Le 13 mars 2024 |a 15:52, Ken Hornstein <kenh@cmf.nrl.navy.mil> a |-crit :OK, did you had to support iOS and macOS endpoint on that context? (we are looking for Kerberos support for them, to use with Apple SSO Kerberos features)--- Synchronet 3.21d-Linux NewsLink 1.2
One thing that leaps out at me is that by default a lot of Kerberos
messages default to UDP transport so that might be a bit trickier to
proxy them (but not impossible).
Yes, that's another aspect of the issue, our expectations so far are on
support for TCP only clients. Since it's for mobile users that we are
looking to have this support, it shouldn't be an issue.
I would caution you that I think that is something you're going to have
to grapple with much sooner than you think.
A long time ago we had developed a small Kerberos proxy that forwarded
on Kerberos messages by prepending the source IP address/port to the
UDP message (our KDC at the time was modified to recognize this
and sent the prepended bytes back to the proxy so it could send it to
the correct originator).
A long time ago we had developed a small Kerberos proxy that forwarded
on Kerberos messages by prepending the source IP address/port to the
UDP message (our KDC at the time was modified to recognize this and
sent the prepended bytes back to the proxy so it could send it to the
correct originator).
OK, did you had to support iOS and macOS endpoint on that context?
(we are looking for Kerberos support for them, to use with Apple SSO
Kerberos features)
Looking at Apple documentation I see the support for something I had
never heard of: Kerberos Key Distribution Center Proxy.
Looks like a solution to encapsulate Kerberos requests into an HTTPS.
Any experience on this here?
Le 13 mars 2024 |a 17:21, Ken Hornstein <kenh@cmf.nrl.navy.mil> a |-crit :This is what I have in mind looking at the documentation of kkdcp (reading as exchanging here). Using SNI to select the KDC.
It does occur to me that maybe if you have different KDC hostnames but
the same IP address you could use TLS SNI or hostname routing which
you indicated you already use and maybe that would be simpler? That
presumes the client implementations set the SNI field (I see that it
does send a "Host" header, and it looks like MIT Kerberos does set the
SNI hostname).
--Le 13 mars 2024 |a 17:21, Ken Hornstein <kenh@cmf.nrl.navy.mil> a |-crit :
It does occur to me that maybe if you have different KDC hostnames but
the same IP address you could use TLS SNI or hostname routing which
you indicated you already use and maybe that would be simpler? That presumes the client implementations set the SNI field (I see that it
does send a "Host" header, and it looks like MIT Kerberos does set the
SNI hostname).
This is what I have in mind looking at the documentation of kkdcp (reading as exchanging here). Using SNI to select the KDC.
I will give it a try, it looks like the option I need here.
And yes, all of those complexities would have been avoided by network teams just supporting IPv6 and not blocking random ports for no reasonsrCa
________________________________________________
Kerberos mailing list Kerberos@mit.edu https://mailman.mit.edu/mailman/listinfo/kerberos
Le 13 mars 2024 |a 17:21, Ken Hornstein a |-crit :
It does occur to me that maybe if you have different KDC hostnames but
the same IP address you could use TLS SNI or hostname routing which
you indicated you already use and maybe that would be simpler? That
presumes the client implementations set the SNI field (I see that it
does send a "Host" header, and it looks like MIT Kerberos does set the
SNI hostname).
| Sysop: | Amessyroom |
|---|---|
| Location: | Fayetteville, NC |
| Users: | 64 |
| Nodes: | 6 (0 / 6) |
| Uptime: | 492944:07:16 |
| Calls: | 842 |
| Files: | 1,304 |
| D/L today: |
8 files (19,649K bytes) |
| Messages: | 261,765 |