我目前正在处理一个具有复杂要求的项目,对于正在考虑的解决方案我不满意。
主要思想是保护现有应用程序(本身不包括安全性)而不对其进行修改。这些应用程序不能从外部访问,只能通过反向代理(OpenResty)进行访问。
用户无权访问所有应用程序,而识别用户的解决方案是Keycloak。
主要成分是:
这个想法是:
我知道这不是在应用程序之间执行某些SSO的正确方法,但是这里的要求是,必须编辑受未保护的应用程序保护,否则必须由前期系统进行保护(反向代理)这里)
我的问题是:好的,这将对第一次调用有效,因为用户在门户网站上拥有他的JWT令牌,并首次使用它命中了该应用程序,但是当用户单击该应用程序中的链接之后。 。没有更多的令牌了。这种架构可以很好地保护Web应用程序的REST API,对我来说有点不确定。
答案 0 :(得分:0)
尝试使用github.com/gambol99/keycloak-proxy。它将令牌存储在cookie中,这对于Web应用程序是更好的选择。
!!!警告:我猜任何身份验证代理都只能使用授权代码流,但是对于单页应用程序(角度),建议使用隐式流。这实际上取决于您的Angular应用程序是什么。分析秒。为了安全起见,首先要考虑利弊。
答案 1 :(得分:0)
通常,您将使用反向代理服务器来处理用户身份验证,而不是先登录到密钥库。
流程如下: