在多个安全检查之间传递安全上下文数据

时间:2017-03-20 18:45:46

标签: java authentication oauth ibm-mobilefirst

是否有办法在IBM MobileFirst Platform 8.0的Java适配器中的两个或多个安全检查之间传递安全数据(用户数据)

基本上,我需要调用适配器资源并生成用户登录或不响应的响应。如果用户已登录,我需要获取用户特定数据,否则需要从后端获取常规信息。例如,当用户未登录时,联系人信息将是通用的,但如果他/她已登录则特定于用户位置(将根据认证数据从后端获取用户的位置)。 因此,如果我保持我的适配器安全,那么如果没有登录,适配器将抛出401错误,如果我保持我的适配器不安全,那么当用户登录时我无法获得用户特定信息。

2 个答案:

答案 0 :(得分:1)

对于受保护的适配器方法中的经过身份验证和未经身份验证的用户,您不能指望两种不同的适配器响应。因为只有在客户端回答安全检查挑战时才能访问该方法。

但是,您可以使用getAuthenticatedUser API在不受保护的适配器方法中实现它,您可以在其中区分经过身份验证的用户和未经身份验证的用户。根据用户类型发回回复。

并使用UserLogin安全检查来验证用户身份。

答案 1 :(得分:0)

OAuth基于安全的MobileFirst模型不提供 1.从未受保护或未受保护的资源访问基于安全或用户会话的信息 2.在运行时使资源安全且不安全

因此有两种方法可以达到要求 1.简单方便的方法是在同一个适配器中使用OAuth启用两个适配器或两个方法,一个使用OAuth禁用,并让移动应用程序决定调用哪个 2.如果我们只想使用一个适配器或方法,     i)适配器或更具体地说,方法必须是不受保护或仅使用MobileFirst的Default_Scope保护,因为在启动移动应用程序时会通过MFP的Default_Scope的安全检查     ii)如果用户从后端系统登录,则获取用户特定信息,类似于安全测试中使用的信息     iii)使用特定于用户的信息来获取用户特定数据

通过执行上述步骤,即使附件或特定API不受保护,也可以使用用户特定信息。由于您不打算使用MFP的开箱即用安全模型,因此需要明确处理安全性,并且必须遵循所有安全措施,以确保用户信息安全。