it-swarm.com.de

Warum leiten Websites mit einem Single-Sign-On-System auf einen Anmeldebildschirm um?

Warum haben Websites wie Google/Youtube eine Weiterleitung zu einem Anmeldebildschirm für ihre Single Sign-On-Systeme? Ist das eine Industriepraxis?

6
brakes

Dies geschieht hauptsächlich aus technischen Gründen. Aus dem gleichen Grund besteht der Standardmechanismus für ASP.NET-Websites darin, eine eigenständige Anmeldeseite mit einer Umleitung nach einer erfolgreichen Anmeldung an den Ort zu haben, an dem sich der Benutzer befand.

Das Einbetten des Anmeldeformulars auf jeder Seite ohne Umleitungsmechanismus weist mehrere Probleme auf:

  • Sie senden das Anmeldeformular für jede Seite, wodurch jede Seite länger wird (in Bezug auf übertragene Bytes von HTML-Daten). Ein Link zu einer Anmeldeseite ist viel kürzer.

  • Das Ein- und Ausblenden des Anmeldeformulars beim Klicken erfordert JavaScript. Für Personen mit deaktiviertem JavaScript muss eine bestimmte Version erstellt werden. Das Formular muss auch bei fehlgeschlagener Anmeldung angezeigt werden (um einen Fehler anzuzeigen).

  • Wenn das Anmeldeformular als "umschaltbares" kleines Rechteck in der oberen rechten Ecke der Seite angezeigt wird, haben Sie bei fehlgeschlagener Anmeldung nicht genügend Platz für beschreibende Fehlermeldungen.

  • Wenn die Seite selbst andere Formulare hat, dürfen sie nicht dieselben Feldnamen haben wie die Felder, die für den Benutzernamen und das Kennwortfeld verwendet werden.

UX-weise ist der Unterschied zwischen einer eigenständigen Anmeldeseite und einem Anmeldeformular in der Ecke jeder Seite nicht zu groß. Darüber hinaus können Sie auf einer eigenständigen Anmeldeseite zusätzliche Informationen anzeigen und viel aussagekräftigere Fehlermeldungen erhalten.

4

Gute Frage! Es gibt tatsächlich einen sehr großen Grund für die Weiterleitung.

Bei der einmaligen Anmeldung wird der Benutzer an den Authentifizierungsanbieter weitergeleitet, der die eigentliche Authentifizierung durchführt. Diese Anmeldeseite wird beim Anbieter gehostet. Bei Authentifizierung sendet der Anbieter den Benutzer mit einem Authentifizierungstoken/Ticket an den Verbraucher zurück.

Der Grund dafür ist, dass der Verbraucher keinen Zugriff auf die zugrunde liegenden Systeme hat, die zur Authentifizierung des Benutzers erforderlich sind, und auch nicht die Berechtigungsnachweise des Benutzers erhalten darf.

12
kroehre

Dies ist kein Usability-Problem, sondern dient der Sicherheit.

Aus UX-Sicht wäre die bessere Lösung wahrscheinlich die Verwendung eines Dialogfelds mit eingebettetem HTML, das vom Drittanbieter bereitgestellt wird (dh ein HTML-Modal). Der einzige Grund, warum dies nicht möglich ist, ist die Sicherheit. Wenn der Authentifizierungsdialog auf der anfragenden Site ausgeführt wird, kann ein schädliches Skript auf dieser Seite Ihr Kennwort stehlen oder seine eigene App auf versteckte Weise autorisieren.

Authentifizierungsanbieter (Google, Facebook usw.) könnten einen Iframe auf der Website verwenden, der (zumindest in nicht sehr alten Browsern) verhindert, dass Code auf der Host-Seite auf den Iframe zugreift (z. B. um Ihr Passwort zu stehlen) Die Sicherheitslücke besteht darin, dass die Host-Seite visuelle Elemente über dem Iframe überlagern kann, um ihn als etwas anderes zu tarnen (z. B. angeforderte Berechtigungen der App ausblenden, indem ein weißes Quadrat darüber gelegt wird usw.).

Daher ist die einzige Möglichkeit, um sicherzustellen, dass die anfordernde Website mit Ihrem Google/Facebook/etc-Konto nichts Bösartiges anrichten kann, (leider) eine Weiterleitung (oder ein Popup, was schlimmer ist).

3
Benja