单点登录实现方案心得(5篇范例)

时间:2019-05-12 07:06:34下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《单点登录实现方案心得》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《单点登录实现方案心得》。

第一篇:单点登录实现方案心得

单点登录实现方案心得

一、引言

至于什么是单点登录,举个例子,如果你登录了msn messenger,访问hotmail邮件就不用在此登录。

一般单点登录都需要有一个独立的登录站点,一般具有独立的域名,专门的进行注册,登录,注销等操作

我们为了讨论方便,把这个登录站点叫做站点P,设其Url为http://passport.abc.com,需要提供服务的站点设为A和B,跨站点单点登录是指你在A网站进行登录后,使用B网站的服务就不需要再登录

从技术角度讲单点登录分为: 跨子域单点登录  完全跨单点域登录 

二、跨子域单点登录

所谓跨子域登录,A,B站点和P站点位于同一个域下面,比如A站点为http://blog.yizhu2000.com B站点为 http://forum.abc.com,他们和登录站点P的关系可以看到,都是属于同一个父域,yizhu2000.com,不同的是子域不同,一个为blog,一个为forum,一个是passport 我们先看看最常用的非跨站点普通登录的情况,一般登录验证通过后,一般会将你的用户名和一些用户信息,通过某一密钥进行加密,写在本地,也就是一个加密的cookie,我们把这个cookie叫做--票(ticket)。

需要判断用户是否登录的页面,需要读取这个ticket,并从其中解密出用户信息,如果ticket不存在,或者无法解密,意味着用户没有登录,或 者登录信息不正确,这时就要跳转到登录页面进行登录,在这里加密的作用有两个,一是防止用户信息被不怀好意者看到,二是保证ticket不会被伪造,后者 其实更为重要,加密后,各个应用需要采用与加密同样的密钥进行解密,如果不知道密钥,就不能伪造出ticket,(注:加密和解密的密钥有可能不同,取决于采用什么加密算法,如果是对称加密,则为同一密钥,如果是非对称,就不同了,一般用私钥加密,公钥解密,但是无论怎样,密钥都只有内部知道,这样伪造者既无法伪造也无法解密ticket)跨子域的单点登录,和上述普通登录的过程没有什么不同,唯一不同的是写cookie时,由于登录站点P和应用A处于不同的子域,P站写入的 cookie的域为passport.yizhu2000.net,而A站点为forum.yizhu2000.net,A在判断用户登录时无法读到P站 点的ticket 解决方法非常简单,当Login完成后P站点写ticket的时候,只需把cookie的域设为他们共同的父域,yizhu2000.net就可以了:cookie.domain=“yizhu2000.net”,A站点自然就可以读到这个ticket了 ASP。Net的form验证本身实现了这个机制,大家可以参考http://blog.csdn.net/octverve/archive/2007/09/22/1796338.aspx ASP.NET身份验证信息跨域共享状态

在ASP.NET 2.0 中只需修改web.config文件即可,修改方法如下:

domain指定了cookie保存的域,只要保存的是 abc.com形式或者.abc.com的形式,那么其二级域名都可以共享此cookie。

此外,web.config标签中的也做相应修改,mode改为StateServer或者SqlServer,那么里面的session信息也就全部可以共享了。StateServer需要在服务中开启“asp.net状态服务”的服务。,以上斜体内容摘自此链接

三、完全跨单点域登录

完全跨域登录,是指A,B站点和P站点没有共同的父域,比如A站点为forum.yizhu1999.net,B站点为blog.yizhu1998.net,大家可以参考微软旗下的几个站点,这两个站点就没有共同的父域,而仍然可以共用登录,怎样才能实现呢?请参考下图,由于这种情况ticket比较复杂,我们暂时把P站点创建的的ticket叫做P-ticket,而A站点创建的ticket叫A-ticket,B的为B-ticket

由于站点A(forum.yizhu1999.com)不能读取到由站点P(passport.yizhu2000.com)创建的加密 ticket,所以当用户访问A站点上需要登录才能访问的资源时,A站点会首先查看是否有A-ticket,如果没有,证明用户没有在A站点登录过,不过 并不保证用户没有在B站点登录,(重复一下,既然是单点登录,当然无论你在A,B任意一个站点登录过,另外一个站点都要可以访问),请求会被重定向到p站 点的验证页面,验证页面读取P-ticket,如果没有,或者解密不成功,就需要重定向登录页面,登录页面完成登录后,写一个加密cookie,也就是 P-ticket,并且重定向到A站点的登录处理页,并把加密的用户信息作为参数传递给这个页面,这个页面接收登录页的用户信息,解密后也要写一个 cookie,也就是A-ticket,今后用户再次访问A站点上需要登录权限才能访问的资源时,只需要检查这个A-cookie是否存在就可以了 当用户访问B站点时,会重复上面的过程,监测到没有B-ticket,就会重定向到P站点的验证页面,去检查P-ticket,如果没有,就登录,有则返回B的登录处理页面写B-ticket

注销的时候需要删除P-ticket和A-ticket

怎么删除cookie:本来以为这个不是问题,不过还是有朋友问道,简单的说其实是创建一个和你要删除的cookie同名的cookie,并把 cookie的expire设为当前时间之前的某个时间,不过在跨子域的删除cookie时有一点要注意:必须要把cookie的域设置为父域,在本文中 为yizhu2000.com 为了保证各个环节的传输的安全性,最好使用https连接

四、总结

第二篇:基于WEB服务单点登录设计与实现

龙源期刊网 http://.cn

基于WEB服务单点登录设计与实现

作者:王 慧

来源:《沿海企业与科技》2006年第04期

[摘 要]文章描述了当前不同的软件服务系统身份认证管理、授权管理存在的问题,同时介绍了单点登录SingleSignOn(SSO)在这方面的解决方法与应用;并且结合Web Service提供一个简单的单点登录技术的实现,对其关键部分的开发思想进行了详细说明。

[关键词]SSO;AD;WebService;Net

[中图分类号]F270.7

[文献标识码]A

第三篇:使用SQL语句实现用户登录

使用SQL语句实现用户登录

5、在DA.cs类文件中添加如下代码

///

/// 验证顾客登陆

///

///

查询语句

/// 指定顾客数据集

public DataSet CustomerLogin(string SqlStr)

{

SqlCommand comm = new SqlCommand(SqlStr, conn);

SqlDataAdapter adapter = new SqlDataAdapter(comm);

DataSet DBSet = new DataSet();

conn.Open();

adapter.Fill(DBSet);

comm.Dispose();

conn.Close();

return DBSet;

}

6、将用户登录功能代码改为:

string Customername = TextBox3.Text;

string Customerpwd =

System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox4.Text, “MD5”);

string Sqlstring = “select * from test where uname='” + Customername + “'and upwd='” + Customerpwd + “'”;

DA mydata=new DA();

DataSet ds = mydata.CustomerLogin(Sqlstring);

if(ds.Tables[0].Rows.Count == 0)

{

Response.Write(“”);

}

else

{

//Response.Write(“”);string scriptString =common.RegScript(“登录成功!”);

Response.Write(scriptString);

}

第四篇:用struts2实现session权限检查同时控制用户重复登录

用struts2实现session权限检查同时控制用户重复登录

1.需要struts2的jar包 2.web.xml

index.htm

index.jsp

default.html

default.htm

default.jsp

struts2

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

struts2

/*

com.luosoy.SessionControl.UserSessionListener

3.Struts.xml

”-//Apache Software Foundation//DTD Struts Configuration 2.0//EN“

”http://struts.apache.org/dtds/struts-2.0.dtd“>

/>

class=”com.luosoy.SessionControl.SessionFilter“>

/index.jsp

/login.jsp

/control.jsp

index

4.jsp界面(1)login.Jsp

<%@ page language=”java“ contentType=”text/html;charset=UTF-8“

pageEncoding=”UTF-8“%>

<%@taglib prefix=”s“ uri=”/struts-tags“ %> <% %>

Insert title here

用户名:

密码:

第五篇:隧道实现方案总结

华为隧道配置方案总结 IPv4 over IPv6隧道配置

1.1 IPv4 over IPv6隧道简介

在IPv4 Internet向IPv6 Internet过渡的后期,IPv6网络已被大量部署,此时可能出现IPv4孤岛。利用隧道技术可在IPv6网络上创建隧道,从而实现IPv4孤岛的互 连。这类似于在IP网络上利用隧道技术部署VPN。在IPv6网络上用于连接IPv4孤岛的隧道,称为IPv4 over IPv6隧道。

图1 IPv4 over IPv6隧道组网图

IPv4 over IPv6隧道技术的原理如图1所示:

1)在边界路由器启动IPv4/IPv6双协议栈。

2)边界路由设备在收到从IPv4网络侧来的报文后,如果报文的目的地不是自身,就把收到的IPv4报文作为净荷,加上IPv6报文首部,封装到IPv6报文里。

3)在IPv6网络中,封装后的报文被传递到对端的边界路由设备。对端边界路由设备对报文解封装,去掉IPv6报文首部,然后将解封装后的IPv4报文转发到IPv4网络中。

1.2 IPv4 over IPv6隧道配置命令

具体配置步骤如下: 1)配置Tunnel接口

 行命令interface tunnel interface-number,创建Tunnel接口,并进入Tunnel接口视图。

#烽火对应命令:interface tunnel <1-65535>  执行命令tunnel-protocol ipv4-ipv6,将Tunnel类型指定为IPv4 over IPv6隧道。

#烽火对应命令:tunnel mode(ipip|gre|mpls-te),需要扩展为 tunnel mode(ipip|gre|mpls-te|ipv4-ipv6) 执行命令source { source-ipv6-address | interface-type interface-number },设置Tunnel接口的源IPv6地址或源接口。#烽火对应命令:tunnel source A.B.C.D,需要扩展为tunnel source(A.B.C.D |X:X::X:X)

 执行命令destination ipv6-address,设置Tunnel接口的目的IPv6地址。

#烽火对应命令:tunnel destination A.B.C.D,需要扩展tunnel destination(A.B.C.D |X:X::X:X)

 指定Tunnel接口的IP地址。执行命令ip address ip-address { mask | mask-length } [ sub ],配置Tunnel接口的IPv4地址。#烽火对应命令:ip address A.B.C.D/M 2)配置Tunnel的路由

 配置经过Tunnel接口的路由。可以使用静态路由和动态路由两种方式,这里不才赘述可以参考华为文档。

1.2.1 IPv4 to IPv6隧道配置实例

图1 IPv4 over IPv6隧道组网图

#RT2的配置文件: #RT4的配置文件:

IPv6 over IPv4隧道配置

2.1 IPv6 over IPv4隧道简介

在IPv4 Internet向IPv6 Internet过渡的初期,IPv4网络已被大量部署,而IPv6网络只是散布在世界各地的一些孤岛。采用专用的线路将这些孤岛互连起来,显然是不经济 的,通常的做法是采用隧道技术。利用隧道技术可在IPv4网络上创建隧道,从而实现IPv6孤岛的互连。这类似于在IP网络上利用隧道技术部署VPN的情况。

在IPv4网络上用于连接IPv6孤岛的隧道,称为IPv6 over IPv4隧道。为了实现IPv6 over IPv4隧道,需要在IPv4网络与IPv6网络交界的边界路由设备上启动IPv4/IPv6双协议栈。

图2 IPv6 over IPv4隧道组网图

IPv6 over IPv4隧道技术的原理如图2所示:

1)在边界路由器启动IPv4/IPv6双协议栈。

2)边界路由设备在收到从IPv6网络侧来的报文后,如果报文的目的地不是自身,就把收到的IPv6报文作为净荷,加上IPv4报文首部,封装到IPv6报文里。

3)在IPv4网络中,封装后的报文被传递到对端的边界路由设备。4)对端边界路由设备对报文解封装,去掉IPv4报文首部,然后将解封装后的IPv6报文转发到IPv6网络中。

2.2 IPv6 over IPv4隧道分类

根据创建隧道的方式,可以对隧道进行分类。目前,常用的IPv6 over IPv4隧道模式有以下几种。

     IPv6 over IPv4手动隧道

IPv6 over IPv4 GRE隧道(简称GRE隧道)IPv6 over IPv4自动隧道(简称自动隧道)6to4隧道 ISATAP隧道

2.2.1 GRE隧道

使用IPv4的GRE(Generic Routing Encapsulation)隧道也可以承载IPv6流,此时的GRE隧道称为IPv6 over IPv4 GRE隧道。与IPv6 over IPv4手动隧道相同,GRE隧道也是两点之间的链路,每条链路都是一条单独的隧道。GRE隧道不与特定的乘客或传输协议绑定,只把IPv6作为乘客协 议,把GRE作为承载协议。

GRE隧道也是在隧道两端的边界路由设备上通过人工配置而创建的,也需要静态指定隧道的源IPv4地址和目的IPv4地址。与手动隧道不同的是,GRE隧道为了增强隧道的安全性,可以设置对GRE报文头进行校验以及对隧道的关键字进行验证。GRE隧道可用于边界路由设备之间,或者用于边界路由设备与主机系统之间。隧道两端的主机和路由设备均需支持IPv4和IPv6协议栈。

2.2.2 自动隧道

要创建IPv6 over IPv4自动隧道,需要使用一类特殊的IPv6地址,即兼容IPv4的IPv6地址。兼容IPv4的IPv6地址格式为: 0:0:0:0:0:0:IPv4-address

其高阶96bits均为0,其低阶32bits是一个IPv4地址。该IPv4地址必须是IPv4网络中可达的IPv4地址,且不能是组播地址、广播地址、环回地址或未指定的地址(0.0.0.0)。

在配置自动隧道时,只需要在边界路由设备或主机上指定隧道源地址,不需要指定隧道的目的地址。隧道目的地址是从原始的IPv6报文的目的地址中获取的。

IPv6 over IPv4自动隧道通常用于孤立的IPv4/IPv6双协议栈主机需要穿过IPv4网络访问远端IPv6网络的情况。在孤立的IPv4/IPv6主机和IPv4/IPv6路由设备之间需要配置自动隧道。

在建立自动隧道时,需要隧道两端都要配置兼容IPv4的IPv6地址,兼容IPv4的IPv6地址又依赖于隧道的物理接口的IPv4地址,受到IPv4地址短缺的限制,因而有一定的局限性。2.2.3 6to4隧道

6to4隧道也是一种将多个IPv6孤岛通过IPv4网络互连的机制。6to4隧道可在孤立的IPv6网络和IPv4网络之间的边界路由设备上配置。6to4隧道两端的边界路由设备必须同时支持IPv4和IPv6双协议栈。

6to4隧道与手动配置隧道的主要区别在于:6to4隧道可以是点到多点的连接,而手动隧道仅是点到点的连接。所以6to4隧道的路由设备并不是成对配置的。

6to4隧道与自动隧道类似,它可自动查找隧道的另一端点,但它不需要指定兼容IPv4的IPv6地址。

6to4隧道使用了一种特殊的IPv6地址,即6to4地址,其格式为: 2002:IPv4地址:子网ID:接口ID

6to4地址的前缀是2002:IPv4地址,前缀长度为48bits。其中IPv4地址是为IPv6孤岛申请 的一个全球唯一的IPv4地址。在IPv6/IPv4边界路由设备与IPv4网络链接的物理接口上必须配置该IPv4地址。子网ID的长度为 16bits,接口ID的长度为64bits,均由用户在IPv6孤岛内分配。

如图3所 示,Site1和Site2均为6to4网络,6to4网络内的主机和路由设备被分配了6to4地址。Site1内的主机和路由设备的6to4地址内嵌入 的IPv4地址就是路由设备A到IPv4网络接口的IPv4地址。Site2内的主机和路由设备的6to4地址内嵌入的IPv4地址就是路由设备B到 IPv4网络接口的IPv4地址。路由设备A和路由设备B均为6to4路由设备。

图3 6to4隧道

Site1内的主机要访问Site2内的主机时,其工作原理如下: 1)IPv6报文被传送到路由设备A;

2)路由设备A检查IPv6报文的目的地址,发现是6to4地址,从该6to4地址中获得6to4隧道对端的IPv4地址;

3)路由设备A将该IPv6报文封装到IPv4报文中,IPv4报文头的目的地址就是隧道对端的IPv4地址,源地址就是隧道本端的IPv4地址;

4)路由设备A将该IPv4报文通过IPv4网络转发到路由设备B; 5)路由设备B进行解封装操作,获得原来的IPv6报文,然后将该IPv6报文在Site2内被送到目的主机。2.3 GRE隧道配置命令

1)配置Tunnel接口

 行命令interface tunnel interface-number,创建Tunnel接口,并进入Tunnel接口视图。

#烽火对应命令:interface tunnel <1-65535>  执行命令tunnel-protocol ipv6-ipv4 auto-tunnel,将Tunnel类型指定为IPv6 over IPv4自动隧道。

#烽火对应命令:tunnel mode ipv6ip(6to4|isatap|),需要扩展为 tunnel mode ipv6ip(6to4|isatap|gre|) source { ipv4-address | interface-type interface-number },指定Tunnel的源地址或源接口。

#烽火对应命令:tunnel source A.B.C.D,需要扩展为tunnel source(A.B.C.D |X:X::X:X)

 destination ipv4-address,指定Tunnel的目的地址。

#烽火对应命令:tunnel destination A.B.C.D,需要扩展为tunnel destination(A.B.C.D |X:X::X:X)

 指定Tunnel接口的IPv6地址。ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length },配置Tunnel接口的IPv6地址。

#烽火对应命令:ipv6 address X:X::X:X /M 2.3.1 GRE隧道配置实例

图4 配置IPv6 over IPv4 GRE隧道组网图

#RouterA的配置文件:

#RouterC的配置文件:

2.4 自动隧道配置命令

1)配置Tunnel接口

 行命令interface tunnel interface-number,创建Tunnel接口,并进入Tunnel接口视图。

#烽火对应命令:interface tunnel <1-65535>  执行命令tunnel-protocol ipv6-ipv4 auto-tunnel,将Tunnel类型指定为IPv6 over IPv4自动隧道。

#烽火对应命令:tunnel mode ipv6ip(6to4|isatap|),需要扩展为 tunnel mode ipv6ip(6to4|isatap|auto-tunnel|) source { ipv4-address | interface-type interface-number },指定Tunnel的源地址或源接口。

#烽火对应命令:tunnel source A.B.C.D,需要扩展为tunnel source(A.B.C.D |X:X::X:X)

 指定Tunnel接口的IPv6地址。ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length },配置Tunnel接口的IPv6地址。

#烽火对应命令:ipv6 address X:X::X:X /M 2.4.1 自动隧道配置实例

图5 配置IPv6 over IPv4自动隧道组网图

#RouterA的配置文件:

#RouterB的配置文件:

2.5 6to4隧道配置命令

1)配置Tunnel接口

 行命令interface tunnel interface-number,创建Tunnel接口,并进入Tunnel接口视图。

#烽火对应命令:interface tunnel <1-65535>  执行命令tunnel-protocol ipv6-ipv4 auto-tunnel,将Tunnel类型指定为IPv6 over IPv4自动隧道。

#烽火对应命令:tunnel mode ipv6ip(6to4|isatap|) source { ipv4-address | interface-type interface-number },指定Tunnel的源地址或源接口。

#烽火对应命令:tunnel source A.B.C.D,需要扩展为tunnel source(A.B.C.D |X:X::X:X) 指定Tunnel接口的IPv6地址。ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length },配置Tunnel接口的IPv6地址。

#烽火对应命令:ipv6 address X:X::X:X /M

2.5.1 6to4隧道配置实例

图6 配置6to4隧道组网图

#RouterA的配置文件:

#RouterB的配置文件:

下载单点登录实现方案心得(5篇范例)word格式文档
下载单点登录实现方案心得(5篇范例).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    数字签名方案的实现

    数字签名方案的实现 欧家权、应用数学、2111011451 一:数字签名的背景 随着信息、电子技术的迅速发展,全球己步入信息社会。由于整个社会将形成一个巨大的计算机网络,任何部门......

    实现伟大中国梦心得

    “实现伟大中国梦、建设美丽繁荣和谐四川” 主题教育学习心得体会 ——xxx 积极响应四川省委的号召,按照县委和粮食局党委的安排部署,我公司积极开展活动,从5月中旬开始,用......

    党课心得-实现自我价值

    我想实现我的价值 数学与应用数学之前,我以为要实现自己的价值就是要先不断的让自己变得更优秀,而优秀的标准就是那几个数据,可实际不然。因为,价值来源于客体,取决于主体,产生......

    智能酒店网络实现方案

    智能酒店网络实现方案 系统建设总体目标 在先进的计算机、通信技术基础上,我们采用系统集成方式,将连锁酒店的网络平台,通过现有城域网,建设成以光纤为连接介质的,大型局域网。实......

    冒泡排序及选择排序Java实现心得

    /*选择排序*/ public class SelectSort2 { public static void sort(int[] tempArr) { for(int i =0;i......

    奋力实现第一个百年奋斗目标 (心得)

    奋力实现第一个百年奋斗目标 2016-04-25 09:21:53来源:人民日报作者:责任编辑:赵伟露全面建成小康社会体会 顾 彬 根据学习计划安排,本人认认真真的带着问题阅读了奋力实现第一......

    认识自我,实现超越(心得篇)

    认识自我,实现超越前两天,读了一篇去年的安徽高考作文《弯道超越》,笔者从赛车场上的一个术语很好地引申到了“弯道超越”其实就是对自我的超越、对自我认识够不够的问题上。掩......

    铁路供电系统的特点及实现方案

    铁路供电系统的特点及实现方案摘要:铁路供电系统分为两部分,一部分为提供铁路行车、提供电源的牵引供电系统,一部分为承担牵引供电以外所有铁路负荷的供电任务,包括信号系统、生......