Just a caution -- do not parse the hostname from the URL, and use
as-is for validation.  This will lead to a simple compromise, where
Mallory simply passes ticket=ST-12345:my.evilcas.com , which will
immediatley validate all tickets as "superduperadmin".  However, a key
could be passed to lookup from a local mapping table.

Just my $0.02,
-Matt


On Thu, Jan 15, 2009 at 4:57 PM, Lucas Rockwell <l...@berkeley.edu> wrote:
> Hello CAS developers,
>
> I have an idea about how to make CAS highly available (HA) without
> doing Service Ticket/Proxy (Granting) Ticket (ST and PT) replication,
> so I would like to propose it to you all and see what you think.
>
> First, let me start off by saying that I think it is still wise to
> replicate TGTs, especially considering replicating TGTs can withstand
> very high latencies (several seconds or more). Actually, the latency
> tolerance for TGTs is such that you could even replicate them in LDAP
> if you wanted to (which does replication very well, and securely).
>
> So, my proposal for "replicating" STs and PTs is as follows: Make each
> CAS server aware of its peers, and use the CAS protocol itself for
> validating tickets. I will try to clarify this with an example:
>
> The simplest scenario is 2 CAS servers -- CAS1 and CAS2 -- (but this
> scales to n CAS servers). Each CAS server has a list of all the CAS
> servers in the cluster (using "cluster" for lack of a better term),
> including itself. When a CAS server (CAS1) receives a ST or PT for
> validation, it simply looks at the ticket to determine where the
> ticket originated (this is done by inspecting the end of the ticket
> value which will have the hostname of the originating CAS server
> appended to it -- just as tickets do now). If the ticket originated
> with itself (CAS1), it handles the validation like normal. If the
> ticket originated with another CAS server (CAS2), the CAS1 server now
> becomes a CAS client and asks CAS2 to do the validation (using the CAS
> protocol), and then CAS1 just passes the response right back to the
> client as if it (CAS1) had done the validation.
>
> That's it. This whole concept could probably be implemented in the
> CentralAuthenticationService class.
>
> Of course, this concept scales to n CAS servers, but I do not know the
> throughput of even doing this with just 2 CAS servers. But this
> certainly makes CAS HA without a lot of extra baggage. The local ST
> and PT ticket registry can be implemented in memcache or even a DB but
> the nice thing about it is that they do not have to be replicated. As
> I said in the beginning, the TGTs could be stored in something like
> LDAP which does replication very well, but it is not fast enough for
> STs and PTs.
>
> Please let me know what you think and/or if you need more clarification.
>
> Thanks.
>
> -lucas
>
> -----------------------
> Lucas Rockwell
> CalNet Team
> l...@berkeley.edu
>
>
>
>
> _______________________________________________
> Yale CAS mailing list
> cas@tp.its.yale.edu
> http://tp.its.yale.edu/mailman/listinfo/cas
>



-- 
m...@forsetti.com
Key ID:D6EEC5B5
_______________________________________________
Yale CAS mailing list
cas@tp.its.yale.edu
http://tp.its.yale.edu/mailman/listinfo/cas

Reply via email to