We are currently using CAS 3 for a traditional web application, and we are
moving towards a more modern architecture with a single page application
and rest services. My first question would be if the CAS protocol is still
the right choice for us. I don't have experience with development using CAS
so far, but I tried to gather information about it.
Looking at the CAS protocol at
https://apereo.github.io/cas/4.2.x/protocol/CAS-Protocol.htmlit seems that the normal web flow is not appropriate anymore for our
application. I read that CAS 4 contains a REST service for requesting TGTs and
STs. So I had the following simple solution in mind for our application.
The client (browser) would initially request a TGT from the CAS server and
store this. Each time when the client needs to call one of our REST services,
it would request a ST from the CAS server and call our service with the ST.
The application service would verify the ST with the CAS server before
executing the method. The downside of this solution is that 2 additional remote
calls need to be made for each app service call.
Documentation seems to point towards Proxy Granting Tickets, such as in the
Spring Security documentation
http://docs.spring.io/spring-security/site/docs/4.1.0.RELEASE/reference/htmlsingle/#cas-pt-clientBut I can't find a conceptual explanation why I need it and how it works.
When I look at the CAS protocol documentation for proxy's it just seems to
add even more overhead compared to my solution and we would need a proxy web
application. that we need to call instead of the actual app service.
https://apereo.github.io/cas/4.2.x/protocol/CAS-Protocol.htmlThanks for any help you can provide me.