2017-04-07 2 views
4

Es handelt sich nicht um Platzhalterdomänen. Es geht um die Notwendigkeit, die Valid OAuth Redirect URIs auf Facebook Login ganz anderen Domains hinzuzufügen.Facebook-Anmeldung ohne gültige OAuth-Weiterleitungs-URIs

Wir haben eine Web-App, wo unsere Kunden ihre eigene benutzerdefinierte Domain einrichten können (example.com, xyz.net, etc). Wir wissen nicht, welche Domains verwendet werden.

Auf Facebook haben wir eine einzige App, die sich um den Facebook-Login kümmert. Es scheint, dass wir speziell jede Domain, die den FB-Login verwendet, auf die weiße Liste setzen müssen.

Das manuelle Hinzufügen der Domänen ist keine Option. Welche Möglichkeiten haben wir?

Danke.

+0

_ "Das Hinzufügen der Domains ist keine Option. Welche Möglichkeiten haben wir? "- nur die Option zu akzeptieren, dass dies nicht möglich ist. – CBroe

+1

Warum es keine gute Idee ist, um damit zu beginnen, skizzierte ich hier: http://stackoverflow.com/a/34952548/1427878 – CBroe

Antwort

1

Die einfachste Lösung, die ich mir vorstellen kann, ist die Verwendung eines Intermediate-Identity-Service mit einer sehr laxen Umleitung-Uri-Validierung. Es gibt einen good discussion dieses Ansatzes und einige der Sicherheitsbedenken damit in Bezug auf IdentityServer4.

Ich habe benutzerdefinierte Umleitung uri Validierung für einen Identitätsdienst vor, aber nur für sehr restriktive Fälle verwendet, da dies eine der am meisten ausgenutzten Schwachstellen in einem OAuth-Fluss ist. Die Flexibilität, die Sie benötigen würden, würde die Sicherheit erheblich schwächen.

Um es in IdentityServer4 zu implementieren, würden Sie Facebook-Authentifizierung auf dem Identitätsserver einrichten und die Adresse des Identitätsservers bei Facebook registrieren. Sie würden dann Clients erstellen, um Ihre neuen Domänen zu repräsentieren. Dies könnte ein einzelner Client für alles sein (was die Dinge noch unsicherer macht) oder Sie könnten Ihren Clients eine Möglichkeit geben, sich beim Identitätsserver zu registrieren (zum Beispiel dynamic client registration).

Wenn ein Client eine Verbindung zu Facebook herstellen möchte, verwendet er Open Id Connect, um eine Verbindung mit dem Identitätsserver herzustellen, der dann mit Facebook kommuniziert. In IdentityServer4 würde der Client dafür eine Middleware mit UseOpenIdConnectAuthentication (see here for an example) hinzufügen.

Lange Geschichte sollten Sie Ihr Problem beheben können, indem Sie einen Zwischenidentitätsdienst verwenden. Der Identitätsservice ist die einzige URL, die bei Facebook registriert werden muss und Ihre Kunden werden sich bei Ihrem Identitätsservice registrieren, über den Sie die Kontrolle haben.

Mit großer Kraft kommt aber große Verantwortung. Der Weg des geringsten Aufwands führt zu einer Lösung, die die Sicherheit erheblich senkt. Die Durchsetzung einer sicheren dynamischen Registrierung mit dem Identitätsdienst wie dynamic client registration protocol ermöglicht es Ihnen, eine einzige strikte Redirect-URL pro Client zu verwenden und Ihr System ungefähr so ​​sicher zu machen, wie Sie es vernünftigerweise erhalten können.