我使用MobileFirst HTTP的JavaScript适配器具有以下情形的一个问题:如何在MobileFirst 8中实现服务器会话验证方案?
假设适配器调用2种方法,
- 登录,调用该验证用户后端服务,也可以返回customer_id(输入:用户名和密码)。
- retrieveData(受安全检查保护)通过调用后端服务(输入:customer_id)来检索有关客户的敏感数据。
我们怎样才能确保某些客户端有凭据进行身份验证和访问retrieveData,将请求仅在关心他,不能够发送一个请求STO retrieveData与自己不同的CUSTOMER_ID的数据? (我们假设这个客户端已经与应用程序调和,并已发送不同的customer_id的。)
随着MobileFirst 7,登录成功后,我们将调用setActiveUser设置返回的customer_id作为活跃用户的属性,或者我们会调用WL.Server.getClientRequest()。getSession()。setAttribute并再次设置customer_id。因此,当用户调用retrieveData时,我们会将他的customer_id输入并将其与他的会话中的customer_id进行比较。如果不同,那么他们会得到一个错误,因为他们请求的数据不属于他们。
由于MobileFirst 8没有会话,我们如何防止这种情况发生?
用户名和客户ID之间的关系是什么?这个关系是如何存储的? –
客户使用用户名和密码登录,并且登录后端过程返回唯一的customerId(每个客户一个,在注册时创建并且永不改变)。出于安全原因,此customerId从未到达客户端应用程序。 – papakias
你的意思是他们每次登录时都会得到一个不同的客户ID?或者你是否存储在某些持久性存储中,如数据库?我的意思是,您的“retrieveData”使用客户ID作为输入,它如何知道使用此ID检索哪些数据? –