码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【无标题】


    1、SSO的整体架构

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

    2、uuap认证的基本原理

    p_token:存放在baidu.com及baidu-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,王松柏 - 博客园

     

  • 相关阅读:
    Python之时间模块和随机模块
    黑豹程序员-架构师学习路线图-百科:Mybatis的伴侣MybatisPlus
    git使用及常用命令
    IDEA XML文件里写SQL比较大小条件
    ♥ 七夕七夕 ♥ - 怎么给女朋友送礼物攻略
    【中级软件设计师】上午题12-软件工程(1):软件工程模型、敏捷方法、软件需求、系统设计
    unity Newtonsoft.Json通过字段名直接读取字段值
    [附源码]计算机毕业设计茂名特产销售商城网站Springboot程序
    护眼台灯横评|书客、明基、松下品牌大测评告诉你谁才是最亮的星!
    linux下CentOS安装mysql-5.7
  • 原文地址:https://blog.csdn.net/spirit_8023/article/details/126348843
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号