• 单点登录sso


    单点登录常用有3种方式:

    1. 主域名共享cookie

    适用于同域名系统的单点登录。所有的子系统域名共享一个主域名的cookie,这样就可以实现登录一个系统,所有系统登录。

    例如,a1.test.com, a2.test.com, 登录其中一个系统,设置.test.com的cookie,就可以实现其他系统也登录。

    缺点:

    1. 主域名要一致
    2. 如果cookie承载session,则要求所有子系统web容器一致,比如都要使用nginx,不能一个nginx,一个tomcat。

    2. sso站点认证授权

    所有站点的认证,统一到一个sso站点进行,认证成功后,带着token返回来源站点。来源站点,使用token,去sso站点验证,验证成功,则授权登录。

    例如:

    认证站点: sso.com
    系统站点: a.com
    系统站点: b.com

    用户访问a.com,若未登录,则跳转到sso.com,并带上a.com这个来源地址,则给出登录界面,登录成功后,生成一个授权token,保存在sso.com的cookie中,
    通过a.com?token=token返回a.com, a.com拿到token,请求sso.com验证是否有效,有效则授权登录。

    用户访问b.com,同样过程,若a.com已登录,即有未过期的token,则直接b.com?token=token返回,b.com同样验证token有效,则授权登录。
    这样就达到登录一个,其他的也登录的效果。

    3. sso登录写第三方cookie

    在一个站点登录成功后,向一个sso地址或目标站点本身发送jsonp请求,验证成功后,重定向到目标站点,携带参数登录成功后,设置目标站点的cookie。

    重复此过程,是的所有需要登录的站点的cookie都设置完成,多个系统的单点登录就完成了。

    登出过程,一个系统登出成功后,以jsonp请求所有需要登出的系统的登出接口,清理cookie即可。

    详细过程可以参考, 阿里(淘宝、天猫、一淘)、京东SSO分析 

  • 相关阅读:
    常用linux命令
    console页面进去太慢优化
    CentOS7 查看最大线程连接数
    外部ssh连接Ubuntu系统
    Ubantu 防火墙管理
    oracle 闪回
    oracle用户密码过期
    base64编码原理
    Linux 备份数据库mysql
    python静态方法-类方法
  • 原文地址:https://www.cnblogs.com/mengff/p/12909332.html
Copyright © 2020-2023  润新知