我的公司已使用 ForgeRock 实施 SSO。我们已经集成了两个应用程序(比如 app1 和 app2)登录,并且应用程序的数量将会增长。关于预期工作的查询:
登录行为:
- 用户登录app1并开始在其中做某事,
- 打开新选项卡/窗口点击 URL app2 url。
所以现在他应该直接进入 app2 的主页,而不是再次要求app2的登录凭据。对?但是对于这种情况,如何点击 app2 会将用户登录到app1的信息传递回 app2 ?是通过浏览器的 cookie 读取还是该系统/计算机的登录用户?如果是,我们如何读取登录用户,如果应用程序外部暴露给互联网用户怎么办?网民可以上网吗?在这种情况下,阅读登录用户可能没有意义,并且我们的一些应用程序暴露在互联网上。
注销行为:
如果用户完成了他在app1上的工作并单击了注销,但正在他在 app2 中的工作(例如,表单提交或任何多步骤活动)中将他从 app2 中注销,那么对他来说可能是不公平的放开他迄今为止所做的一切。但这就是预期的工作方式吗?
从一个应用程序中注销用户应该将他从与相同 SSO 集成的所有应用程序中注销吗?如果是这样,那就意味着不要在应用程序端使会话无效,还要向 SSO 服务器发送注销请求。但这也意味着所有应用程序都需要检查用户是否已注销的每个请求?我觉得这要求太高了。对于我的已登录用户应用程序的每个请求,我还需要检查他是否已退出 SSO?它应该如何工作?