本文介绍SSO概念和简略方案原理,不拆解协议细节。

一、身份认证

身份是一切信任的基础。基于身份的信任思维就是不信任企业内部和外部的任何人、任何系统,需要基于身份认证和授权,执行以身份为中心的访问控制和资产保护。

现实应用系统的业务流程中,既有人机交互,也有机机交互,所以,身份认证涉及到:

1、对人的身份认证。

2、后台间身份认证。

3、对设备的身份认证。

最最常见的认证流程示意如下,用户输入正确地用户名和密码获得认证服务颁发的Ticket,再携带Ticket去访问应用系统。

Web应用系统采用B/S架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联。

会话机制:浏览器第一次请求服务器,服务器创建会话,将会话的id作为响应的一部分发送给浏览器,浏览器存储会话id,并在后续第二次和第三次请求中带上会话id,服务器取得请求中的会话id就知道是不是同一个用户了。基于会话机制,服务器就可以判断合法用户的登录状态了。

二、多系统身份认证

上一节单系统的身份认证中,cookie携带会话id在浏览器与服务器之间维护会话状态。

如今企业的应用日趋复杂,单系统无法满足业务需求,多系统就涉及到用户需要在不同系统之间反复切换登录的问题。

如果多系统能够共享cookie,用户就可以无需重复登录切换应用系统。

cookie受限于cookie的域(网站域名),浏览器发送http请求时会自动携带与该域匹配的cookie,而不是所有cookie。

解决办法之一就是使用顶级域名共享cookie,但又带来部署限制、技术限制、以及安全问题。

SSO就是为了解决多系统身份认证的问题的一种技术。

SSO需要一个独立的认证中心,认证中心接受用户名密码等信息,其他系统接受认证中心的间接授权。

间接授权通过令牌实现,SSO认证中心验证用户的用户名密码没问题,创建授权令牌。

授权令牌作为参数发送给各个子系统,拿到令牌即得到授权,可以创建局部会话,实现系统登录。

如上图:应用系统应该尽可能使用统一的SSO,避免自行设计身份认证模块。好处非常明显:

1、避免各个业务自行重复建设,简化业务工作量。

2、强化隐私保护,避免隐私(口令、双因子保护口令、生物特征等)因分散存储、保护不当而泄露。

3、内部SSO系统,可与HR系统关联,离职销户。

实际应用中有一种方式,应用系统自行收集口令,然后后台进行SSO认证,这样存在口令被内部人员收集泄露的风险。

我们推荐与SSO集成的时候,用户直接到SSO系统及界面执行身份认证。

如果企业具有统一接入的应用网关,可以直接在应用网关这里检测是否经过身份认证。

接入网关统一与SSO集成,各个产品可以聚焦在业务上。

三、有关协议简介

1、OIDC(OpenID Connect)

OpenID Connect 1.0 是 OAuth 2.0 协议之上的一个简单的身份层。

OIDC允许客户端根据授权服务器执行的身份验证来验证最终用户的身份,并以可互操作和类似 REST 的方式获取有关最终用户的基本配置文件信息。

OIDC允许所有类型的客户端(Web客户端、移动客户端、 JavaScript 客户端)请求和接收有关经过身份验证的会话和最终用户的信息。

SSO 包括统一登录和统一登出这两部分。基于 OIDC 实现的 SSO 主要是利用 OIDC 服务作为用户认证中心的统一入口,使所有需要登录的地方都交给 OIDC 服务来做。简单来说就是把需要进行用户认证的部分都剥离出来交给 OIDC 认证中心来完成。

2、SAML(Security Assertion Markup Language)

在SAML协议中,一旦用户身份被主网站(身份鉴别服务器,Identity Provider,IDP)认证过后,该用户再去访问其他在主站注册过的应用(服务提供者,Service Provider,SP)时,都可以直接登录,而不用再输入身份和口令。

SAML在各种单点登录场景中被广泛使用。比如传统企业利用SAML通过企业区域网内的身份认证访问公有云上的资源。或者利用SAML将内部办公系统与外购SaaS服务的身份体系打通。

3、CAS(Central Authentication Service)

CAS,中央认证服务,一种独立开放指令协议。CAS 是 耶鲁大学(Yale University)发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法。CAS包含一个一个独立部署的web应用CAS Server,和一个与受保护客户端应用一起部署的CAS Client,以Filter方式保护受保护的资源。对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址。

所有与 CAS 的交互均采用 SSL 协议,CAS Client 与 CAS Server 之间进行 Ticket 验证的过程对于用户是透明的。

SSO单点登录简析 身份认证 安当加密相关推荐

  1. JEECG 集成KiSSO单点登录实现统一身份认证

    JEECG 集成KiSSO单点登录实现统一身份认证 JEECG 如何为其他第三方系统实现统一身份认证服务,实现单点登录? 第三方系统如何对接呢? 今天为大家揭开这层面纱,让大家了解实质,使用它更快速的 ...

  2. java单点登录统一认证,JEECG 集成KiSSO单点登录实现统一身份认证

    JEECG 集成KiSSO单点登录实现统一身份认证 JEECG 如何为其他第三方系统实现统一身份认证服务,实现单点登录? 第三方系统如何对接呢? 今天为大家揭开这层面纱,让大家了解实质,使用它更快速的 ...

  3. JAVA——基于HttpClient的通过单点登录方式(统一身份认证平台)登录正方教务系统[1999-2020]基本解决方案

    问题分析 通过HttpClient获取网页数据源,通过Jsoup解析数据.先模拟登录统一身份认证平台,再通过单点登录方式登录正方教务系统,最后获取相关信息.模拟浏览器正常操作,封装请求头信息获取SES ...

  4. springmvc--sso单点登录cas统一身份认证器

    开发环境 maven idea Windows 10 JDK 1.8+ 域名解析的配置 这里通过SwitchHosts来实现:以管理员身份打开 前两个:两个客户端应用的域名 后一个:是服务端的域名. ...

  5. 零信任网络ZTNA及SDP概念理解 身份认证 安当加密

    本文是对云安全联盟发布的<NIST零信任架构>及<SDP标准规范>的学习记录,用一句话总结:零信任是一种安全理念,SDP是一种落地方案. 一.什么是零信任网络 传统模型假设:组 ...

  6. XSS跨站脚本攻击防御和Cookie,及SSO单点登录原理

    XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性.其原理是攻击者向有XSS漏洞的网站中输入 ...

  7. drcom宽带认证登录超时_开发SSO单点登录需要注意的问题

    一.单点登录系统开发需要注意的问题 1.单点登录系统需要支持jsonp请求? 单点登录系统主要是向其他系统提供用户身份验证服务,因此需要提供对外接口,而外部系统通过接口访问时,必然涉及跨域问题,因此需 ...

  8. 【 云原生 | kubernetes 】- Argo CD Gitlab身份验证及SSO单点登录

    ⚡️前言:了解OAuth协议.OAuth是一种授权协议,它可以用来保证第三方只有当获得授权的时候,才能访问授权者的权限 我们之前文章已经大概了解了Argo CD的作用和一些用法.在通过web访问时,我 ...

  9. Spring+ Spring cloud + SSO单点登录应用认证

    之前的文章中有介绍spring cloud sso集成的方案,也做过spring + jwt + redis的解决方案,不同系统的无缝隙集成,统一的sso单点登录界面的管理.每个应用集成的权限认证,白 ...

最新文章

  1. matlab 曲线拟合求导,基于matlab曲线拟合的数据预测分析
  2. 假如有人炸了支付宝的存储服务器...
  3. 线性表的总结:顺序存储线性表的初始化,创建,插入,删除,清空,销毁等操作...
  4. 遇到个别手机前置摄像头相差90度的怪事
  5. js调用摄像头拍照上传图片
  6. junit4报测试类class not found
  7. 华为+android+root权限获取root,如何获得华为手机的root权限?华为root权限获取教程...
  8. 集成学习Bagging与Boosting的区别
  9. 阿里云DNS专家,手把手教你定位域名解析不生效
  10. RH linux 6.4的虚机里 OpenGL或OSG不能用
  11. 浅谈CAS,一篇就够了
  12. pytorch报错“RuntimeError: DataLoader worker (pid 83709) is killed by signal: Bus error. It is .......“
  13. 自我介绍 and 阅读感想
  14. 名悦集团:冬季汽车保养怎么做才到位
  15. 遇到问题:(已解决)Texpad无法编译--“未找到TeX发型版 没有在您的系统中找到TeX发行版。....或安装您的TeX发行版”
  16. Flask框架——消息闪现
  17. 电动车充电器电路图全集
  18. QQ电脑管家加速升级版便携版
  19. Java中nio、bio和aio的区别
  20. 360广告拦截导致页面不显示

热门文章

  1. php购物车修改单价,vuejs+elementui 购物车价格计算,点击加减号修改数量总价都不会改变,但是计算执行了...
  2. 计算机检索中常用的中文数据库,计算机检索技术及中文数据库使用方法.ppt
  3. 无感电阻的作用、选型及运营
  4. WebGL坐标系介绍
  5. Keras深度学习(4)-回归问题之预测房价
  6. 公平锁和非公平锁的详解
  7. 关于Java+Vue3快速开发框架esdk-nzb-cas的介绍
  8. centos7 Kafka部署(单机版)
  9. 实习日志 08/14更新
  10. vscode python debug lauch.json 配置: