Maison développement back-end tutoriel php Sina SSO 登陆过程分析

Sina SSO 登陆过程分析

Dec 01, 2016 am 11:14 AM
sso

近日研究了 Sina CAS 的登陆过程,发现其实 sina 的 sso 实现了 yale-CAS 并且添加一丁点新的东西,基本认证过程交互流程仍然未变。其独创的一点是实现了 Ajax 单点登陆,算是比较牛。实现原理是 iframe+ javaScript 回调函数。

一,初级 SSO

初级的 SSO ,就是在同一个顶级域名下,通过种入顶级域名的 Cookie ,来实现统一登陆。例如:

单点登陆地址: sso.xxx.com/login.jsp

应用 1 : web1.xxx.com/login.jsp

应用 2 : web2.xxx.com/login.jsp

应用 3 : web3.xxx.com/login.jsp

登陆流程:

情况一:(用户从未登陆)

1,  用户访问 web1.xxx.com/login.jsp , web1 重定向到 sso.xxx.com/login.jsp

2,  用户输入验证,成功。 sso.xxx.com 种入 .xxx.com 域 Cookie 的 tokenid ,重定向到 web1.xxx.com/login.jsp, web1.xxx.com 访问 .xxx.com 域 Cookie 的 tokenid 判断出已经登陆,系统登陆完成。

情况二:(用户已经登陆)直接登陆。

二, Sina SSO

Sina 实现了跨域名的统一登陆,本质也是基于 Cookie 的。如果用户禁用 Cookie ,那么无论如何也是登陆不了的。例如: Sina SSO 服务器是 login.sina.com.cn/sso/login.php

,微博登陆地址为 weibo.com/login.php 。通过回调函数和 iframe 实现了跨一级域名的登陆。

认证过程具体流程:这里只介绍用户从未登陆过。

1,  用户进入 weibo.com/login.php

2,  用户输入用户名称。输入完毕后,当用户名输入框焦点失去的时候,页码通过 ajax 向服务器login.sina.com.cn/sso/prelogin.php 发送请求,参数为 user (刚刚输入的用户名)。服务返回 server time 和nonce 认证,通过回调函数写入到 javascript 变量中。

3,  用户输入密码,点击登陆,页面 POST 请求(注意是 ajax 请求,并不是 login.php 发送的 ),

login.sina.com.cn/sso/login.php?client=ssologin.js(v1.3.12) ,请求的发起的页面是 weibo.com/login.php 中的一个不可见 iframe 页面,参数为第二步得到的 server time 和 nonce ,已经用户名称和加密的密码。返回种入Cookie  tgt 在 login.sina.com.cn 下。同时修改 iframe 地址为 weibo.com/ajaxlogin.php?ticket=XXXXXX, 注意ticket 非常重要,这是用户登陆和服务的凭证。

4,  iframe 访问 weibo.com/ajaxlogin.php?ticket=XXXXXX ,用户登陆,返回种入 cookie 在 .weibo.com 下,记录用户登陆信息。

5,  通过 js 再次访问 weibo.com/login.php ,因为 cookie 已经写入,登陆成功,服务器发送 302 ,重定向到用户主页面。 Weibo.com/userid 。

6,  至此,登陆过程完成。

 

重点:交互过程和密码加密算法分析。


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser PHP pour implémenter une authentification unique SSO efficace et stable Comment utiliser PHP pour implémenter une authentification unique SSO efficace et stable Oct 15, 2023 pm 02:49 PM

Comment utiliser PHP pour obtenir une authentification unique SSO efficace et stable Introduction : Avec la popularité des applications Internet, les utilisateurs sont confrontés à un grand nombre de processus d'inscription et de connexion. Afin d'améliorer l'expérience utilisateur et de réduire les intervalles d'enregistrement et de connexion des utilisateurs, de nombreux sites Web et applications ont commencé à adopter la technologie d'authentification unique (Single Sign-On, appelée SSO). Cet article explique comment utiliser PHP pour implémenter une authentification unique SSO efficace et stable et fournit des exemples de code spécifiques. 1. Principe de l'authentification unique SSO L'authentification unique SSO est une solution d'authentification d'identité

OAuth en PHP : créer une solution SSO multiplateforme OAuth en PHP : créer une solution SSO multiplateforme Jul 28, 2023 pm 09:38 PM

OAuth en PHP : créer une solution SSO multiplateforme Avec le développement rapide d'Internet, il est devenu la norme pour les utilisateurs d'utiliser diverses applications sur plusieurs plates-formes. Cela soulève une question : comment mettre en œuvre l’authentification unique (SSO) entre différentes plateformes ? OAuth (Open Authorization) est devenu un excellent choix pour résoudre ce problème. OAuth est un standard ouvert qui permet aux utilisateurs d'autoriser des applications tierces à accéder à leurs ressources Internet sans partager leurs informations d'identification. OAuth peut être utilisé pour créer un multi-

Discutez de la sécurité et de la prévention des vulnérabilités de l'authentification unique PHP SSO Discutez de la sécurité et de la prévention des vulnérabilités de l'authentification unique PHP SSO Oct 15, 2023 pm 02:36 PM

Sécurité et prévention des vulnérabilités de l'authentification unique PHPSSO 1. Introduction Avec le développement d'Internet, de plus en plus de sites Web ont mis en œuvre des fonctions d'authentification des utilisateurs. Cependant, les utilisateurs doivent saisir leur numéro de compte et leur mot de passe à chaque fois qu’ils se connectent à différents sites Web, ce qui est peu pratique et facile à oublier. Afin de résoudre ce problème, le Single Sign-On (SSO) a vu le jour. SSO est une solution d'authentification de l'identité des utilisateurs sur plusieurs sites Web. Les utilisateurs n'ont besoin de se connecter qu'une seule fois pour accéder de manière transparente aux autres sites Web. 2. PH

Parlons de la façon de mettre en œuvre l'authentification unique (SSO) basée sur Node Parlons de la façon de mettre en œuvre l'authentification unique (SSO) basée sur Node Dec 06, 2022 pm 07:49 PM

Qu’est-ce que l’authentification unique ? Quel est le principe ? Comment y parvenir ? L'article suivant vous présentera l'authentification unique et expliquera comment utiliser Node pour implémenter l'authentification unique. J'espère qu'il vous sera utile !

Pratique de conception d'un système d'authentification unique SSO basé sur Swoole Pratique de conception d'un système d'authentification unique SSO basé sur Swoole Jun 14, 2023 pm 04:08 PM

Avec le développement rapide d'Internet, de plus en plus de sites Web et d'applications doivent mettre en œuvre des fonctions d'authentification unique (Single Sign-On, SSO) pour offrir une expérience utilisateur plus pratique et plus sécurisée. Dans ce contexte, le système d’authentification unique SSO basé sur Swoole est progressivement devenu un sujet brûlant dans l’industrie. Cet article explique comment concevoir et mettre en œuvre un système d'authentification unique SSO basé sur Swoole. 1. Idée de conception du système d'authentification unique SSO L'objectif du système d'authentification unique SSO est de permettre aux utilisateurs de se connecter à un système.

Dernières bonnes pratiques pour Java JAAS Dernières bonnes pratiques pour Java JAAS Feb 23, 2024 pm 10:52 PM

1. Présentation de JAAS JavaJAAS (JavaAuthenticationandAuthorizationService) est un framework pour l'intégration de l'authentification unique (SSO) multisystème, le contrôle d'accès basé sur les rôles (RBAC) et la gestion des autorisations. JAAS permet aux applications de protéger l'accès aux données ou aux ressources et de définir des mécanismes de contrôle d'accès. 2. Les dernières bonnes pratiques de JAAS 1. Utiliser JAAS pour l'authentification JAAS propose deux méthodes d'authentification principales : Authentification basée sur les jetons : Cette méthode utilise des jetons (par exemple, nom d'utilisateur et mot de passe) pour vérifier l'identité de l'utilisateur. Authentification basée sur la certification : cette méthode utilise une certification (par exemple, un certificat numérique) pour vérifier l'identité de l'utilisateur. 2

Cas d'application pratiques de l'authentification unique PHP SSO dans l'intégration multi-systèmes Cas d'application pratiques de l'authentification unique PHP SSO dans l'intégration multi-systèmes Oct 15, 2023 am 11:45 AM

Cas d'application pratiques de l'authentification unique PHPSSO dans l'intégration multi-systèmes Introduction : Avec le développement rapide d'Internet et la croissance des besoins des utilisateurs, de plus en plus de sites Web et d'applications doivent implémenter des fonctions d'authentification unique (SSO) utilisateur. En tant que langage de script côté serveur largement utilisé, PHP est flexible, simple et facile à intégrer, ce qui en fait le premier choix de nombreux développeurs. Cet article présentera une solution d'authentification unique basée sur PHP et démontrera son application dans l'intégration multi-systèmes à travers des cas pratiques. 1. Qu'est-ce que l'authentification unique ?

Compréhension approfondie du principe de fonctionnement et du mécanisme technique de l'authentification unique PHP SSO Compréhension approfondie du principe de fonctionnement et du mécanisme technique de l'authentification unique PHP SSO Oct 15, 2023 am 09:19 AM

Comprendre en profondeur le principe de fonctionnement et le mécanisme technique de l'authentification unique PHPSSO. Avec le développement rapide d'Internet, le nombre de sites Web et d'applications divers augmente également. Afin d'accéder à différents sites Web et applications, les utilisateurs doivent respectivement enregistrer différents comptes et mots de passe, ce qui entraîne des désagréments et des désagréments pour les utilisateurs. Afin de résoudre ce problème, le Single Sign-On (SSO) a vu le jour. SSO est un système d'autorisation et d'authentification qui permet aux utilisateurs d'accéder de manière transparente à plusieurs systèmes après s'être connectés avec succès. Cet article fournira une compréhension approfondie de P

See all articles