Sina SSO-Anmeldeprozessanalyse

巴扎黑
Freigeben: 2023-03-02 17:44:01
Original
1270 Leute haben es durchsucht

Kürzlich habe ich den Anmeldeprozess von Sina CAS untersucht und festgestellt, dass Sinas SSO tatsächlich Yale-CAS implementiert und ein paar neue Dinge hinzufügt. Der grundlegende Interaktionsprozess des Authentifizierungsprozesses bleibt unverändert. Seine Originalität liegt in der Implementierung des Ajax-Single-Sign-Ins, was ziemlich beeindruckend ist. Das Implementierungsprinzip ist die Rückruffunktion iframe + JavaScript.

1. Junior SSO

Basic SSO besteht darin, eine einheitliche Anmeldung unter demselben Top-Level-Domainnamen zu realisieren, indem das Cookie des Top-Level-Domainnamens platziert wird. Zum Beispiel:

Single-Sign-On-Adresse: sso.xxx.com/login.jsp

Anwendung 1: web1.xxx.com/login.jsp

Anwendung 2 : web2 .xxx.com/login.jsp

Anwendung 3: web3.xxx.com/login.jsp

Anmeldevorgang:

Situation 1: (Der Benutzer hat nie angemeldet)

1, Benutzer greift auf web1.xxx.com/login.jsp zu, web1 leitet zu sso.xxx.com/login.jsp weiter

2, Überprüfung der Benutzereingabe, erfolgreich. sso.xxx.com implantiert die Token-ID des .xxx.com-Domänencookies und leitet zu web1.xxx.com/login.jsp weiter. web1.xxx.com greift auf die Token-ID des .xxx.com-Domänencookies zu, um festzustellen, ob dies der Fall ist angemeldet, und das System meldet sich bei Fertig stellen an.

Situation 2: (Der Benutzer hat sich bereits angemeldet) Melden Sie sich direkt an.

Zweitens realisiert Sina SSO

Sina realisiert eine einheitliche Anmeldung über Domänennamen hinweg, die im Wesentlichen auf Cookies basiert. Wenn der Benutzer Cookies deaktiviert, kann er sich trotzdem nicht anmelden. Beispiel: Der Sina-SSO-Server ist login.sina.com.cn/sso/login.php

und die Weibo-Anmeldeadresse ist weibo.com/login.php. Die Anmeldung über Domänennamen der ersten Ebene hinweg wird durch Rückruffunktionen und Iframes erreicht.

Der spezifische Ablauf des Authentifizierungsprozesses: Hier stellen wir nur Benutzer vor, die sich noch nie angemeldet haben.

1, Der Benutzer gibt weibo.com/login.php ein

2, Der Benutzer gibt den Benutzernamen ein. Nachdem die Eingabe abgeschlossen ist und der Fokus des Benutzernamen-Eingabefelds verloren geht, sendet die Seitennummer über Ajax eine Anfrage an den Server login.sina.com.cn/sso/prelogin.php, und der Parameter ist user (der Benutzername). gerade eingegeben). Der Dienst gibt Serverzeit und Nonce-Authentifizierung zurück, die über die Rückruffunktion in Javascript-Variablen geschrieben werden.

3. Der Benutzer gibt das Passwort ein, klickt, um sich anzumelden, und die POST-Anfrage der Seite (beachten Sie, dass es sich um eine Ajax-Anfrage handelt, die nicht von login.php gesendet wird),

login.sina .com.cn/sso/login .php?client=ssologin.js(v1.3.12), die durch die Anforderung initiierte Seite ist eine unsichtbare Iframe-Seite in weibo.com/login.php, die Parameter sind Serverzeit und erhaltene Nonce im zweiten Schritt den Benutzernamen und das verschlüsselte Passwort. Kehren Sie zum gesetzten Cookie-TGT unter login.sina.com.cn zurück. Ändern Sie gleichzeitig die Iframe-Adresse in weibo.com/ajaxlogin.php?ticket=XXXXXX. Beachten Sie, dass das Ticket sehr wichtig ist.

4. iframe besucht weibo.com/ajaxlogin.php?ticket=XXXXXX, der Benutzer meldet sich an und gibt ein unter .weibo.com platziertes Cookie zurück, um die Anmeldeinformationen des Benutzers aufzuzeichnen.

5. Besuchen Sie weibo.com/login.php erneut über js. Da das Cookie geschrieben wurde, ist die Anmeldung erfolgreich und der Server sendet 302 und leitet zur Homepage des Benutzers weiter. Weibo.com/userid .

6, An diesem Punkt ist der Anmeldevorgang abgeschlossen.

Wichtige Punkte: Analyse des Interaktionsprozesses und des Passwortverschlüsselungsalgorithmus.


Verwandte Etiketten:
sso
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!