单点登录SSO for ASP.NET (一)

     最近项目原因使用到了单点登录,说起单点登录刚开始觉得挺唬人的,感觉好深奥的,不过熟悉了之后觉得也挺简单的。

     这篇主要和大家分享下单点登录的原理,和使用缘由。

单点登录英文名称:Single Sign On,简称SSO。SSO一般用于具有多个应用系统的大项目中,实现了一次登录便可随处访问,无论各应用是用java开发,还是.net开发。其实我感觉就像是session的升级版一样,因为session不能跨站点、安全性不高等缺点的存在,才催生了这类技术。现在很多大型网站都采用了相关技术,比如Microsoft,Tencent等等。

SSO原理:

SSO结构:

image

分为OpenSSO Agent和OpenSSO Server,Agent即为个应用系统,Server是指统一身份认证系统。

SSO流程:

image

1、用户第一次从页面发来请求,这时请求中没有携带ticket;
2、Agent拦截到该请求,发现请求中没有ticket,将用户重定向到OpenSSO server,让用户去做身份验证;
3、 OpenSSO server执行完验证,若是合法用户,则返回ticket给Agent;
4、Agent去和OpenSSO server验证ticket,获得用户的信息,并且允许用户访问应用。

SSO实现:

首先,需要有一个统一身份认证系统

它的主要任务是:

1、登陆认证,即比对用户登录信息与数据用户信息是否一致,若认证成功,它将会生成一个ticket,并派发回去。

2、校验ticket,判断其是否有效,若无效,将返回统一身份认证登录页面进行登录。

其次,每一个应用系统能够识别统一身份认证系统派发过来的ticket,并利用ticket从认证系统提取相关信息。

其中包括:

1、证书的获取

2、检测ticket是否有效

3、通过ticket从统一身份认证系统获取相关信息流

4、解析信息流

5、将需要的信息存入该系统的session以及利用信息进行相关操作,并返回到用户最初请求的URL

 

刘国柱作于2012-09-20

原创文章转载请注明出处

posted on 2012-09-20 11:06  Empty.  阅读(2171)  评论(0编辑  收藏  举报

导航