4 Stimmen

Multi-Site-Anmeldung à la Google

Nicht sicher, ob der Titel für die Frage ganz richtig ist, aber mir fällt keine andere Möglichkeit ein, es auszudrücken..

Angenommen, Sie möchten mehrere verschiedene Web-Apps erstellen, aber Sie möchten, dass ein Benutzer, der bei einer App angemeldet ist, direkt zu Ihrer anderen App wechseln kann, ohne sich erneut anmelden zu müssen (vorausgesetzt, er hat auch die Berechtigungen, die andere App anzusehen). Wenn ich mich nicht irre, können Sie, wenn Sie bei Gmail angemeldet sind, ohne sich erneut anzumelden direkt zu Ihrem iGoogle, Google Reader usw. gehen (wenn Sie es richtig eingerichtet haben).

Wie würden Sie das angehen? Was würden Sie verwenden? Gehen Sie davon aus, dass die Apps bereits vorhanden sind und Sie die ursprüngliche Login-Seite nicht für die Benutzer ändern möchten.

6voto

dpan Punkte 5332

Was du suchst, heißt Single Sign-On. Wenn du dem Link folgst, findest du mehrere Implementierungen.

OpenID wie von anderen erwähnt ist kein solches System, da es für jede Seite einen separaten Login erfordert. OpenID ist lediglich ein gemeinsames Authentifizierungssystem.

3voto

Paul Dixon Punkte 286600

Sie würden ein Cookie gegen foo.com ausstellen, das dann auf app1.foo.com, app2.foo.com sichtbar wäre.

Jede Anwendung kann das Cookie dann verwenden, um auf ein zentrales Authentifizierungssystem zuzugreifen.

3voto

Philip Tinney Punkte 1936

Probieren Sie CAS aus, es sollte die Funktionen bieten, nach denen Sie suchen.

2voto

Franci Penov Punkte 73239

Was du brauchst, ist ein Single Sign-On (SSO).

Es gibt zwei Ansätze zur Lösung dieses Problems:

  1. Erstelle deine eigene Implementierung. In ihrer banalsten Form kann sie umgesetzt werden, indem die erste Website ein Cookie setzt, das das Ticket für den angemeldeten Benutzer enthält, und die zweite Website dieses Ticket überprüft und den angemeldeten Benutzer akzeptiert. Hier gibt es viele potenzielle Fallstricke:

    • du musst dich gegen Informationspreisgabe schützen - stellen sicher, dass das Ticket nicht die tatsächlichen Benutzeranmeldeinformationen enthält
    • du musst dich gegen Spoofing schützen - ein "Mann in der Mitte", der ein gültiges Ticket stiehlt und sich als einer deiner Benutzer ausgibt
    • und andere
  2. Adoptiere einen SSO-Mechanismus eines Drittanbieters. Google, Microsoft, Facebook und andere große Unternehmen ermöglichen die Integration mit ihren Identitätsanbietern, sodass sich deine Benutzer auf ihrer Website anmelden können und sie die Überprüfung, Ticketausstellung usw. übernehmen. Es gibt auch OpenID, ein offenes Protokoll, das du verwenden kannst, um SSO auf deiner Website über praktisch jeden Identitätsanbieter, der OpenID unterstützt, zu ermöglichen. Der potenzielle Nachteil hierbei ist, dass jemand anderes den Zugriff auf die Benutzeridentität kontrolliert und die Funktionen begrenzen kann, die du deinen Benutzern anbieten kannst, sowie die Daten, die du für sie sammeln kannst.

0voto

Mitchel Sellers Punkte 60318

Wie bereits erwähnt, können Sie etwas wie OpenID oder ähnliches verwenden, um den Prozess zu vereinfachen. Andernfalls könnten Sie, wenn Sie Ihre eigenen Lösungen entwickeln, ein Cookie verwenden, um den Login zu speichern. Dann müssen grundsätzlich ALLE Anwendungen einen Einstiegspunkt haben, der die Basis-URL nachahmt.

Google verwendet beispielsweise mail.google.com als Pipeline für Gmail, was es ermöglicht, ein Cookie zu lesen, das mit der google.com-Domäne gespeichert ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X