问题标签 [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.
ibm-mobilefirst - 使用基于 Worklight 适配器的身份验证时如何获取正在注销的用户的 userIdentity
我目前正在为我的 Worklight 应用程序实施基于适配器的身份验证。作为记录,我使用的是 Worklight 版本 5.0.6.1。
正如文档中似乎建议的那样,我想做的是在我的身份验证适配器的“注销”功能中执行一些清理。
因此,在 Worklight 框架自动调用的注销函数中,我想检索保存有关正在注销的用户的信息的 userIdentity 对象。我试图通过调用“WL.Server.getActiveUser()”来实现这一点,但在注销功能中似乎无法做到这一点。
我可以在日志中看到以下异常(WebSphere App Server 7):
这背后的想法是我想调用一个外部 REST 服务,该服务将在数据库中执行一些清理,并且我需要将移动应用程序 userId 作为该服务的参数传递。
有人可以提供一些最佳实践,以检索从身份验证适配器注销功能内部注销的用户的身份吗?
谢谢。
session - 在多个设备上看到 Worklight Session
使用 HTTP 适配器在工作灯中创建一个简单的多页表单。当两个用户同时尝试创建帐户时。最后启动该过程的用户将在其他用户设备上看到他们的数据。看起来他们正在共享同一个会话。
这听起来像任何人以前见过的东西吗?
ssl - LDAP 登录模块的密钥库
我正在使用 LDAP 登录模块来保护对 Worklight Console 的访问。ldap:// 访问有效。但是,我需要通过 SSL 访问 LDAP,即使用 ldaps://。我正在尝试找出在其中提供 LDAP 服务器端公钥证书的密钥库。有两种可能,即:
- Worklight 战争文件中内置的默认密钥库
- 定义供 Liberty Profile 使用的密钥库。
似乎没有任何文档说明 LDAP 登录模块使用哪个密钥库。
任何指针?
感谢期待。
ibm-mobilefirst - Worklight 应用程序真实性不起作用?
我正在尝试构建一个示例应用程序来测试应用程序的真实性,但不幸的是我没有成功。
我正在 Android 设备上进行测试,因此我使用自定义证书签署了我的应用程序,并通过 Worklight 向导将此证书提取到 application-descriptor.xml 中。我还在独立的 WL 服务器上部署了我的项目,而不是使用 Studio。我的移动安全测试如下所示:`
`
以下是我发现的意外行为:
- 在客户端,尽管上面显示了顺序,但用户登录页面位于 AppAuthenticity 检查之前。
- 提交用户表单后,我在服务器端看到以下错误消息,而在此阶段移动应用程序应该是真实的: [12/09/13 20:12:31:649 CEST] 00000070 com.worklight.core.auth.ext.AuthenticityLoginModule E FWLSE0127E:真实性检查失败。[项目工作灯]
- 在客户端,发生此错误后,我在 logcat 中看到以下 Javascript 错误。我会想象框架会告诉我安全检查失败并且默认情况下会强制应用程序关闭: 09-12 20:12:30.822: I/dalvikvm(20308): 找不到方法 com.worklight.utils.PaidSecurityUtils.kpg,引用自方法 com.worklight.utils.SecurityUtils.kpg 09-12 20:12:30.827 : W/dalvikvm(20308): VFY: 无法解析静态方法 9603: Lcom/worklight/utils/PaidSecurityUtils;.kpg (Landroid/content/Context;[Ljava/lang/String;)[B
谢谢你告诉我我是否做错了什么。仅供参考,如果在 WL 控制台上我禁用了真实性检查,那么该应用程序当然可以正常工作。
艾蒂安
ibm-mobilefirst - 如何在 Worklight 的用户身份对象中设置和检索自定义属性?
我在 IBM Worklight 6.0 中实现了自定义身份验证器和登录模块。身份验证机制工作正常。
我在用户身份对象中设置了自定义属性,如角色、电子邮件等。
在登录模块中,
现在我无法使用下面的 api 调用来检索属性值。WL.Client.getUserInfo("CustomRealm", "mail");
ios - IBM Worklight - 如何在原生 iOS 应用程序中启用应用程序真实性?
我们有一个 iOS 和 Android 混合应用程序环境,在其中我们成功运行了 App Authenticity(下拉菜单可用于控制该功能),使用:
我们在 Worklight 项目中添加了一个“iOS Native API”项目,用于在 XCode 5 中进行原生 iOS 客户端开发。我们成功地连接到 WL 服务器并调用不同适配器中的所有现有适配器过程。
对于这个原生 API 项目,我们现在也想启用 App Authenticity。当我们在本机 API 项目的应用程序描述符中使用与混合应用程序相同的MobileSecurityTest时,我们可以将其部署到我们的 WL 服务器,并在 iOS 本机 API 条目处启用应用程序真实性功能(可用于控制该功能的下拉菜单)在控制台中。
在本机 iOS 应用程序/项目上,我们设置:
- bundle ID 与混合项目中的完全相同,并且与 Apple Developer 门户中的相同
- 项目中启用了 Key Chain,并且还设置为worklight.group(如在混合 XCode 项目中)
当我们想要连接到 WL 服务器时,我们无法成功运行身份验证。我们看到DeviceAuthManager尝试从设备获取 UUID,但随后服务器返回错误响应:
我们确实尝试过使用和不使用仅打印响应的已注册 ChallengeHandler。结果相同,只是如果我们有 ChallengeHandler ,我们可以在isCustomResponse方法中看到打印的错误响应。
此外,会自动显示一个 Worklight 对话框,显示“错误:处理来自应用程序的请求时遇到错误 (CLOSE)”。
我们可以看到在 6.0 中有 worklight.plist 值:
这在 5.0.6 中也有必要吗?我们的 plist 文件没有那个。
当我们将 worklight.plist 文件中的环境值从更改iOSnative
为我们的应用程序名称(或其他名称)时,我们会得到一个响应响应文本:
所以我假设这个值 iOSnative 是一个必须存在的固定值?
9 月 30 日:WL 6.0.0.1 更新
在 WL 6.0.0.1 中,当我们将它与 Studio 6.0.0 生成的 iOSApi 环境一起使用时,它似乎没有显示相同的错误,该环境部署到 Tomcat 上的消费者服务器。
现在我们得到一个:
当我们有Enabled, blocking
并且当我们更改为 . 时我们可以连接和调用适配器Enabled, servicing
。(以前的 5.0.6 错误是不可能的)
现在我们假设我们需要以某种方式设置我们用于为 iOS 模拟器和 Wl 服务器上的 iOS 设备(开发者和分发证书)签署应用程序的 iOS 证书或签名,以便 WL 服务器允许连接?
有人可以帮助我们在我们的 XCode 5 项目中设置 iOS 原生 App Authenticity 以成功连接到服务器,然后使用Enabled, blocking
.
我们确实将worklight.group添加到iOS 应用程序的打开的钥匙串共享功能中。
我们将所有 Wl iOSAPI 文件(包括带有wlUid的 plist 文件)复制到 iOS 应用程序 xCode5 项目中?
如上所述,它适用于 Enabled-Servicing 和 Disabled AppAuthenticity。
ibm-mobilefirst - Worklight 轮询适配器 - 调用另一个适配器
在 Worklight 5.0.6 中,我们使用以下内容创建了一个 eventSource:
getReminders 过程然后调用其他 HTTP 和 SQL 适配器来确定我们是否应该发送推送通知。当我们将它部署到我们的 Worklight 服务器时,每当我们尝试调用另一个适配器中的一个过程时,都会看到以下错误:
资源 'proc:tbl_member.getPreferences' 只能在领域 'wl_antiXSRFRealm' 中进行身份验证时访问。
我们尝试使用 mobileSecurityTest(包括 wl_antiXSRFRealm)来保护 eventSource,但我们得到了同样的错误。有没有办法让我们的轮询适配器程序以某种方式“登录”到 antiXSRFRealm?
我们不能让其他适配器过程不受保护,因为它们确实需要保护。
ibm-mobilefirst - IBM Worklight 6.0 - 启用控制台登录身份验证后混合端口号?
希望获得 Worklight 控制台身份验证,我按照 infocenter 上此链接的信息中心说明进行操作。乍一看,它似乎在工作,因为进入控制台会提示登录表单。
转到控制台 URLhttp://192.168.168.154:9080/finance/console/#catalog
会立即进入登录页面。到目前为止,一切都很好。
输入正确的用户名/密码(均在 worklight.properties 中定义)后,登录页面重定向到端口 10080 的 Worklight 控制台,并且无法加载页面
无法连接 Firefox 无法与 192.168.168.154:10080 的服务器建立连接。
如您所见,它尝试连接到http://192.168.168.154:10080/finance/console
. 我猜它不应该发生,因为端口 10080 没有配置。
我不知道为什么它会重定向到这个端口。我在配置文件中搜索了 10080,但找不到任何对它的引用。我认为 WL 以某种方式将这个 10080 作为默认值,因为它是用于开发的端口。
这是我用来启用登录控制台的文件片段:
worklight.properties:
身份验证配置.xml
服务器.xml
关于如何解决这个端口不匹配问题的任何想法?Env 在 Liberty 上是 WL 6.0
PS:稍后我们计划改为使用 LDAP。现在,在属性中包含用户名/密码就足够了。
ibm-mobilefirst - worklight 安全性 - 每 2 周强制登录
试图更好地理解安全实施选项。在使用 IBM Worklight 时,强制用户每 2 周登录一次,您会推荐什么方法?
谢谢!
ibm-mobilefirst - IBM Worklight 6.0.0.1 - Application Authentication
I'm finding the documentation for authentication extremely confusing.
What I'd like to do is to have the very first page in my mobile application be a login page. Here I would like the user to enter their username and password and then I use that to authenticate to the server. I don't want to authenticate against an adapter but rather against the application.
I thought if I put a test against the common code in the application-descriptor.xml file like this <common securityTest="BasicAuthTest"/>
I could protect the app.
In the authenticationConfig.xml I have
and also in the realms section
and finally in the loginModules section
However I get the error
I don't know what this missing shared data is. Can anyone enlighten me please?
ps I'm running Worklight v6.0.0.1 Enterprise edition and I have pointed my WL Studio to my WL server that I am running on top of a WebSphere Liberty server v8.5.5
If anyone can point me at a good tutorial for this other than the stuff in the Getting Started that would be great.