Maison développement back-end tutoriel php 如何实现SSO单点登陆?

如何实现SSO单点登陆?

Jun 06, 2016 pm 08:14 PM
sso

可以使用跨域Cookie实现单点登录。步骤:1、未登录用户访问子站a.com进行登录,自动跳转到统一登录页;2、用户在统一登录页进行登录,成功后显示登录跳转页,然后自动跳转回a.com,单点登录完成;4、用户在访问b.com时无需再次登录。

如何实现SSO单点登陆?

单点登录

单点登录(SSO - Single Sign On):对于同一个客户端(例如 Chrome 浏览器),只要登录了一个子站(例如 a.com),则所有子站(b.com、c.com)都认为已经登录。

比如用户在登录淘宝后,跳转到天猫时就已经登录了。

如何实现SSO单点登陆?

方法:使用跨域Cookie实现单点登录

用例步骤

● 未登录用户访问子站 a.com 进行登录,自动跳转到账户中心的统一登录页 account.com/login

● 用户在统一登录页进行登录,登录成功后显示登录跳转页

● 显示登录跳转页后自动跳转回 a.com,单点登录完成

● 用户在访问 b.com 时无需再次登录

实现原理

登录

● 统一登录页登录请求完成后响应为登录跳转页

● 登录跳转页中通知各子站进行登录

<script src='b.com/login?uid=xxxx&token=xxxxx'></script>
<script src='c.com/login?uid=xxxx&token=xxxxx'></script>
Copier après la connexion

● 子站收到登录请求后验证 token 是否有效,有效的话在响应中设置 cookie(user_token=xxxx)

token 验证

● 账户中心使用私钥加密 user id,生成 token

● 子站使用公钥解密 token,将得到的 user id 和参数 uid 对比,如果一样就是校验通过

登出

● 用户在某个子站主动登出时跳转到账户中心统一登出页 account.com/logout?uid=xxxx&token=xxxx

● 账户中心验证 token 后进行登出,在登出跳转页中通知各子站进行登出(设置 cookie),类似登录通知

● 子站收到登出请求后验证 token 是否有效,有效的话在响应中设置 cookie(删除 user_token)

关键点

● 浏览器渲染登录跳转页时将执行上面用 <script> 发送的登录通知请求,执行完后(或者超时)才跳转回前面登录的子站

● 登录通知请求是跨域的(当前域是账户中心 account.com),所以在响应中设置 cookie 时 IE 某些版本需要设置 P3P 头

● 在验证 token 时可以考虑使用账户中心提供高性能的验证接口,子站进行调用

更多相关知识,请访问 PHP中文网!!

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

Article chaud

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

Article chaud

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

Tags d'article chaud

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 implémenter une authentification unique SSO efficace et stable

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

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

Discutez de la sécurité et de la prévention des vulnérabilités de l'authentification unique PHP SSO

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

Parlons de la façon de mettre en œuvre l'authentification unique (SSO) basée sur Node

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

Pratique de conception d'un système d'authentification unique SSO basé sur Swoole

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

Dernières bonnes pratiques pour Java JAAS

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 PHP SSO dans l'intégration multi-systèmes

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

Compréhension approfondie du principe de fonctionnement et du mécanisme technique de l'authentification unique PHP SSO

See all articles