我有一个Web应用程序,当用户单击链接时,如果安全信息经过身份验证,它将生成安全信息并登录到外部应用程序。
此时出于安全考虑,我不想在网页上公开网址和请求信息,所以相反,我正在寻找处理幕后流程的解决方案
我知道Apache Components
可以轻松地在POJO中发送帖子请求,jersey client
也可以通过网络服务发送。但是,这里的要求还包括如果登录过程成功,让浏览器自动重定向到第3个应用程序的首页。
我的问题是什么是处理登录过程的正确解决方案,也可以从网络转到外部应用程序。
答案 0 :(得分:0)
说你有:
在publicapp.com中设置API,将初始请求发送给自己。当用户提交初始登录表单时,它会转到publicapp.com/login。此端点将预处理信息,然后将服务器发送到服务器请求至secretapp.com/login。
如果secretapp.com/login接受了它成功响应publicapp.com的信息,并且publicapp.com将客户端重定向到secretapp.com/home,并在JWT中编码短期身份验证令牌。 secretapp.com,交换短期令牌以获得完整的身份验证令牌。
在上面的场景中,实际的登录端点永远不会公开。 secretapp.com也应该有IP白名单,只接受来自publicapp.com的登录尝试。您还可以在publicapp.com上进行大量过滤,以消除恶意请求,而无需打扰secretapp.com。