使用Angular和NGINX进行Shibboleth身份验证

问题描述 投票:0回答:1

我有一个由Shibboleth验证的Angular应用程序。当用户导航到该页面时,NGINX会将其重定向到Shibboleth登录。访问应用程序由NGINX管理。如果用户已登录并进入应用程序,他们可能会在那里待很长时间。 Shibboleth登录超时,但Angular应用程序不知道这一点,这会导致应用程序必须与之通信的服务出现问题。如何让Angular检查Shibboleth是否已登录?或者(作为解决方法)当用户单击提交按钮以使用服务时,如何强制浏览器刷新(这会导致NGINX检查登录状态)?

谢谢

angular nginx shibboleth
1个回答
1
投票

如果我的问题是正确的,你有一个应用程序https://example.com

您已在此方实施SP并且受保护 - 授权的整个网站 - 而不是任何特定路径。因此,每当用户访问该网站时,nginx都会向某个IdP验证用户身份。

现在问题是,当您在角度应用程序中导航时,由于pushState实现,请求不会转到nginx,因此您无法检查用户会话是否处于活动状态。

如是

然后我相信你需要在角度应用程序中创建一个auth-guard,它会检查每个页面上的有效会话 - 在每个路由中注入的auth-guard。

您可以使用以下网址https://example.com/Shibboleth.sso/Session https://example.com/Shibboleth.sso/Status来检查会话有效性

© www.soinside.com 2019 - 2024. All rights reserved.