我开发有(直到现在)一个科尔多瓦的应用程序使用的密码赠款,以获取来自微软的标准的OAuth提供JWTs天青:使用JWT OAuth的Azure的MFA科尔多瓦应用2.0令牌
https://login.microsoftonline.com/[tenant]/oauth2/token
它的工作原理精细。但是,我们正在向外部交易商开放我们的申请,并且所有者希望添加MFA。
因此,我在Azure中创建了一个MFA提供程序,我已为MFA启用了一个测试帐户。
我目前使用InAppBrowser插件打开重定向请求 - 这似乎工作 - 它打开登录页面,它的文本,我把代码放入,然后它完成登录到“应用程序”初始屏幕(用户的默认Azure登录)。
我的问题是确定登录成功,并检索JWT。由于MFA的,登录服务器都将返回初始登录下面的“MFA”的错误(不是一个真正的错误):
interaction_required
然而,一旦MFA完成后,我不知道去哪里得到我的令牌/刷新令牌。如果我重新提交登录信息,即使在MFA过程中选择了“不再询问[X]天”,它也会发送一条“interact_required”消息。
我希望问题清楚。如果没有,请告诉我,我会根据需要进行修改。
我目前没有使用ADAL或任何cordova插件进行身份验证。我自己打了端点。答案可能是我必须使用ADAL。
我认为这个问题源于InAppBrowser不与我的应用程序共享localStorage。一旦InAppBrowser关闭,其Cookie将超出范围并被销毁。至少目前的研究正在引领我。我将不得不弄清楚如何通过XMLHttpRequest(或ADAL或其他)直接与MFA提供者交谈。 – Aaron