Hi John,
In our architecture, we have a frontend cluster and a backend cluster.
The frontend cluster is positioned in a DMZ and hosts WebSEAL and some publicly accessable endpoints like the LRR endpoints etc.
The backend cluster is a bit more sealed off and hosts services that are only available to components from the frontend server and hosts an EAI application that is allowed to connect to more secure components (DB, AD, LDAP, Webservices, etc).
Your first solution appeals to me (adding an extra RP does not really complicates that much for us, as we have quite more complex stuff going on in our environment :) ), but I'm wondering where to position the second WebSEAL in that case. Hosting it in the backend cluster doesn't really seem the nicest solution because the production traffic to the application would than be routed through the backend cluster.
We might think of creating some sort of third zone specifically for that, but that doesn 't feel great either.
It's becoming a bit of a theoretical discussion, because you are right in pointing out that it is only the kerberos communication, which already brings down the severity of "the issue".
In an ideal world, we could have some kind of "smart proxy" between webseal and the applications that require KCD. That one could receive the identity of the user as well as the realm to authenticate that user in and with that information reach out to some microservice in the backend cluster that will fetch tickets and deliver tokens to that "smart proxy".
That proxy could treat those tokens as opaque values and just inject them in the authorization header. Maybe the microservice could also return the lifetime of the tokens in order for it to know when to request new tokens without having to understand the tokens itself (so it can treat them as opaque values).
It's very much similar to the way we work today where WebSEAL contacts the STS module of TFIM to translate a PAC file to a (set of) kerberos tokens, I guess.
What's your idea on such a setup?
------------------------------
Kristof Goossens
------------------------------
Original Message:
Sent: Fri June 07, 2019 06:11 AM
From: Jon Harry
Subject: KCD thoughts
Hi Kristof,
Although Kerberos tokens can be accepted without a connection to a KDC, you are correct that for generation of tokens a connection to KDC is required.
A few ideas on architecture - to be debated:
- I wonder if 2 tiers of SAM Reverse Proxies could be used. First layer performs authentication and down-streams identity to seond tier (in more protected zone). The second tier of Reverse Proxies have the junctions to Microsoft endpoints and perform the Kerberos SSO. I would worry about making the proxying more complex but could be an answer.
- I'm not that familiar with AD architecture but perhaps a Domain Controller could be put in an isolated segment with connectivity to rest of AD downsteam but only connectivity on Kerberos ports from DMZ. Would make things better?
I know lots of people use this SSO capability so comments on in-use architectures for this from other community members would be very interesting to hear.
Jon.
------------------------------
Jon Harry
Consulting IT Security Specialist
IBM
------------------------------