我開發有(直到現在)一個科爾多瓦的應用程序使用的密碼贈款,以獲取來自微軟的標準的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