• 【无标题】


    1、SSO的整体架构

    (1)sso单点登录系统,承接用户的登录请求
    (2)uuap.core服务。承接具体的认证请求(用户名密码认证、beep认证、token认证、自有账号认证等)
    (3)session服务,用户在线状态查询服务。

    2、uuap认证的基本原理

    p_token:存放在baidu.combaidu-int.com域名下面(浏览器全局共享)。

    s_token:存放在具体的下游系统域名下面(站点私有)

    u_token:存放在uuap.baidu.com域名下面(uuap私有)

     

    3、新版UUAP跟原生CAS的区别

     4、uuap登录的详细流程

    1、用户访问接入uuap的下游系统xx.baidu.com,例如family.baidu.com。

    2、下游系统后端server从cookie中获取pToken及sToken,校验是否同时存在,不同时存在直接重定向用户到uuap登录接口认证。

    pToken:存在于baidu.com(baidu-int.com)域名下,cookie的名字为UUAP_P_TOKEN,线下环境统一为UUAP_P_TOKEN_OFFLINE

    sToken:存在于下游系统的域名下面、该值为uuap认证成功后签发的ticket参数、下游系统获取后将其存入您的域名下,有效期30天、该值通用名称为UUAP_S_TOKEN

    3-1、如果pToken及sToken同时存在,则将pToken、sToken及您的appKey作为参数,发送POST请求到UUAP-SESSION的Session登录校验校验用户是否正常登录,如果正常登录返回登录用户的基本信息,未正常登录则返回状态码204,重定向用户到uuap登录接口认证

    3-2、如果pToken跟sToken不是同时存在,下游系统直接重定向用户到uuap登录接口认证。

    4、如果UUAP-SESSION返回用户登录成功并且返回登录用户的基本信息,下游系统可允许用户访问受保护的内容。

    5、如果UUAP-SESSION返回状态码204,则按照3-2的步骤,下游系统直接通知前端跳转UUAP-SSO认证服务器认证。

    6、下游系统携带service及appKey参数,访问UUAP-SSO的uuap登录接口接口请求用户认证。

    service:第1步中用户访问的下游系统的url,请对该url进行urlencode

    appKey:uuap签发的下游系统唯一id

    7、UUAP-SSO认证服务器认证通过会在baidu的根域名下植入pToken的cookie,并且会在用户传递的service回调地址后面追加ticket参数通知用户跳转,下游系统server可获取该参数,调用SToken置换接口获取SToken,将其以cookie的形式存入你们的域名下,该值就是sToken。

    cookie植入成功后要在之前访问url的基础上去除ticket参数让用户重新302访问一次,这样就能防止server看到访问url中存在ticket参数关键字陷入反复植入sToken的死循环,跳转后用户重新从第1步执行。

    8、认证失败,跳转错误页面。

    注意:

    如果下游系统对SLA要求比较很高,可以在3-1步骤自己使用缓存,而不用每次用户访问都请求UUAP验证pToken,sToken ,进而达到用户状态session下游系统自治的目的。

     

    参考:一篇文章彻底弄懂CAS实现SSO单点登录原理 - Hi,王松柏 - 博客园

     

  • 相关阅读:
    Hadoop2安装配置详解
    代码随想录算法训练营第四十一天 | 01背包问题 二维
    五种多目标优化算法(MOJS、MOGWO、NSWOA、MOPSO、NSGA2)性能对比(提供MATLAB代码)
    【无标题】
    c++ stack用法 入门必看 超详细
    短视频矩阵系统,抖音矩阵系统,抖音SEO源码。
    python数据可视化之matplotlib.pyplot
    CRM软件系统价格不同的原因
    【JavaWeb】-- idea下使用TomCat新建javaweb项目
    Java实现数字的千分位的处理
  • 原文地址:https://blog.csdn.net/spirit_8023/article/details/126348843