文档介绍:
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。:1、跨子域单点登录。如 和 ,实现跨子域单点登录很简单,可以利用cookie,设置Domain为”.'即可,这里就不再赘叙。2、完成跨域单点登录。如 这2个站点之间实现共享一个身份验证系统,只需在一处地方登录,下面主要谈下这种方式的实现方法。 跨域单点登录实现原理:当用户第一次访问web应用系统1的时候,因为还没有登录,会被引导到认证中心进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,返回给用户一个认证的凭据;用户再访问别的web应用的时候就会将这个Token带上,作为自己认证的凭据,应用系统接受到请求之后会把Token送到认证中心进行效验,检查Token的合法性。如果通过效验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。所有应用系统共享一个身份认证系统。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志,返还给用户。另外,认证系统还应该对Token进行效验,判断其有效性。 所有应用系统能够识别和提取Token信息要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对Token进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。比如说,我现在有3个分站点和1个认证中心(总站)。当用户访问分站点的时候,分站点会发
Token到验证中心进行验证。验证中心判断用户是否已经登录。如果未登录,则返回到验证中心登录入口进行登录,否之则返回Token验证到分站点,直接进入分站点。 如图所示: 上面是实现单点登录的原理图,:一、新建网站 MasterSite,作为总站认证中心。,采用form登录验证。配置如下:<authentication mode=”Forms”> <forms name=”.AspxFormAuth” loginUrl=”” defaultUrl=”” protection=”All” path=”/” timeout=”120”> </forms> </authentication> <authorization> <!--拒绝所有匿名用户--> <deny users=”?”/> </authorization> <authentication mode=”Forms”><forms name=”.AspxFormAuth” loginUrl=”” defaultUrl=”” protection=”All” path=
”/” timeout=”120”></forms></authentication><authorization><!--拒绝所有匿名用户--><deny users=”?”/></authorization> ,用来进行登录。代码如下:HTML Code:<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”” Inherits=”_Default” %> <!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML Transitional//EN” ”-”> <html xmlns=”” > <head runat=”server”> <title>总站登录</title> </head> <body> <form id=”form