In unserer aktuellen Situation hat unsere webbasierte Anwendung (SP) bereits SSO mit der Spring Security SAML-Erweiterung integriert. Unser Produkt ist ein SaaS und wir haben verschiedene Kunden, die möglicherweise verschiedene IDPs (Identity Providers) an ihrem Ende konfiguriert haben. Jetzt versuchen wir SSO-Unterstützung für unsere mobile Anwendung bereitzustellen.Was ist die beste SSO-Lösung für eine native mobile App, die mehrere IDPs unterstützen kann?
Nach einiger Suche habe ich über drei mögliche Lösungen kommen, die ich realisieren konnte:
1) eine Webansicht Mit: Wenn SAML für einen Client aktiviert ist, die mobile App wird Webansicht einbetten der rendert die IDP-Anmeldeseite beim Öffnen der mobilen App. Eine URL auf der SP-Seite wird ausgelöst, die eine SAML-Umleitung zurück zum IDP auslöst. Somit führt die Webansicht den SP-initiierten Login-Ablauf aus. Da die Webansicht den Cookie-Bereich jedoch nicht verwendet, muss sich der Benutzer bei jedem Abbruch der App oder jedem Ablauf der Sitzung bei der App anmelden. Da es sich bei Webview nicht um einen Browser handelt, habe ich gelesen, dass Edge-Cases während der HTTP-Weiterleitungen möglicherweise nicht behandelt werden.
2) Verwenden der nativen SSO-App: IDPs stellen im Allgemeinen eine native SSO-App bereit, über die sich mobile Apps bei IDP anmelden können. Die mobile App kann über IDs, die vom jeweiligen IDP bereitgestellt werden, mit der nativen IDP-Anwendung interagieren. Aber da unsere mobile App in der Lage sein sollte, SSO für viele IDPs zu unterstützen, müssen wir uns möglicherweise mit mehreren Native SSO-Apps für jeden IDP integrieren. Ich bin mir nicht sicher, ob dies eine plausible in unserem Szenario
3) Mit OAuth und SAML: Dritte Option ist OAuth Unterstützung unserer mobilen App hinzuzufügen. IDPs wie Salesforce unterstützen OAuth bei der Autorisierung mobiler Apps. Ich bin mir jedoch nicht sicher, ob alle IDPs OAuth unterstützen und wie schwierig es ist, OAuth und SAML für mobile Apps zu implementieren.
Kann mir jemand sagen, welcher Ansatz im obigen Szenario vorzuziehen ist oder gibt es bessere Ansätze, die ich nicht berücksichtigt habe? Irgendwelche Vorschläge?
Vielen Dank!
Haben Sie das herausgefunden? Ich würde gerne wissen, zu welchem Ergebnis du gekommen bist? – Mark
Wo können Sie dieses Problem lösen? – swapab
@Mark Ich habe das gleiche versucht, was Anders vorgeschlagen und gelandet ist http://stackoverflow.com/questions/42486871/behaviour-of-mobile-app-browsers-with-google-sessions-and-account-chooser –