问题标签 [worklight-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
306 浏览

ibm-mobilefirst - IBM Worklight 5.0.6 - testWebResourcesChecksum 的使用

根据Worklight 5.0.6 Information CentertestWebResourcesChecksum中的属性application-descriptor.xml

该元素控制应用程序是否在每次开始在移动设备上运行时验证其 Web 资源的完整性。如果其 enabled 属性设置为 true,则应用程序会计算其 Web 资源的校验和,并将其与首次运行时存储的值进行比较。校验和计算可能需要几秒钟,具体取决于 Web 资源的大小。为了使其更快,您可以提供在此计算中要忽略的文件扩展名列表。

1) 如果该属性设置为 true,则 Web 资源校验和将与首次运行时存储的值进行比较。如果校验和不同会怎样?会出现错误提示并强制应用程序启动?

2) 默认情况下,此属性设置为 false。但是,据我了解,直接更新还需要计算 Web 资源的校验和。将其设置为 true 或 false 的潜在含义是什么?

环境:Worklight 5.0.6 开发者版

谢谢!

0 投票
1 回答
2227 浏览

ibm-mobilefirst - 将 cookie 附加到 WorkLight Adapter 响应标头

我正在使用 WorkLight 5.0.6 开发一个移动应用程序,我想将一个安全 cookie 附加到适配器返回的响应中。

我们没有使用 WorkLight Authentication 领域,因为我们不希望将会话“绑定”到集群生产环境中的特定 WL 服务器。我们通过调用登录适配器来验证会话,该适配器根据后端系统验证用户详细信息。作为登录适配器调用响应的一部分,我想创建一个包含经过身份验证的信息的安全 cookie(仅限 http),并将其附加到登录适配器返回的响应中。cookie 还应该包含在从应用程序调用到服务器的后续适配器的标头中。

问候,

0 投票
1 回答
1396 浏览

ibm-mobilefirst - IBM Worklight 6.0 - 将适配器部署到 Worklight Server 后出现 wl_antiXSRFRealm 错误

我目前正在使用 Worklight v6.0 Enterprise Edition 进行推送通知演示。

作为演示的一部分,我在 Worklight Studio 中创建了一个新的 Worklight 项目。

  • 我还将推送通知示例项目导入到同一个工作区
  • 我将提供的 authenticationConfig.xml 文件从推送通知示例项目复制到我的新项目中(替换文件)
  • 我还在新项目中修改了 application-descriptor.xml 以引用 authenticationConfig.xml 文件中的 securityTest

如果我在我的测试服务器(Eclipse 开发环境的一部分)上测试我的 PushNotifications 适配器,则该适配器运行正常。我通过浏览器调用测试服务器http://hostName:10080/ProjectName/invoke?adapter=PushAdapter&procedure=submitNotification&parameters=["user","testdata"]

但是,如果我将新应用程序和适配器部署到我的 QA Worklight 服务器,则适配器会出现问题。当我从指向新服务器的浏览器再次访问适配器时,我收到错误消息:

/*-secure- {"挑战":{"wl_antiXSRFRealm":{"WL-Instance-Id":"i9k34qhnj7r25s8ab7v2m0sf3l"}}}*/

在我的设备上运行的应用程序可以连接到服务器。我希望有一个外部服务器使用适配器端点为演示编写通知:

0 投票
1 回答
1033 浏览

ibm-mobilefirst - IBM Worklight 6.0 - 如果客户端注销/登录,具有基本身份验证的适配器不会更新身份验证标头

我有一个使用基于适配器的身份验证的 Worklight v6.0 应用程序。

该适配器是一个 HTTP 适配器,它使用 Basic Auth 调用后端 REST 服务。

适配器和后端服务之间没有会话或 cookie。在我的适配器描述符中,我已将 cookiePolicy 设置为 IGNORE_COOKIES。从适配器到后端的每个请求都使用该请求的基本身份验证标头进行身份验证。

每个适配器的过程都将 connectAs 设置为:endUser。

这一切都很好。移动应用程序在适配器上调用安全过程,这会触发身份验证,身份验证成功完成,该过程被重新调用,我可以在网络跟踪上看到正确的基本身份验证标头正在从适配器调用到后端。如果移动应用程序在已通过身份验证时进行适配器调用,则适配器只需使用正确的 Basic Auth 标头调用后端。如果多个移动应用程序同时连接并以不同用户身份登录,则适配器会为调用它的用户使用正确的 Basic Auth 标头。

唯一不起作用的是当移动应用程序调用适配器时,以 user1 身份进行身份验证,从 user1 的后端获取正确结果,调用 WL.Client.logout(),再次调用适配器并进行身份验证这次作为用户 2。

在适配器过程中,我调用 WL.Server.getActiveUser() 来验证活动用户,果然,用户是正确的(user2)。但是当调用发送到后端时,Worklight 添加的基本身份验证标头具有 user1 的凭据,因此移动应用程序会得到错误的结果。

如果我退出并重新启动应用程序,一切都很好,我可以直接作为用户 2 进行身份验证,并为用户 2 获得正确的结果。唯一存在问题的情况是,当我在移动应用程序和 Worklight Server 之间的单个会话中以不同用户的身份注销/重新登录时。

这是将基本身份验证与 Worklight 适配器一起使用的已知限制吗?我有什么方法可以在我注销时强制重置移动客户端和 Worklight Server 之间的连接?(没有重新启动应用程序)

0 投票
1 回答
977 浏览

oauth-2.0 - IBM Worklight - 如何在混合应用程序中使用 Google 身份验证?

我在 Android 和 iOS 环境的 Worklight 应用程序中实施社交身份验证(使用 Google、Facebook)时遇到困难。

我正在尝试使用 oauth。以下是要求:

身份验证后,它应该被重定向到我们的应用程序(位于公共域中)。为此,我们必须将重定向 uri 添加到 Google API。

我不知道应该放入什么REDIRECT

0 投票
1 回答
325 浏览

websphere - IBM Worklight 5.0.6 - 加密 worklight.properties

我正在尝试按照信息中心中的步骤在 worklight.properties 中加密敏感信息。

在这一步中,

*所有加密值都使用相同的密钥,该密钥存储在名为 worklight_enc_password 的特殊变量中。此变量被定义为操作系统环境变量:

在 Windows 系统上:在运行 IBM Worklight Server 的用户下设置环境变量。在 Windows NT 服务下运行时,使用注册表编辑器将密码定义为服务属性。有关详细信息,请参阅 Microsoft 支持网站。*

我试图在 HKKEY_CURRENT_USER/Environment 下的注册编辑器中添加 worklight_enc_password 并部署应用程序。但是,在 SystemOut.log 中,它一直返回“java.lang.RuntimeException:无法解密属性 xxx.enc 的值。加密密码应在环境变量 xxx.enc 中定义”

我可以知道在 Windows XP 中应该在哪里设置这个变量“worklight_enc_password”吗?

环境:Windows XP、Worklight 5.0.6、WAS ND 8.5

0 投票
3 回答
793 浏览

ibm-mobilefirst - IBM Worklight 5.0.6 - 登录需要两次单击而不是一次

我在我的应用程序中使用基于表单的身份验证和质询处理程序(示例代码)。问题是,它不是通过单击登录按钮来验证用户 - 我必须单击两次。为什么?

我已经保护了所有适配器功能。

我的挑战处理程序

身份验证配置.xml

我的 processLogin() 函数

ValidateUsersListSummariesDetails适配器函数使用上面给出的myAppSecurityTestCustom进行保护

0 投票
1 回答
1023 浏览

android - IBM Worklight 5.0.5 - 无法在混合应用程序中启用应用程序真实性

我一直在尝试实现和测试 Worklight 的应用程序真实性功能,但未能使其正常工作。我已经查看了该站点上的每个帖子,以及WL信息中心的信息,但没有成功。我正在详细解释我所做的事情以及我看到的结果,希望有人能够帮助我。

环境:Worklight Studio 5.0.5 Consumer edition 安装在 Windows 7 Enterprise 上 Worklight Server 5.0.5 Consumer edition 安装在 Windows 7 Enterprise

WL Server 正在 Worklight Server 安装提供的 Websphere Application Server Liberty 概要文件中运行

WL Server 使用的是安装包提供的 derby 数据库。

实施步骤:

  1. 在 authenticationConfig.xml 中添加(取消注释)安全测试

    /li>
  2. 重新构建 .war 文件并将其部署到 Worklight Server。

  3. 修改 initOptions.js 使“connectOnStartup : true”

  4. 修改application-descriptor.xml,指定Android应用的安全测试,添加publicSigningKey

  5. 重新构建应用程序并将其部署到 WL 服务器。

  6. 创建签名的 .apk 文件并上传到应用中心。

  7. 在物理设备上安装应用程序(Samsung Galaxy Tab 2,Android 4.1.1)

  8. 启动应用程序。

当我从 WL 控制台或在物理设备上以“预览”模式启动应用程序时,我最终会显示相同的错误。我收到的错误是:

{"errorCode":"UNEXPECTED_ERROR","errorMsg":"userIdentityForAPI 为空。检查您的应用程序的身份验证要求(从不、onStartup、onDemand)。这些设置必须与部署的应用程序匹配"}

我的配置中有什么遗漏吗?

0 投票
3 回答
928 浏览

ibm-mobilefirst - 通过不同的 URL 将一些 WL.Client 适配器调用流量重新路由/转移到 WL 服务器(用于 PCI 支付和安全要求)?

工作灯 5.0.6.1

我们的客户对使用英特尔的 PCI 设备 ( http://info.intel.com/rs/intel/images/Intel_Expressway_Tokenization_Broker.pdf ) 提出了具体要求,以避免对应用程序和服务器进行 PCI 审核。

因此,与支付数据有关的适配器调用将需要通过此硬件设备,然后才能访问 worklight 服务器。所有其他适配器调用应直接转到 Worklight 服务器(以免设备过载)。想法是在后台拥有两个不同的 URL,但使用相同的 worklight 服务器。假定通过设备的调用对于 Worklight 服务器是透明的,因此不应影响 Worklight 功能。

我的问题是:

  • 一个 Worklight 最佳实践,为同一个 Worklight 服务器提供两个不同的 URL,并从客户端交替这些 URL 以进行适配器调用(仅限;不是直接更新或其他任何东西,因为我们假设这是本机执行的)?

  • 是否可以通过客户端代码中的 JavaScript 代码动态覆盖用于适配器调用的 Worklight 服务器 URL?例如,在 WL.Client AJAX 适配器调用之前覆盖从某处获取/返回工作灯 URL 的特定 JS 函数?

我们还在研究让负载均衡器根据正在调用的 AdapterName 的正则表达式切换路由。但现在还不确定这是否可能以及对性能的影响是什么。

0 投票
2 回答
1059 浏览

oauth - 如何在 IBM Worklight 6.0 中实现 OAUTH 2.0

在我的应用程序中,我通过实现安全领域实现了登录模块身份验证安全性。但我正在考虑实施 OAUTH2.0 身份验证,一旦我获得令牌并重新验证,用户将在应用程序启动时进行身份验证。

因此,请指导实施此操作的先决条件是什么。我可以通过创建自定义身份验证模块来实现这一点吗?任何指南示例代码都会非常有帮助。