Ich entwickle eine Cordova App, die (bis jetzt) verwenden ein Passwort Erteilung abrufen JWTs von der Microsoft-Standard OAuth-Anbietern in Azure:Azure MFA in Cordova App, die JWT OAuth 2.0 verwendet Token
https://login.microsoftonline.com/[tenant]/oauth2/token
Es funktioniert fein. Wir öffnen jedoch unsere Anwendung für externe Händler, und der Eigentümer möchte, dass MFA hinzugefügt wird.
Also, ich habe einen MFA-Anbieter in Azure erstellt, ich habe ein Testkonto für MFA aktiviert.
Ich öffne gerade die Redirect-Anfrage mit dem InAppBrowser-Plugin - das scheint zu funktionieren - es öffnet sich auf die Login-Seite, es Texte, ich lege den Code ein, und dann vervollständigt die Anmeldung auf dem "Anwendungen" Splash-Bildschirm (Standard-Azure-Anmeldung für Benutzer).
Mein Problem identifiziert, dass Login erfolgreich war, und Abrufen von JWTs. Wegen der MFA, jetzt der Anmelde-Server die folgende „MFA“ Fehler auf Erstanmeldung (nicht wirklich ein Fehler) zurückgibt:
interaction_required
Sobald jedoch MFA abgeschlossen ist, habe ich keine Ahnung, wohin sie gehen, um meine Token/Aktualisierungstoken. Wenn ich die Anmeldung erneut absende, wird nur eine "interaction_required" -Nachricht zurückgesendet, auch wenn "Während des MFA-Prozesses nicht erneut nach [X] Tagen fragen" ausgewählt ist.
Ich hoffe, das Problem ist klar. Lass es mich wissen, wenn nicht und ich werde es bei Bedarf überarbeiten.
Ich verwende derzeit keine ADAL oder Cordova Plugins zur Authentifizierung. Ich treffe die Endpunkte alleine. Die Antwort könnte sein, dass ich ADAL benutzen muss.
Ich glaube, dass das Problem von der Tatsache herrührt, dass InAppBrowser localStorage nicht mit meiner App teilt.Sobald InAppBrowser geschlossen wird, gehen seine Cookies außer Reichweite und werden zerstört. Zumindest führt mich die aktuelle Forschung an. Ich werde herausfinden müssen, wie ich direkt mit dem MFA-Provider über eine XMLHttpRequest (oder ADAL oder so etwas) sprechen kann. – Aaron