MobileFirst 6.3适配器IGNORE_COOKIES策略仍然发送cookie

时间:2015-03-18 16:02:26

标签: cookies ibm-mobilefirst worklight-security mobilefirst-adapters

我们正在使用自定义设备配置来验证WebSphere Portal后端的设备。

我们将适配器设置为endUser,并将Cookie策略连接到IGNORE_COOKIES。

但由于某种原因,适配器仍然使用共享Ltpa令牌连接到所有设备的后端。

在此状态下,用户尚未在Worklight Server中进行身份验证,因此我不确定connect as endUser选项是否可以按预期工作。但IGNORE_COOKIES应该吗?

var input = {
    method : 'get',
    returnedContentType : 'json',
    path : 'DeviceService/DeviceInfo/' + deviceId,
    headers : {"Authorization": "Basic " + auth},
    parameters : {
        token: token
    }
};

try {
    var result = WL.Server.invokeHttp(input);
    return result;
} catch (e) {
    WL.Logger.error("ERROR: " + e);
    return null;
}

我们的authenticationConfig.xml如下:

<?xml version="1.0" encoding="UTF-8"?><tns:loginConfiguration xmlns:tns="http://www.worklight.com/auth/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <!-- Licensed Materials - Property of IBM
             5725-I43 (C) Copyright IBM Corp. 2006, 2013. All Rights Reserved.
             US Government Users Restricted Rights - Use, duplication or
             disclosure restricted by GSA ADP Schedule Contract with IBM Corp. -->
    <securityTests>
        <mobileSecurityTest name="MAPCertLogin">
            <testDeviceId provisioningType="custom" realm="MAPLoginRealm"/>
            <testAppAuthenticity/>
        </mobileSecurityTest>
    </securityTests>
    <realms>
        <realm loginModule="StrongDummy" name="SampleAppRealm">
            <className>com.worklight.core.auth.ext.FormBasedAuthenticator</className>
        </realm>
        <realm loginModule="MAPLoginModule" name="MAPLoginRealm">
            <className>com.worklight.core.auth.ext.DeviceAutoProvisioningAuthenticator</className>
            <parameter name="validate-csr-function" value="Authenticator.validateCSR"/>
        </realm>
    </realms>
    <loginModules>
        <loginModule name="StrongDummy">
            <className>com.worklight.core.auth.ext.NonValidatingLoginModule</className>
        </loginModule>
        <loginModule name="requireLogin">
            <className>com.worklight.core.auth.ext.SingleIdentityLoginModule</className>
        </loginModule>
        <loginModule name="MAPLoginModule">
            <className>com.worklight.core.auth.ext.DeviceAutoProvisioningLoginModule</className>
            <parameter name="validate-certificate-function" value="Authenticator.validateCertificate"/>
        </loginModule>
    </loginModules>
</tns:loginConfiguration>

我无法确认它,但我确信这在我们的Worklight 6.2环境中有效。

仍然可以发送ltpa令牌的原因是什么?

2 个答案:

答案 0 :(得分:1)

发现此问题存在缺陷,IBM客户可以找到修复程序。有关更多详细信息,请与IBM支持部门联系。

ibm.com/support

答案 1 :(得分:0)

恕我直言:你不应该触及cookie政策。 cookie策略主要用于从Worklight到后端HTTP服务器的正确cookie解析,反之亦然。作为副作用,cookie可以传递回客户端。 Liberty确实会将传入的HTTP请求附加到LTPA令牌,但它不应该打扰您的应用程序。它只是添加到响应cookie中。 Worklight服务器将开始验证此cookie的唯一情况是使用WorklightLTPAAuthenticator模块。我没有看到你使用它。 您使用依赖于正确的WWW身份验证标头和一些JSON响应的设备配置。 如果您在设备配置时出错,则应检查处理CSR握手的客户端中的质询处理程序。