【问题标题】:MobileFirst 6.3 adapter IGNORE_COOKIES policy still sends cookiesMobileFirst 6.3 适配器 IGNORE_COOKIES 策略仍发送 cookie
【发布时间】:2015-03-18 16:02:26
【问题描述】:

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

我们将适配器设置为以最终用户身份连接,并将 cookie 策略设置为 IGNORE_COOKIES。

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

在这种状态下,用户尚未在 Worklight Server 中进行身份验证,因此我不确定“作为最终用户连接”选项是否会按预期工作。但是 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 令牌仍在发送的原因可能是什么?

【问题讨论】:

  • Stijn,您能在问题中添加您的 authenticationConfig.xml 文件吗?
  • 感谢 Idan Adar,我已将 xml 添加到问题中。
  • 嗨 Idan Adar,您能否重现该问题?我创建了一个没有任何安全测试的测试应用程序,在这种情况下,一切似乎都可以正常工作,但是一旦我添加了配置代码,服务器就会开始使用共享的 ltap 令牌。知道从哪里开始解决这个问题吗?

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


【解决方案1】:

发现此问题存在缺陷,IBM 客户可以使用修复程序。有关详细信息,请联系 IBM 支持。

ibm.com/support

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 感谢 taitelman 的回复。但是客户端和worklight 服务器之间的连接不是问题。挑战处理程序按预期工作。 Worklight 服务器为每个设备发送相同的 ltpa 令牌到后端。这会导致后端服务器将每个设备识别为同一用户。因此显示的内容不正确。
    • 第二次认为你可能是对的。我正在检查代码以了解问题。服务器不会按预期忽略 cookie。这可能会影响 2014 年 12 月 28 日或之后的 Worklight v6.3 +ifix 级别以及 v7.0。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    相关资源
    最近更新 更多