• 【无标题】


    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,王松柏 - 博客园

     

  • 相关阅读:
    docker_python-django_uwsgi_nginx_浏览器_网络访问映过程
    向量数据库入坑指南:聊聊来自元宇宙大厂 Meta 的相似度检索技术 Faiss
    整理细分26部分的Java面试通关要点
    项目管理过程的五个阶段
    【疯狂世界杯】css 动画实现跳动的足球
    SDN | OpenvSwitch | OVS网桥及流表管理
    RK3588S Android12 旋转系统图像
    怒刷LeetCode的第9天(Java版)
    Linux 中简单的文件系统
    上周热点回顾(11.7-11.13)
  • 原文地址:https://blog.csdn.net/spirit_8023/article/details/126348843