我想知道 CAS 是如何工作的(需要工作流程)。想象:
- 用户在 App1 上使用 CAS 进行身份验证(例如,example.com/app1)。
- 用户转到另一个应用程序 (example.com/app2)。
每个应用程序都必须在页面顶部显示用户名。他们怎么知道的?如果只有一个应用程序,工作流程非常清晰:
- App1:当用户在没有认证的情况下浏览页面时,只显示“登录”链接作为用户名。
- App1:有一刻用户按下登录。
- App1:将用户重定向到 CAS
- CAS:请求用户的登录/通过
- CAS:用户输入登录名/密码
- CAS:将用户重定向回 App1
- App1:从 CAS 获取令牌和用户名(或 ID),并赋予该用户一些权限。完毕。
但是现在:App2(App3 等)如何知道用户已经通过身份验证?他们是否都必须将用户从每个页面重定向到 CAS 只是为了知道用户是否已经通过身份验证并请求他的名字?
在 Spring 的情况下,这将是一个巨大的重定向,而我有一些独立的应用程序,例如:
example.com/App1
example.com/App2
...
example.com/AppN