会话& IBM MobileFirst Platform 7.1中的令牌修复

时间:2016-10-12 03:54:30

标签: security ibm-mobilefirst

我们正在开发基于MFP 7.1的混合应用程序cordova。据观察,该应用程序使用客户端ID作为会话ID。如下面的红色框

Client ID 发现在重新安装应用程序之前不会更改客户端ID。每当用户登录设备时,其身份将与客户端ID相关联。使用客户端ID,它可以从应用程序服务器检索另一个ID WL-Instance-ID。凭借有效的客户端ID和WL-Instance-ID,攻击者将能够以受害用户的权限访问该应用程序。

如何分离客户ID和会话ID?即,不应仅仅通过客户端ID检索有效的会话ID /令牌。在安全上下文更改期间,应更改会话ID /令牌。

我们按照此处的说明实施身份验证 https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/7.1/authentication-security/custom-authentication/

  • 创建mobileSecurityTest以保护适配器的程序;它位于SecurityTests部分。

    <mobileSecurityTest name="LoginAdapter-securityTest"> <testUser realm="LoginAdapterRealm" /> <testDeviceId provisioningType="none" /> <testDirectUpdate mode="disabled"/> </mobileSecurityTest>

  • 使用AdapterAuthenticator处理userIdentity,并在LoginAdapter中定义LoginAdapter.onAuthRequired,LoginAdapter.onLogout两个方法来处理安全请求。

    <realm loginModule="LoginAdapterModule" name="LoginAdapterRealm"> <className>com.worklight.integration.auth.AdapterAuthenticator</className> <parameter name="login-function" value="LoginAdapter.onAuthRequired" /> <parameter name="logout-function" value="LoginAdapter.onLogout" /> </realm>

  • 定义模块以创建和存储LoginAdapterRealm使用的用户身份;它位于loginModules部分。

    <loginModule name="LoginAdapterModule" expirationInSeconds="1800"> <className>com.worklight.core.auth.ext.NonValidatingLoginModule</className> </loginModule>

0 个答案:

没有答案