`
jie_bosshr
  • 浏览: 140627 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

单点登录用法

sso 
阅读更多
在门户项目中,经常会遇到如何实现单点登录的问题,下面就本人的经验做个总结。欢迎大家进行补充讨论。 单点登录的具体实现有很多种选择,包括:
采用专门的SSO商业软件: 主要有:Netgrity的Siteminder,已经被CA收购。Novell 公司的iChain。 RSA公司的ClearTrust等。
采用门户产品供应商自己的SSO产品,如:BEA的WLES,IBM 的Tivoli Access Manager,Sun 公司的identity Server,Oracle公司的OID等。
这些商业软件一般适用于客户对SSO的需求很高,并且企业内部采用COTS软件如:Domino,SAP,Sieble的系统比较多的情况下采用。并结合 身份管理。统一认证等项目采用。采用这些软件一般都要对要集成的系统做些改造,如在要集成的系统上安装AGENT。现在一般只提供常见软件 如:Domino,SAP,Sieble,常见应用服务器:weblogic,websphere等的AGENT。要先统一这些系统的认证。一般采用 LDAP或数据库。然后才能实现SSO。比较麻烦。
另外,如果不想掏银子,也有OPEN SOURCE的SSO软件可选:主要有:http://www.josso.org/ https://opensso.dev.java.net/ http://www.sourceid.org 等。具体怎么样就不清楚了。
 
如果项目对SSO的要求比较低,又不想对要被集成的系统做任何改动,可采用下面介绍的方式简单实现:下面我们通过一个例子来说明。假如一个门户项目要对下面的几个系统做SSO.
用户在这些系统中的用户名,密码各不相同,如:员工号为001的员工在这些系统中的用户名,密码分别如下:
 
用户 系统 用户名 密码
001 Portal系统 A 1234
001 邮件系统 B 2345
001 DOMINO系统 C AAAA
001 报销系统 D CCCC
001 工资系统 E BBBB
首先,建立员工在PORTAL系统中的用户名和其他系统中的用户名之间的对应关系
首先,要建立员工在PORTAL系统中的用户名和其他系统中的用户名之间的对应关系并保存。可保存在表中或LDAP中或文件系统中。当然要考虑这些系统之 间的数据同步问题。比较好的方式是找到用户在这些系统中的都存在的唯一信息(如员工号,MAIL地址,姓名等)。通过唯一信息实时到各个系统中去取认证所 需要的信息。就不需要考虑数据同步问题。比较实用。可以建立类似下面的表:密码可采用加密保存。如果是采用BEA的Weblogic Portal,可采用UUP来保存这些信息。
(
user
varchar2(20),
 
app_name varchar2(20),
 
architect varchar2(4),
 
app_company varchar2(50),
app_department varchar2(50),
app_user varchar2(15),
 
app_passwd varchar2(15),
 
app_cookie varchar2(30),
 
form_user varchar2(20),
 
form_passwd varchar2(20),
 
app_special varchar2(20)
);
通过IFRAME或超连接方式集成目标系统,并进行SSO
通过IFRAME或超连接方式集成目标系统,并在URL中带上用户名和密码。如集成DOMINO可采用如下方式:
width=" >
或:
Href src=“http:// host1/names.nsf?Login&Username=admin&Password=pass&RedirectTo=/names.nsf”
以上采用的是在HTTP中直接传递明码,为提高安全性,可采用HTTPS来传递用户名和密码。另外采用这种方式被集成的系统必须支持FORM方式认证。J2EE应用,DOMINO等都支持FORM认证。
这两种方式如果SSO成功,就自动进入目标系统的界面,如果实现会显示目标系统的登录界面。其效果图如下:
这种方式,必须维护对应关系表,如上面的sso_info。更好的方式是提供界面,让最终用户自己维护这种对应关系,可模仿Compoze portlets for lotus的做法,在用户第一次进入要与之做SSO的系统时,如DOMINO系统,显示一个界面,让用户自己输入他在该系统中的用户名/密码等信息。并保 存到表中或LDAP等其他数据源中。以后用户要进入这些系统时,就直接从表中或其他数据源中取用户的用户名/密码等信息,帮助用户做认证。建议采用这种方 式。如下图所示。如果用户改变了自己在DOMINO系统中的用户名,密码。从门户系统进入DOMINO系统时,认证会失败,就重新显示类似下面的界面。让 用户重新输入他在DOMINO系统中新的用户名,密码并保存。
 

 
以上这种实现方式,一般需要浏览器支持COOKIE,所以要注意浏览器的配置,在开发阶段,为方便调试,可设置IE,让它显示COOKIE的名称。如下所示:
 

 
采用这种方式,对要集成的系统不需要做任何的改动。如果PORTAL系统中的用户在被集成的系统中的权限都一样,可采用建立一个通用用户的做法。也就是所 有在PORTAL系统中的用户都采用这个通用用户进入目标系统。这种方式等于是采用页面集成方式做集成。比较方便使用。另外,有时候需要采用调用API, 或配置Adapter等应用集成方式来集成其他系统,一般也是通过定义一个连接专用的用户。在API中或在配置Adapter的时候写死。如采用JAVA API方式集成DOMINO:
lotus.domino.Session dominoSession = NotesFactory.createSession(dominoServer, “admin”, “password”);
 
CS结构实现方式
 
经常有人问CS结构的应用如何实现SSO,本人的建议是对这种系统不要自己去实现SSO。很麻烦,其实输个用户名,密码没什么大不了的。如果要实现,一是 采用商业软件。另外也可以采用以下方式:在PORTAL的PORTLET上建立超连接。并通过APPLET方式启动CS结构的应用系统的登录界面。然后通 过如下的方式把用户名/密码传递过去。
-不能做任何改动的客户端- WIN消息(给登录窗口发送用户名,密码等登录所需要的信息),模拟键盘(java有模拟键盘输入的API)
-可以做改动的客户端- 参数传递,并让登录的EXE文件读取参数进行认证。
因为要让APPLET执行本地的EXE文件,所以必须对IE中的JRE的安全进行设置。 
其他: 
在采用以上方式实现了SSO后,要注意LOGOUT,可采用与LOGIN相同的方式。也可以通过被集成系统的超时设置来实现。
单点登录SSO技术资料收集
统一用户认证和单点登录解决方案: 计算机世界网上的文章,比较全面的介绍统一用户认证和单点登录解决方案
惠普灵动单点登录(SSO)解决方案: 包括C/S结构的系统单点登录解决方案
网站用户单点登录系统解决方案: 通过令牌方式实现网站用户单点登录
WebLogic平台的Web SSO(SAML)解决方案: 在WebLogic 8.1SP4中,提供了用于和Microsoft Windows客户端进行SSO的Single Pass Negotiate Identity Assertion Provider。本文对其做了详细的介绍。
http://blog.beijingnet.com/index.php?blogId=4: 收录了一些SSO方面的文章
应用整合中SSO的技术实现: 作者介绍了南京地税进行应用整合SSO的技术实现方案
分享到:
评论

相关推荐

    单点登录中的JSON WEB TOKEN的使用方法C#版

    Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种...该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。本实例还原了整个的使用流程。建议使用vs2019,framework4.8版本。

    vue+springboot前后端分离实现单点登录跨域问题解决方法

    那就意味着做单点登录咯,至于不知道什么是单点登录的同学,建议去找一下万能的度娘。 刚接到这个需求的时候,老夫心里便不屑的认为:区区登录何足挂齿,但是,开发的过程狠狠的打了我一巴掌(火辣辣的一巴掌)。。...

    单点登录流程

    单点登录 1、涉及文件 AdAction.java; LoginAction.java; AdminuserAction.java; SingonFilter; 2、技术实现思路 (1) 当第一次访问MBS系统时,因为还没有登录,会被引导到ad.do方法,ad.do转接到login.do方法,...

    java-cas单点登录服务端

    CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,研究如何采用 CAS 实现轻量级单点登录解决方案。 CAS 是 Yale 大学发起的...

    详解使用JWT实现单点登录(完全跨域方案)

    主要介绍了详解使用JWT实现单点登录(完全跨域方案),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    实现单点登录使用的CAS构建的war

    github上下载的CAS项目不想自己重新构建的,可以直接下载我构建好的这个war来使用,做单点登录CAS必须使用到cas项目发布...我在分享单点登录的文章的时候需要用到这个文件所以进行了上传,。拿来直接解压就可以用啦。

    java单点登录系统.zip

    单点登录系统 简单使用方法 1、boy-sso-example项目中直接在web.xml中添加如下代码,需要注意的是需要依赖boy-sso-client这个项目。 <filter-name>SSOAuth <filter-class>...

    Weblogic使用YALE(耶鲁)CAS实现SSO单点登录 的方法.doc

    Weblogic 使用 YALE CAS 实现 SSO 单点登录的方法 一、Yale CAS 简介 Yale CAS 是耶鲁大学开发的一种开源的单点登录(SSO)解决方案,提供了一个通用的身份验证框架,允许用户使用单个身份验证来访问多个应用程序。...

    单点登录源码

    单点登录, SSM框架公共模块 ├── zheng-admin -- 后台管理模板 ├── zheng-ui -- 前台thymeleaf模板[端口:1000] ├── zheng-config -- 配置中心[端口:1001] ├── zheng-upms -- 用户权限管理系统 | ├── ...

    C# ASP.NET - 用户单点登录

    说明: 采用两种技术方法实现用户单点登录 --> 方法1: 使用Cache和Session进行用户当前登录状态的判断;方法2:使用数据表中的State字段,记录用户当前登录状态;

    bbs论坛2.0 源码(单点登录)

    3)单点登陆设计与实现; 4)网站皮肤切换;(非替换CSS或替换ascx) 5)CommunityServer开源项目中的URL重写技术,后由我自己改进完善; 5)如何在不能设置IIS的情况下,最大限度的提升网站性能,让你的网站在yslow...

    GNSS精密单点定位代码_单点定位_精密单点定位_GNSS_精密单点定位(PPP)_

    给出了精密单点定位的代码,方便使用者在此基础上实现其他的改进方法。

    Android端实现单点登录的方法详解

    单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会...

    表格制作软件中实现iframe跨域单点登陆的实现方法

    finereport是一款常用的表格制作软件/报表开发工具,本资源讲述在表格制作软件中实现iframe跨域单点登陆的具体实现方法,包括具体的操作步骤和实现代码等

    caserver单点登录去https协议为http,重置jar 包

    caserver客户端,单点登录用的是https协议,经过修改jar文件,变https协议为http,跳过认证库验证。 http://hi.baidu.com/%C3%E7%D0%A4/blog/category/caserver%B5%A5%B5%E3%CF%B5%C1%D0 有具体使用方法!

    WebSphere Applicatoin Server 7.0 基于独立定制注册表方式实现单点登录,及身份权限认证。

    WebSphere Applicatoin Server 7.0... 在网上搜寻了很长时间,可以说费劲千辛万苦也无法找到一个完整的使用WAS的基于数据库方法和单点登录应用,我想我有必要把自己的总结发布到网上供大家分享,为社会做点贡献,呵呵。

    rtx单点登陆以及配置详解

    包括基本的配置使用方法以及rtx单点登陆代码........

    php实现多站点共用session实现单点登录的方法详解

    本文实例讲述了php实现多站点共用session实现单点登录的方法。分享给大家供大家参考,具体如下: 最近闲来无事,总结整理下单点登录的问题。 单点登录的基本原理为:客户端共享sesionid,服务器端共享session信息。...

    zh-sso:集成多种登录验证方式的单点登录系统,适用于PC端和移动端Web应用,支持微信登录验证、手机号登录、邮箱登录等

    以下为Smart原来的说明文档:Smart定位用当下最流行的SSM(SpringMVC + Spring + Mybatis)技术,为您构建一个易理解、高可用、高扩展性的单点登录权限管理应用基层,方便实现快速开发。权限按钮级(可控制到...

    网站用户单点登录系统解决方案

    在网站建设的过程中,多个应用系统一般是在不同的时期开发完成的。各应用系统由于功能侧重、设计方法和开发技术有所不同,也就形成了各自独立的用户库和用户认证体系。...用户的要求我们称之为 "单点登录"。

Global site tag (gtag.js) - Google Analytics