问题标签 [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.
ssl-certificate - IBM Worklight:测试环境中使用负载均衡器的自签名 CA 实施
我在测试环境中有以下实现,
- 前端服务器【IBM HTTP Server + IBM Websphere 插件】,
- WLServer1 [IBM Worklight 6.2 + IBM DB2 10.1+ Liberty Farm 8.5.5.1] 和
- WLServer2 [IBM Worklight 6.2 + IBM DB2 10.1+ Liberty Farm 8.5.5.1]。
plugin-cfg.xml已从每个 Worklight 服务器生成并合并。
一旦合并的 plugin-cfg.xml 已部署在前端服务器的IBM Websphere 插件中,来自多个设备的请求 [http] 已被定向到 worklight 服务器。
我如何实现相同的服务来服务 HTTPS 请求。
而且我还实现了 Worklight 模块中的“UserCertificateAuthenticationProject”,它将设备 [ HTTPS ] 直接连接到 Worklight 服务器。
注意仅在 Android 上进行了测试。
帮助我理解,如何通过 IHS 在测试环境中实现 HTTPS。
生产环境中的程序应该是什么?
注意IBM Worklight 6.2 支持 Android、IOS、Blackberry 和 Windows,所以我必须在所有平台上实现。
javascript - Worklight 将登录凭据传递给 iframed 服务器端内容
这是场景:
具有 Worklight Server 和 Webseal 认证领域的 Worklight studio 6.2。
我正在开发一个混合应用程序,该应用程序需要登录(已经设置和工作),然后推送到其中包含服务器端内容的 iframe(论坛)。我遵循了 ibm worklight 教程,以获得可以正常工作的身份验证处理程序。
问题是:在显示我的身份验证页面并且用户输入他/她的凭据后,登录将成功,但在 iframe 中会显示一个新的登录页面(网页)。所以基本上我需要将这些凭据推送到 iframe 以避免冗余。
身份验证处理程序:
主.js:
索引.html:
ibm-mobilefirst - LDAP Example_Help Need
我正在处理 LDAP 身份验证。我从 IBM Worklight Foundation 入门站点下载了示例。(http://www.ibm.com/developerworks/mobile/worklight/getting-started.html)
在完成所有配置等之后,我看到 LDAP 无法正常工作。
根据示例,方法 getSecretData 应在登录表单成功验证后执行。
但即使我提供了错误的凭据,它也会带我使用 getSecretData 方法
请帮忙!!
在那里找到代码
HTML页面:
LDAPRealmChallengeHandler.js
DummyAdaptor-impl.js
不知道哪里错了。在控制台中出现以下错误。但它允许我访问 getSecretData,即使我提供了错误的凭据。
[错误] FWLSE0048E:捕获到未处理的异常:SRVE0190E:找不到文件:/console java.io.FileNotFoundException:SRVE0190E:找不到文件:com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java: 528) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:127) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:88) 在 com.worklight.core .auth.impl.AuthenticationFilter$1.execute(AuthenticationFilter.java:205) 在 com.worklight.core.auth.impl.AuthenticationServiceBean.accessResource(AuthenticationServiceBean.java:76) 在 com.worklight.core.auth.impl.AuthenticationFilter。 com.ibm.ws.webcontainer.filter.FilterInstanceWrapper 上的 doFilter(AuthenticationFilter.java:209)。doFilter(FilterInstanceWrapper.java:194) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:85) 在 com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:968)在 com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1056) 在 com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:4510) 在 com.ibm.ws.webcontainer .osgi.DynamicVirtualHost$2.handleRequest(DynamicVirtualHost.java:282) 在 com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:954) 在 com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.run(DynamicVirtualHost .java:252) 在 com.ibm.ws.threading.internal.Worker 的 com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink$TaskWrapper.run(HttpDispatcherLink.java:584)。executeWork(Worker.java:439) at com.ibm.ws.threading.internal.Worker.run(Worker.java:421) at java.lang.Thread.run(Unknown Source) [project module_23_2_LDAPLoginModule] SRVE0190E: 找不到文件: /安慰
ibm-mobilefirst - Worklight 适配器 singleStepAuth 安全测试
我有多个公开且需要身份验证的适配器。我的一些适配器使用公共适配器过程,该过程不应该对公众可见,但只对我的适配器可见。有没有办法创建一种只能由其他适配器访问的私有过程?
ibm-mobilefirst - IBM 工作灯。是否可以安全地存储用户凭据并在没有用户交互的情况下恢复它们?
在应用程序中安全地存储用户凭据(用户 ID/用户密码)并在下次应用程序启动时自动使用它们是一个常见要求,但我无法弄清楚如何在没有用户交互的情况下执行此操作。
使用 JSON 存储我需要一个密码来加密信息,所以如果我将用户凭据存储在 JSON 存储中,我需要向用户询问用于加密信息的密码。
我想出的一个解决方案是将用户 ID 存储在不加密的 JSON 存储中,并将密码存储在使用用户 ID 作为密码加密的 JSON 存储中。可能这个解决方案比不加密任何东西提供更多的安全性,但我认为这不是一个完整的解决方案。
正如评论中所解释的,这是一个非常糟糕的主意。
是否有任何解决方案可以安全地存储用户凭据并在无需用户交互的情况下恢复它们?
ibm-mobilefirst - 使用 Worklight 的 LTPA 认证
我正在尝试从 AdapterAuthentication 迁移到使用 LTPA 将 userRegistry 推迟到 Websphere 容器。
我在这里遵循了入门配置,这里是 Stack Overflow 。我相信选项 2 是本文档中的正确方法。
我已经建立了一个独立的基于 Liberty 配置文件的工作灯实例(使用 6.2)。我已修改 authenticationConfig.xml 以使用 LTPA:
我已经确认(并重建).war 在根级别以及 conf/ 目录下都有 login.html 和 loginError.html。(此处的文档“必须将这些 HTML 文件添加到 Worklight Server WAR 文件中的根目录”确实需要告诉用户如何在 Worklight Studio 中执行此操作)
我修改了适配器以使用 LTPA 领域:
我已经根据文档修改了 Liberty Profile 的 server.xml 以添加 appSecurity(屏幕截图仅描述了如何从 Websphere 控制台执行此操作),并绑定到 ldapRegistry
但是,从服务器日志中,当客户端启动应用程序时,会报告 40 多个堆栈跟踪实例。从客户端看来,连接到 Worklight 的初始调用似乎被拒绝了。我认为这是因为他们没有 LTPA 令牌。
我的期望是,一旦服务器确定用户正在请求安全资源,就会发出挑战。似乎不是发出挑战,而是抛出 WorkLightAuthenticationException。
我需要添加额外的静态资源吗?是否有其他配置更改?Login.html 永远不会返回给最终用户。
控制台日志:
编辑
回答大卫/西蒙的问题:
我在加载应用程序时明确调用 wl.client.connect(不使用 connectOnStartup)但截至目前我没有等待 onSuccess/onFailure。它在我积压的事情上需要补救;但我怀疑这适用于 AdapterAuth,它应该适用于 LTPA。
我从 AdapterAuth 开始(它有效),切换到 LDAPLoginModule(它有效);为了外部化 LDAP 端点,我们正在切换 LTPA。基于此;请注意,客户端代码比我想要的要复杂一些。
这是客户端挑战处理程序。假设工作灯工厂代码在应用程序启动后几乎立即被触发;随后是适配器调用,它触发质询处理程序代码。
;
ibm-mobilefirst - IBMWorklight 会话管理
我们正在尝试在 IBMWorklight 服务器上开发会话管理。以下是我们对会话管理系统的需求-
- 一旦每个用户使用他的凭据(用户名/密码)登录,就应该创建会话。
- 该会话应该能够存储该特定用户的会话数据,即会话应该保存他的凭据,以便他无需再次传递这些凭据以访问其他服务。
- 会话超时应在一定时间后发生。
我们的进步
在 authenticationConfig 中创建了一个领域:
/li>在 authenticationConfig 中创建登录模块:
/li>创建安全测试:
/li>我们创建了一个适配器,其中包含两个过程。以下是 adapter.xml 文件
/li>以下是适配器实现文件:
/li>我们创建了包括登录页面和主页的虚拟 UI。登录按钮单击将调用 submitAuthentication() 服务并迁移到主页。主页包含两个按钮,一个用于调用 requestForData() 服务,另一个用于 requestForOtherData() 服务。
我们面临的问题:
- 此流程要求首先调用受保护的服务,例如 requestForData,作为响应,worklight 服务器将抛出挑战,我们将通过提供用户凭证来清除这些挑战。我们需要其他方式,我们希望提供用户的凭据并启动会话,以便应该可以访问受该领域(安全测试)保护的所有服务。
- 一旦我们清除了第一个服务的挑战,我们就可以在不提供用户凭据的情况下调用其他服务,但是在调用下一个服务时,我们没有传递任何调用客户端的标识,这使我们相信在第一个服务调用挑战中建立的会话是对于所有/任何非特定用户的用户。我们需要非常非常用户特定的会话。
当我们正在开发银行移动应用程序时,请评论在 Worklight 中间件服务器上维护会话是否是个好主意。请在上面提出解决方案...
ibm-mobilefirst - 如何在 JsonStore Worklight 6.2 中实现密码保护安全?
我想使用 JsonStore 保护在 worklight 中实现应用程序我想根据登录用户存储密码并将这些密码添加到WL.JSONStore.init(collections,options)
. 数据对象中的其余细节data={}
;
以及如何提取密码保存的WL.JSONStore.init(collections,options)
选项对象以对其余功能进行 api 调用?
ibm-mobilefirst - 如何在 jsonstore Worklight 6.2 中以 Json 格式从数据库中获取或返回值?
我已经编写了 Json 存储,用于在数据库中添加替换删除值。我已经初始化了集合。像这样
适配器:
函数 getSQLs() {
运行此即时消息时,出现如下错误:
您能否让我知道如何从数据库返回值以及如何解决此错误。
问候,
谢赫穆罕默德沙姆努恩
ibm-mobilefirst - IBM Worklight:基于适配器的身份验证成功后未获得响应
工作灯工作室 6.0.0.2;工作灯服务器 6.0.0;Android 上的混合应用程序;
最近,我发现了基于 Worklight Adapter 的身份验证的另一个奇怪行为。如果我一开始就通过了身份验证,然后在后台运行应用程序,那么下面的 #7 步骤不会发生在我身上(以下 7 个步骤是安东的一个答案的副本)。Worklight 会话过期后,将应用程序返回到前台。此时,第一个请求在与 WL 服务器重新认证时不会得到响应。
- 您正在向服务器发出请求#1(比如说调用过程)
- 您收到 authRequired:true 的响应
- 您正在提交身份验证数据
- 你得到 authRequred:false
- 您正在调用 submitSuccess()
- WL 框架自动重新调用请求#1
- 您收到请求#1 的响应
安卓日志:
看?没有得到“复合”请求的响应。实际上,在某些情况下,我也没有得到其他 #1 请求的响应,这导致我的应用程序无法继续。在这种情况下,我必须发送两个相同的请求:一个没有响应就离开了;另一个效果很好。
任何想法?提前致谢。
更新:
通过PC浏览器,我发现#6 step的请求得到403错误...;
我的一些代码: