Welche Lösungen gibt es, um eine Formauth mit einer OAuth-Authentifizierung zu kombinieren?
Es gibt eine Website, wo sich ein Benutzer mit einem Benutzernamen und Passwort einloggen würde und nachdem er auth ist, wird ein Token zur Verfügung gestellt, der den Zugriff auf verschiedene Ressourcen in der App für eine gewisse Zeit.
Jetzt möchte der Product Owner Facebook / Twitter / ... Auth.
Wir machen das tatsächlich bei unserem Projekt. Die Lösung war wirklich einfach. Hier waren die wichtigsten Punkte
Andere Dinge zu beachten:
Nun, ich denke, das ist ein wichtiger Punkt: Normalerweise verwenden Sie bei Anbietern wie Facebook und Twitter den Autorisierungsfluss, was bedeutet, dass Sie ihr Formular verwenden müssen, um sich anzumelden. Sie gehen damit um, nicht du. Es gibt einen Benutzernamen / ein Passwort "option" (grant_type: password) mit OAuth 2.0, aber ich weiß nicht, ob diese Provider es zulassen, da dieser Flow die Anwendung nicht benötigt, um sich zu identifizieren.
Ich denke, Sie haben es ziemlich gut verstanden. Der Ablauf der Autorisierungsgewährung würde etwa so aussehen:
Der Ablauf für die Passwortvergabe wäre ziemlich gleich, aber ohne die Schritte Weiterleitung und Autorisierung. Sie würden sich einfach mit Ihrem eigenen Formular anmelden und den Server dazu veranlassen, die Authentifizierungsanfrage an den Provider zu stellen, indem Sie den Passwort-Berechtigungstyp verwenden.
Wenn Sie es nur für die Authentifizierung verwenden, würden Sie mit diesem bestimmten Zugriffstoken keine Anfrage an seinen Ressourcenserver stellen. Ich müsste mehr über Ihre Architektur wissen, um mehr zu sagen. Wenn Sie jedoch einen internen Identitätsanbieter haben, der Rollen und Identität verarbeitet, können Sie einen Anbieter für Verbundidentitäten in Betracht ziehen, der Token von Drittanbietern in Ihr internes Format umwandeln und zusammen mit dem Token von Drittanbietern speichern kann. Auf diese Weise können Sie bei Bedarf noch Anfragen an die Drittpartei stellen und haben immer noch das, was Sie benötigen, um sich intern zu bewegen, wenn das sinnvoll ist. Wenn das überhaupt ein Problem ist, lassen Sie es mich wissen und ich werde das Bein auch erklären.
Forms auth stellt dem authentifizierten Benutzer normalerweise einen Cookie zur Verfügung. Sie können also dasselbe tun und genau den gleichen Cookie senden, den auth gesendet hätte.
Bei erfolgreichem OAuth-Rückruf vom Anbieter können Sie also Folgendes tun:
%Vor%Mit der GetFormsAuthCookie-Methode wie folgt definiert:
%Vor%Tags und Links oauth twitter-oauth authentication oauth-2.0 facebook-oauth