Single Sign-On SSO (Single Sign On
) vereinfacht gesagt: In einer Umgebung, in der mehrere Systeme nebeneinander existieren, müssen sich Benutzer, nachdem sie sich an einem Ort angemeldet haben, nicht mehr anmelden in anderen Systemen bedeutet das, dass alle anderen Systeme der einzelnen Anmeldung eines Benutzers vertrauen können. Single Sign-On wird sehr häufig auf großen Websites wie Alibaba verwendet. Hinter der Website stehen möglicherweise Hunderte oder Tausende von Subsystemen, wenn für jede Operation eine Benutzerauthentifizierung erforderlich ist Aufgrund der Logik der wiederholten Authentifizierung und Autorisierung wird nicht nur der Benutzer verrückt, sondern auch jedes Subsystem. Letztendlich geht es bei der Implementierung von Single Sign-On darum, zu klären, wie dieses Vertrauen generiert und gespeichert wird und wie andere Systeme dann die Gültigkeit dieses Vertrauens überprüfen. Daher sind die wichtigsten Punkte wie folgt:
1. Vertrauen speichern
2. Vertrauen überprüfen
Solange die oben genannten Probleme gelöst sind und der eingangs erwähnte Effekt erreicht wird, ist dies möglich Man kann sagen, dass es sich um SSO handelt. Der einfachste Weg, SSO zu implementieren, ist die Verwendung von Cookies. Der Implementierungsprozess ist wie folgt:
Es ist nicht schwer herauszufinden, dass die obige Lösung darin besteht, Vertrauen im Cookie zu speichern des Kunden. Obwohl diese Methode einfach zu implementieren ist, werden die Leute sofort zwei Probleme in Frage stellen:
1. Cookies sind nicht sicher
2 -Domain-Anmeldung ist nicht erlaubt
Das erste Problem wird normalerweise durch verschlüsselte Cookies gelöst. Das zweite Problem ist tatsächlich ein Fehler. Die Idee dieser Lösung besteht darin, die Vertrauensbeziehung zu speichern Auf dem Client ist es nicht möglich, nur Cookies zu verwenden, sondern auch die Shared Object API von Flash.
Im Allgemeinen übernehmen große Systeme die Methode zum Speichern von Vertrauensbeziehungen auf der Serverseite. Der Implementierungsprozess ist wie folgt:
Die obige Lösung ist um Vertrauensbeziehungen zu speichern. Die Beziehung wird in einem separaten SSO-System gespeichert (nennen wir es vorerst so). Es wird einfach vom Client auf den Server verschoben, aber es müssen mehrere Probleme gelöst werden:
1. So speichern Sie eine große Menge temporärer Vertrauensdaten
2. So verhindern Sie, dass der Informationsübertragungsprozess manipuliert wird
3. So stellen Sie sicher, dass das SSO-System dem Anmeldesystem und dem Bintang-System vertraut
Für das erste Problem können Sie im Allgemeinen eine verteilte Cache-Lösung ähnlich wie Memcached verwenden, die nicht nur eine Mechanismus zur Erweiterung der Datenmenge, sondern auch für einen effizienten Zugriff. Für die zweite Frage wird im Allgemeinen die digitale Signaturmethode verwendet, entweder durch digitale Zertifikatsignatur oder durch eine Methode wie md5. Dies erfordert, dass das SSO-System die Parameter, die bei der Rückgabe der Anmelde-URL überprüft werden müssen, verschlüsselt und mitbringt Geben Sie das Token zusammen zurück. Wenn das System, das angemeldet werden muss, die Vertrauensbeziehung überprüft, muss das SSO-System durch Überprüfen des Tokens feststellen, ob die Informationen geändert wurden. Das letzte Problem kann durch eine Whitelist gelöst werden. Vereinfacht ausgedrückt können nur Systeme auf der Whitelist Produktionsvertrauensbeziehungen anfordern. Ebenso können nur Systeme auf der Whitelist von der Anmeldung ausgenommen werden.
Für weitere verwandte Fragen besuchen Sie bitte die chinesische PHP-Website: PHP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Beispiele für das Implementierungsprinzip von PHP Single Sign-On. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!