2014-12-02 7 views
10

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!

+0

Haben Sie das herausgefunden? Ich würde gerne wissen, zu welchem ​​Ergebnis du gekommen bist? – Mark

+0

Wo können Sie dieses Problem lösen? – swapab

+0

@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 –

Antwort

6

Für mobile Apps denke ich, dass OAuth2 oder OpenID Connect gegenüber SAML bevorzugt wird. Sie funktionieren hervorragend mit mobilen Lösungen.

Sie haben auch die Vorstellung von einem Rückkanal für die Kommunikation mit dem Authentifizierungsserver. Dies bedeutet, dass Sie den Standardbrowser des Geräts sicher starten können, um die Anmeldung durchzuführen und von allen Cookies in diesem Browser zu profitieren. Sobald sich der Benutzer im Browser authentifiziert hat, erhält die Anwendung ein Token vom Rückkanal, auf dem sie den Authentifizierungsserver aufruft.

Wenn Sie nur SAML-IDs haben, besteht die Option darin, einen Identitätsserver für die Übersetzung zu verwenden, der als SAML2 SP und OAuth-Server fungiert.

+0

Vielen Dank für Ihre Antwort . Ich werde OpenID Connect und OAuth 2.0 untersuchen. – abhilash

+0

Ich habe genau das versucht, was Sie vorschlagen, landete aber in zwei Problemen, wenn Sie http://stackoverflow.com/questions/42486871/behaviour-of-mobile-app-browsers-with-google-sessions-and- Kontoauswahl –

Verwandte Themen