我正在使用PhoneGap框架开发移动应用。对于项目的下一部分,我需要允许用户通过公司的Windows 365帐户进行身份验证。为此我使用Azure AD,the following AngularJS based library.
我已经成功使用localhost进行身份验证调用。但是,对于下一步,我需要在所有移动设备上进行身份验证。为此,我需要设置一个正确的Uri(s),默认情况下Android似乎提供了一个文件:/// android_asset / template。虽然Azure AD似乎将此视为“有效”URI,但它拒绝进行身份验证。
所以归结为我的问题。如何设置有效的Uri以便在移动设备上实现身份验证?
其他信息: PhoneGap是HTML5和基于javascript的 - 如果任何JS或Jquery类能够在这个问题上提供帮助,请随时转发它们。正在使用的其他库是Jquery Mobile和AngularJS。 (虽然后者几乎只用于执行身份验证)this是我基于身份验证的示例。
答案 0 :(得分:0)
ADAL js不适用于Cordova。为此我们有一个Cordova插件,可以更好地利用设备资源。请查看http://www.cloudidentity.com/blog/2015/04/06/adal-plugin-for-apache-cordova-deep-dive/,如果符合您的需求,请告诉我们。
答案 1 :(得分:0)
经过一些进一步的研究,我设法找到了身份验证问题的解决方案。通过Azure进行身份验证的问题是Azure期望有效的返回uri。我起初考虑过实现一个自定义网址方案让它返回,但这也被认为无效。
所以我们看了更多的选择。看来Azure确实提供了可以在应用程序本身内进行身份验证的移动服务。但是,我们希望尽可能具有成本效益。我建议,如果你面临类似的问题,首先要研究它们,但这就是我们没有做到的。我希望有人觉得它很有用。
我使用的方法是在公司的网站上执行身份验证。整个过程由四个HTML页面组成 - 2用于登录,2用于注销。 (当然还有必要的JS文件 - 请参阅问题。)
当浏览到其中一个页面时,您会立即被重定向到Windows 365以进行身份验证。登录后,您将被重定向到提供应用程序所需信息的页面。 (但隐藏)注销时使用了类似的过程。
这个难题的最后一步是让应用程序转到此页面,然后检测身份验证何时完成。为此,我使用了cordova插件,inappbrowser。 https://github.com/apache/cordova-plugin-inappbrowser
基于事件网址,我可以让应用程序检测身份验证完成时(或注销完成)并采取相应措施。