企业门户应用整合中单点登录(SSO)的技术实现与应用

相关专题: 电子应用

时间:2009-07-27 09:56来源: icbuy亿芯网

1 引 言

  企业在信息化建设过程中,由于经常采用逐步信息化的方式,因此会造成企业内部各个应用系统的用户目录不完全兼容,各应用系统相互孤立,形成“信息孤岛”。信息孤岛的存在,使得信息系统用户需要做重复的登录。因此实际中,需要一个统一的用户登录管理系统平台,来实现用户统一身份验证。用户登录到某一应用系统(通常是门户站点,如办公自动化系统)后,当需要访问其他应用系统时,不必登录就可以直接进入应用系统。

  单点登录系统平台采用统一的用户信息数据库,实现用户统一验证。从用户的角度只需进行一次登录就可实现全局访问;从管理员的角度,能够记录用户登录各个系统的日志信息,方便进行统计分析。

2 单点登录的实现原理

2.1 单点登录的一般模型

  单点登录模型,一般由三部分构成,分别是:用户、身份提供者和服务提供者,如图1所示。

  (1)用户是指通过浏览器来使用应用服务的个体。

  (2)身份提供者是指对个体进行身份验证的服务提供者。

  (3)服务提供者是指为用户进行应用服务的具体应用服务提供者。

  单点登录的工作原理是:用户首先在身份提供者那里注册身份;当用户进行单点登录时,在身份提供者处登录,进行身份验证,由身份提供者为用户标记登录信息;当访问其他的服务提供者时,被访问的服务提供者首先直接与身份提供者进行交互,确定该用户是否已进行单点登录,从而确定允许该用户来访问自己提供的服务。

2.2 单点登录的重要概念

2.2.1 单点登录点

  理想的情况是用户通过任何应用系统都能进行SSO(Single Sign-on),这对于基于Web的系统是可行的。这种单一的登录点在整个系统的设计中是惟一认证用户的地方,由登录点将SSO token(单点登录标志)(针对不同的C/S,B/S应用可能还需要传递用户名,口令)传递给应用系统,应用系统利用SSO token进行用户已认证的验证。将这个单一的登录点称为SSO Entry(单点登录点)。

2.2.2 对原有应用系统的修改

  并不是任何系统都能够使用SSO,只有那些符合SSO规范,使用SSO API的应用系统才具有SSO的功能。因此,进行单点登录,需要修改已有的应用系统,屏蔽已有的应用系统的用户认证模块,使用单点登录系统提供的SSOAPI来验证用户,以及对用户的操作进行授权。

2.2.3 建立统一的认证权限信息库

  建立统一的认证,权限存放库,进行认证与授权管理,将系统的认证、授权信息存贮结构与访问控制逻辑和应用的业务逻辑进行分离,使它们之间成为一种松散的耦合,便于系统的灵活管理。

2.3 单点登录的工作流程

  单点登录有三个主体:使用Web浏览器的用户、服务提供者和登录服务器。登录服务器保存着用户的认证信息以及用户的个人信息,服务提供者在得到用户允许的前提下可以到登录服务器上获取用户个人信息。

  单点登录协议流程如图2所示。

  首先,当一个用户通过浏览器访问一个服务提供者时,如果该服务提供者需要验证用户的身份,就把该用户的浏览器重定向到登录服务器;登录服务器通过SSL连接为用户提供一个登录页面,用户进行登入;用户登录服务器后,被重定向回服务提供者,此时认证信息被包含在重定向消息中;服务提供者检验认证信息的真实性后,即可认为该用户成功登录。

3 单点登录系统的体系结构

  单点登录系统平台主要由系统平台管理模块、应用系统代理模块、数据库三部分组成。

3.1 管理模块

  单点登录系统平台的管理模块主要实现各种服务,主要包括:会话管理服务,日志审计服务,身份验证服务,授权服务。

  会话管理服务 单点登录系统平台的基础服务。用户登录单点登录的门户站点后,会话状态通过会话管理服务来管理,实现单点登录;

  日志审计服务 单点登录系统平台的辅助服务。日志审计实现对用户使用单点登录系统平台的详细日志,日志信息包括:登录时间、登录用户身份、登录应用系统、登录时使用的客户机IP地址和MAC地址等;

  身份验证服务 单点登录系统平台的扩展服务,实现对用户身份的验证。身份验证的方式可以多样,不同的应用环境可能采用不同的验证方式,单点登录系统平台能够方便地与现有的身份验证方式兼容,也能进行扩展;

  授权服务 单点登录的扩展服务,能够实现对某些应用系统的授权。不同的用户对同一应用系统的访问权限是不同的,在单点登录系统平台上,可以实现系统级的授权。

3.2 数据库模块

  单点登录系统平台的数据库模块主要存储单点登录时的各种数据,主要包括:用户目录数据库、登录日志数据库等。

  用户目录数据库 系统平台使用统一的用户目录数据库,集中进行管理。各个应用系统进行身份验证时,都使用这个集中的数据库。

  登录日志数据库 系统平台能够对用户的身份验证行为进行日志记录,随时把握“何人何时以何种方式访问何种应用系统”。

3.3 应用系统代理模块

  目前应用系统代理模块与单点登录系统平台进行通信,实现各应用系统与系统平台管理系统的连接。

4 单点登录系统的部署

4.1 单点登录系统的安全性要求

  作为应用系统的基础平台,单点登录系统平台的安全性非常重要。可以采用以下的方法保证系统安全:

  (1)内容安全。通过应用安全级别较高的加密算法,对存储的用户登录信息,包括用户登录名称、登录ID号码、电子数字证书等进行加密,保证即使系统管理员也无法获得或更改这些信息;

  (2)传输安全。信息在传输的过程中,也有可能被窃听和篡改。对于B/S系统,采用HTTPS/SSL安全传输通道,保证信息在传输中的安全;对于C/S系统,应用业界标准的安全认证协议,在传输前进行双向认证,同时,对通信内容进行加密和散列,也能保证信息在传输中的安全;

  (3)事后安全。在安全模型中,除了事前评估,事中控制外,还有事后的审计。单点登录平台提供完善的日志记录功能,日志内容包括登录时间、登录用户身份、登录的应用系统、登录时使用的客户机IP地址、计算机名和MAC地址等。

  单点登录系统的安全结构如图3所示。

  图3中,粗黑体标记出的“加密用户信息”、“日志数据库”、“安全传输通道(HTTPS等)”、“安全认证通道(挑战/相应协议等)”,都是单点登录平台采取的安全措施。

  单点登录平台实现内容安全、传输安全和事后安全,保证了整个平台系统的立体安全。

  单点登录平台能够详细记录用户使用单点登录平台的情况,包括登录时间、登录用户身份、登录的应用系统、登录时使用的客户机IP地址、计算机名和MAC地址等。同时,还提供图形化的日志查询工具,方便管理员进行统计分析和审计员进行监督审计。

4.2 单点登录系统的部署

  单点登录系统平台通过向应用系统提供单点登录服务,实现单点登录。因此,单点登录系统平台部署与普通的应用系统部署不同。除了单点登录平台自身的部署外,支持单点登录的应用系统需要进行系统改造,系统改造以单点登录服务接口规范作为依据。

  单点登录系统的部署的示意图如图4所示。白色的立方体表示应用系统。浅蓝色的立方体表示单点登录SSO平台。从图中可以看出:各个应用系统与SSOEntry发生联系。SSO Entry需要向应用系统传递SSO Token,用户名,口令,然后启动应用系统。

5 单点登录系统的应用

  天津大港石化总厂建立了企业门户,企业门户统一管理多种企业应用,包括销售系统、检测系统、生产系统、合同系统、办公系统、人事系统、电子地图、邮件系统等。这些应用有的是采用B/S架构,有的是采用C/S架构,有的是企业内部应用通过企业局域网应用,有的是采用广域网,跨区域实现。

  在确定单点登录系统设计时,确定的目标是:单点登录不能够修改任何现有B/S,C/S应用系统,这对目前SSO系统提出了技术方案与技术实施上的难题,目前普通单点登录系统一般难以克服这样的问题。根据与合作的技术开发与实施单位沟通,采用代理方式实现了单点登录。即现有应用系统的认证方式均不改变,通过单点登录系统获取用户名和密码,交给单点登录代理,由代理实现对现有系统的登录,这一实现方法在实际中被证明是切实可行的

企业门户应用整合中单点登录(SSO)的技术实现与应用相关推荐

  1. SpringBoot+SpringSecurity+JWT整合实现单点登录SSO史上最全详解

    作者:波波烤鸭 blog.csdn.net/qq_38526573/article/details/103409430 一.什么是单点登陆 单点登录(Single Sign On),简称为 SSO,是 ...

  2. 基于.Net的单点登录(SSO)解决方案

    基于.Net的单点登录(SSO)解决方案 前些天一位朋友要我帮忙做一单点登录,其实这个概念早已耳熟能详,但实际应用很少,难得最近轻闲,于是决定通过本文来详细描述一个SSO解决方案,希望对大家有所帮助. ...

  3. jwt单点登录_单点登录SSO技术选型

    一些人存在的意义总归是让另一些人成长,然后消失. --刘同<谁的青春不迷茫> 1.单点登录是什么? 单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这 ...

  4. 浅析C#中单点登录的原理和使用

    是单点登录? 我想肯定有一部分人"望文生义"的认为单点登录就是一个用户只能在一处登录,其实这是错误的理解(我记得我第一次也是这么理解的). 单点登录指的是多个子系统只需要登录一个, ...

  5. OAuth2 实现单点登录 SSO

    转载自  OAuth2 实现单点登录 SSO 1. 前言 技术这东西吧,看别人写的好像很简单似的,到自己去写的时候就各种问题,"一看就会,一做就错".网上关于实现SSO的文章一大堆 ...

  6. 安全单点登录(SSO)解决方案

    随着企业大量采用云应用程序,最终用户不得不在一天中处理越来越多的密码,只是为了完成他们的工作.为了进行有效的用户身份管理,您需要采用一种有效且安全的方法来管理用户;密码.ADSelfService P ...

  7. CAS解决单点登录SSO

    关于CAS很多的原理和基础的配置启动,网上是很多的,我更多是结合我的实践和心得.需要了解CAS的原理,认证协议,认证流程,可以参考以下文章. 让CAS支持客户端自定义登陆页面--客户端篇 CAS原理与 ...

  8. 多域单点登录SSO系统的实现

    多域单点登录SSO系统的实现 天幻网新的规划中,将涉及到多域,如FFSKY.COM,FFSKY.CN等等,因此网上某些对同一域靠设置COOKIE的DOMAIN=".FFSKY.COM&quo ...

  9. php同子域单点登录,SSO 单点登录总结(PHP)(示例代码)

    本篇文章根据个人理解的知识整理汇总,如有不足之处,请大家多多指正. 单点登录(SSO--Single Sign On)的应用是很普遍的,尤其在大型网站系统中,比如百度,登录百度账号和,再转到百度经验. ...

最新文章

  1. 【网络协议】TCP分段与IP分片
  2. 解密脑机接口:专访CMU生物医学工程系主任贺斌
  3. 切削为什么没有切屑_机械加工切削“断屑”的经验分享,老师傅来看看!
  4. 硅谷蓝图创始人 Patrick:数据驱动规模化增长
  5. 关于继承方式和访问权限
  6. Tech.Ed 2011微软技术大会(二)之专题讲座
  7. ubuntu 配置桥接网卡_KVM之配置桥接网卡
  8. mysql姓氏笔画排序_mysql中怎么按姓氏笔画排序
  9. Android 软键盘顶起布局相关
  10. 4个团队领导必备的技能和素质
  11. ntoskrnl.exe 占用80端口 apache 无法启动
  12. 名人堂与代金券 (25 分)(C语言)(链表实现)
  13. JAR 文件是什么?
  14. 在线副业教程之 02 你学的越多,你赚的越多+你必须开始学习的5个最好的在线副业
  15. 整数n分解成素数乘积c语言,用C语言和汇编语言实现将1个整数分解成几个素数的乘积...
  16. 防坑指南: 杨工告诉你免联考国际硕士到底是个什么梗?
  17. nrm(npm)安装和使用
  18. 五个关键词和时刻 — 写在 ArcBlock 诞生两周年之际
  19. 游戏行业使用高防IP有什么优势?
  20. 鬼脚图 计蒜客17353 NOIP模拟 归并排序逆序对

热门文章

  1. 【PYTHON小项目】VCF文件转EXCEL文件方法详解(附QUOTED-PRINTABLE编解码)
  2. ST 电机控制工作台帮助文档翻译 之 使用 ST 电机控制工作台(工作台(帮助菜单命令))
  3. 中移M5311模块MQTT协议连接阿里云物联网平台(干货)
  4. 天球坐标系、地球坐标系、地理坐标系、投影坐标系...一次搞清
  5. oracle安装rac前存储配置,Oracle11g RAC+ASM安装前存储规划注意事项
  6. 中倍健未来数智药房首获红杉基金1千万美元天使轮融资
  7. uoj240 【IOI2016】aliens
  8. 系统定位的问题,优化的简述
  9. 身价过亿的灵仙子说你IIC没写完也发?
  10. 误删服务器里面的文件,服务器文件误删