我们使用 ionic-cordova 框架为客户开发了一个移动应用程序。该应用程序是时间跟踪系统的简单前端,我们使用 ionic 本机 http 客户端调用 REST API。REST API 托管在客户基础设施上,应用程序必须使用证书对其进行自我身份验证。可以使用用户名和密码来执行此操作。这工作正常,应用程序在没有 sdk 的情况下从 airwatch 外部运行。
客户希望通过“Airwatch / Workspace ONE”部署应用程序,并使用带有用户特定证书的集成身份验证。我们集成了 sdk,它在文档中是如何描述的,删除了所有插件,将 sdk 添加为第一个插件并再次重新添加了其他插件。我们实现了 sdkEventListener 来获取 airwatch 容器状态,这提供了“initSuccess”和正确的用户名。在 android trusmanager 中,我们能够看到证书并验证它的分发。设备上预装了 chrome,可以通过网络浏览器调用 API。Chrome 要求我提供证书。这同样适用于部署的“Workspace ONE - Web”浏览器。
如果我们正在启动应用程序,则请求未经过身份验证。预期的行为是,airwatch-sdk 接管身份验证并自动选择正确的证书或至少启动选择对话框(与 2018 年的较旧应用程序一起使用)。
证书似乎不会被使用。(这就是问题)
在文档中,这是核心功能之一“该插件会在 Android 和 iOS 设备上自动启动,它会自动启动 AirWatch SDK”和“将列出的功能添加到您的应用程序 - 例如集成身份验证/单点登录”。SDK 配置文件相应配置为“带证书的集成身份验证”。
有没有人可以在类似的环境中使用cordova、离子和集成身份验证与证书确认工作的sdk?任何人都可以报告已知问题吗?
任何帮助,将不胜感激。
==================================================== =========
笔记:
在 2018 年的另一个应用程序中,我们为同一客户开发了 ionic 3 应用程序。集成身份验证在旧环境中工作。该应用程序包含在 airwatch 控制台中。现在两个应用程序的包装都失败了。
我们尝试了一些基于cordova-plugin-client-cer-authentication的cordova插件,但没有成功。
我们的客户也在联系支持人员
我们在 vmware 社区论坛上发起了一个类似的话题https://support.workspaceone.com/posts/360038350234
环境:
软呢帽 30
Android SDK 平台工具:29.0.5
Android SDK 工具 26.1.1
android-minSdkVersion 24
离子-cli v5.4
离子/角度4.7.1
角度/核心 8.2.13
科尔多瓦 9.0.0
Airwatch / Workspace ONE 控制台 1903
测试设备:Galaxy A5 (2017) - Android 8.0.0 (API Level 25) VMWare Intelligent Hub v19.11.1.5
离子/科尔多瓦插件:
用于科尔多瓦 v1.5.1 的 airwatch-sdk-plugin
科尔多瓦插件白名单 1.3.3
科尔多瓦插件状态栏 2.4.2
科尔多瓦插件设备 2.0.2
科尔多瓦插件闪屏 5.0.2
科尔多瓦-插件-离子-webview 4.0.0
科尔多瓦插件离子键盘 2.0.5
科尔多瓦插件徽章 0.8.8
科尔多瓦插件高级 http 2.3.0
科尔多瓦插件文件 6.0.2