AD开发详细设计文档

AD开发详细设计文档

ID:37859265

大小:96.00 KB

页数:22页

时间:2019-06-01

AD开发详细设计文档_第1页
AD开发详细设计文档_第2页
AD开发详细设计文档_第3页
AD开发详细设计文档_第4页
AD开发详细设计文档_第5页
资源描述:

《AD开发详细设计文档》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单点登录(SSO)服务详细设计说明1单点登陆需求单点登录(SingleSignOn),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。使用“单点登录”整合后,只需要登录一次就可以进入多个系统,而不需要重新登录,这不仅仅带来了更好的用户体验,更重要的是降低了安全的风险和管理的消耗2单点登陆的技术实现机制单点登录的机制,当用户第一次访问应用系统1(如下图)的时候,因为还没有登录,会被引导到认证系统中进行登录(1);根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据--

2、ticket(2);用户再访问别的应用的时候(3,5)就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性(4,6)。如果通过效验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。从上面的视图可以看出,要实现SSO,需要以下主要的功能:所有应用系统共享一个身份认证系统。统一的认证系统是SSO的前提之一。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行效验,判断其有效

3、性。所有应用系统能够识别和提取ticket信息要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。有两点需要指出的是:单一的用户信息数据库并不是必须的,有许多系统不能将所有的用户信息都集中存储,应该允许用户信息放置在不同的存储中,如下图所示。事实上,只要统一认证系统,统一ticket的产生和效验,无论用户信息存储在什么地方,都能实现单点登录。3WEB-SSO的实现·在同一个应用中也需要保存用户的登录身份信息。例如用户在访问页面1的时候进行了登录,但

4、护应用的状态。C是刚才也提到,客户端的每个请求都是单独的连接,当客户再次访问页面2的时候,如何才能告诉Web服务器,客户刚才已经登录过了呢?浏览器和服务器之间有约定:通过使用cookie技术来维ookie是可以被Web服务器设置的字符串,并且可以保存在浏览器中。如下图所示,当浏览器访问了页面1时,web服务器设置了一个cookie,并将这个cookie和页面1一起返回给浏览器,浏览器接到cookie之后,就会保存起来,在它访问页面2的时候会把这个cookie也带上,Web服务器接到请求时也能读出cookie的值,根据cookie值的内容就可以判断和恢复一些用户的信息状态。Web-SSO完全可以

5、利用Cookie结束来完成用户登录信息的保存,将浏览器中的Cookie和上文中的Ticket结合起来,完成SSO的功能。3.2.1身份认证服务代码解析·身份认证服务是一个标准的web应用,包括一个名为SSOAuth的Servlet,一个login.jsp文件和一个failed.html。身份认证的所有服务几乎都由SSOAuth的Servlet来实现了;login.jsp用来显示登录的页面(如果发现用户还没有登录过);failed.html是用来显示登录失败的信息(如果用户的用户名和密码与信息数据库中的不一样)。SSOAuth的代码如下面的列表显示,结构非常简单,先看看这个Servlet的主体部

6、分:packageDesktopSSO;importjava.io.*;importjava.net.*;importjava.text.*;importjava.util.*;importjava.util.concurrent.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassSSOAuthextendsHttpServlet{staticprivateConcurrentMapaccounts;staticprivateConcurrentMapSSOIDs;Stringcookiename="WangYuDesk

7、topSSOID";Stringdomainname;publicvoidinit(ServletConfigconfig)throwsServletException{super.init(config);domainname=config.getInitParameter("domainname");cookiename=config.getInitParameter("cookiename"

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。