2009-03-13 3 views
5

Kann eine Kombination von Authentifizierungssystemen in einer Web-App verwendet werden?Authentifizierungskombination OpenID & Facebook

Ich möchte OpenId verwenden, aber ich denke, meine potenziellen Kunden haben eher eine Facebook ID.

Daher frage ich mich, ob es möglich ist, beide Arten der Authentifizierung anzubieten?

+0

Natürlich ist es möglich, wenn Sie es von Grund auf neu erstellen - fragen Sie, ob es innerhalb eines bestimmten Rahmens möglich ist? –

Antwort

2

Für fast jede Sprache sollte es ein Framework geben! Sie können die Funktionalität dieser Frameworks verketten und an Ihre Bedürfnisse anpassen!

In Pseudo-Code:

if(IsUserValidViaOpenId() || IsUserValidByOwnAuthDB()) ... user auth successful 

Wenn Sie Java verwenden, Acegi/Spring Security vielleicht die beste Art und Weise (Security, die nicht Invers wird - über AOP) sein. Dort können Sie openID verwenden und einen eigenen zweiten Validator für Ihre eigene userdb definieren!

0

So etwas wie dies in der Form Verarbeitungslogik:

def authenticate(form_info): 
    url = form_info['url'] 
    if (is_facebook_url(url)): 
     return perform_facebook_authentication(form_info) 
    else: 
     return perform_open_id_authentication(form_info) 
2

Sie wollen RPX. Es abstrahiert das ganze Durcheinander von OpenID von Ihnen und Ihren Besuchern. Außerdem können sie sich zusätzlich zu den OpenID-Anbietern mit Facebook oder MySpace authentifizieren.

Es bietet eine Login-Schnittstelle sehr ähnlich zu dem, was Sie hier auf Stack Overflow sehen.

+0

Das ist ziemlich cool - ich könnte es in meinem nächsten Projekt ausprobieren. Vielen Dank! –

+0

ordentlich! sieht wie ein möglicher Sieger aus ... –

+3

Und es macht Sie auch völlig abhängig von einer einzelnen externen Quelle für alle Ihre Benutzerauthentifizierung. Bitte lesen Sie die Argumente unter http://blog.nerdbank.net/2009/01/why-using-rpxnow-is-bad-idea.html, bevor Sie entscheiden, ob Sie es verwenden möchten. –