Ich habe drei verschiedene Websites, die ich auf drei verschiedenen Top-Level-Domains betreibe. Ich möchte, dass Benutzer sich bei einem von ihnen anmelden und dann automatisch bei allen drei angemeldet werden. Als zusätzliche Anforderung möchte ich, dass der Benutzer mein eigenes Anmeldesystem oder ein System eines Drittanbieters seiner Wahl (z. B. Facebook) verwenden kann.
Kann mich jemand darauf hinweisen, die Dokumentation zu einem "Standard" -Verfahren zu löschen? Alles, was ich gelesen habe, deutet darauf hin, dass der Versuch, meine eigene Lösung zu schreiben, eine schlechte Idee wäre. SAML scheint eine mögliche Richtung zu sein, also habe ich versucht, mit SimpleSamlPhp zu spielen , aber ich konnte mich nicht darum kümmern (bessere Beispiele als das, was sie in ihrer Dokumentation haben, könnten helfen).
Was ist der beste Weg, um dies zu erreichen?
quelle
Antworten:
Ich würde vorschlagen, Open Id für die einmalige Anmeldung zu verwenden. Es wird am häufigsten unterstützt.
Benutzer können sich mit ihren Google- oder Yahoo-Konten anmelden. Diese Seite enthält eine Liste der größten Account-Anbieter für offene IDs. Sie können auch Ihren eigenen Open ID-Anbieter erstellen, wie dies bei StackExchange der Fall ist.
Es gibt zwei Nachteile:
Ich beschränke Benutzer, die sich auf meiner Website anmelden, darauf, nur ihr Google-Konto zu verwenden. Ich habe festgestellt, dass weniger Nutzer durch die Anmeldung bei Google ausgeschaltet werden als durch die Auswahllähmung, wenn sie durch Optionen dargestellt werden. Wenn ich auf meiner Seite einen einzigen Anmeldelink habe, der sie nur zu Google führt, wird der Anmeldefluss für meine Nutzer viel einfacher und einfacher.
quelle
Eine andere Möglichkeit zum Einrichten von SSO ist die Verwendung eines zentralen Authentifizierungsdienstes , der ursprünglich aus Yale stammt.
Dies kann die automatische Anmeldung bei einer Site ohne einen Autorisierungsschritt an jeder Site ermöglichen. Ihre Benutzer würden sich einmal beim CAS-Server anmelden und bei ihrem Besuch auf allen Websites authentifiziert werden.
Für die meisten Sprachen gibt es vorab geschriebene Module, und mehrere Content-Management-Systeme können CAS für SSO verwenden.
quelle
Ein Freund von mir hat eine Firma namens CryptoKey gegründet, die den Ansatz verfolgt, persönliche Sicherheitszertifikate für Benutzer zu generieren, die in den meisten Webbrowsern installiert werden können. Ich habe es getestet und es ist kein Bestätigungsschritt erforderlich, damit eine Website Ihre Identität sehen und überprüfen kann. Nach der Installation ihrer Authentifizierung werden Benutzer einfach bei allen Ihren Websites angemeldet.
Der Nachteil dieses Systems besteht darin, dass es für Benutzer viel schwieriger ist, ihr Zertifikat zu installieren, als nur ein Kennwort zu erstellen.
quelle
Sie sollten in der Lage sein, Anmeldungen für mehrere Domänen freizugeben, indem Sie:
Um dies auf diese Weise zu tun, sind viel Codierung und viel zu viele Variablen erforderlich, um diesen Code genau verwenden zu können. Sie sollten jedoch in der Lage sein, ein wenig über das Teilen von Cookies über mehrere Domänen hinweg zu recherchieren, die auf verschiedenen Servern gehostet werden . Es gibt tatsächlich viele Websites mit detaillierten Informationen darüber, wie dies erreicht werden kann. Dies scheint Ihre beste Route zu sein, wenn Sie Bestätigungen usw. vermeiden möchten.
quelle