| 作者: | 北京群英汇信息技术有限公司 |
|---|---|
| 网址: | http://www.ossxp.com/ |
| 版本: | 3.1.1-11 |
| 日期: | 2011-07-06 11:44:59 |
| 版权信息: |
目录
单点登录即 Single Sign-On,多个 Web 应用仅需登录一次,是群英汇众多 Web 应用的唯一登录入口。
群英汇的单点登录系统源自于开源项目 CoSign ,具有下列特点:
访问单点登录系统的两个方法:
以第一个方法举例:
访问单点登录系统,输入正确的用户名和口令,如图1。
图1:单点登录对话框
登录成功,显示服务列表,如图2。
图2:登录成功显示个人信息和服务列表
单点登录采用 HTTPS 协议,这必然会涉及到证书问题。
大部分企业引入我们的系统,是解决企业内部信息服务的整合和登录,而非对外从事网银等业务, 因此企业没有必要花费高价去购买专业机构签发的证书,可以使用群英汇免费签发的证书。
使用群英汇签发或者企业自己签发的证书有一个问题:浏览器对证书不信任, 在访问相应 Web 应用时会弹出警告对话框,让用户确认是否信任所访问的网站。这是因为:
我们知道 HTTP 协议在网络中是明文传输,会导致信息被监听,窃取,尤其是认证过程中, 用户名和口令的明文传输,风险最大。
而 HTTPS 协议则要安全的多。其安全性来自于两个方面。
证书起到的作用就是上面第2点所提到的身份识别问题,即提供防范中间人劫持。 中间人劫持,就是你请求认证的服务器被黑客通过技术手段偷换,造成您访问的服务器并非真正的服务器, 很多人在使用网银,在交易过程造成帐号泄漏,资金被盗,就是因为访问了钓鱼网站(被偷换的假的服务器)。 证书,是防止网络钓鱼的最后的屏障。
如前所述,大部分企业部署我们的单点登录系统,没有去单点必要购买昂贵的 HTTPS 证书。 因为大部分企业引入我们的系统,是解决企业自身信息服务的整合和登录, 而并非对外提供网银等安全服务。
但是,这么一来,在员工登录单点登录系统时,浏览器会显示关于证书的警告信息。尤其是 IE7, IE8 显示的警告信息最不友好,会让人误以为网站出现了异常!
我们先看看各色浏览器在遇到证书不可信的 HTTPS 网站时的表现:
IE7, IE8 访问单点登录,显示的证书警告
对于我们信任的网站,如果想要继续浏览,就不要点击带有对号图标,因为那样直接关闭浏览器。选择“忽略证书错误,继续访问”, 就可以访问单点登录网站了。注意在标题栏有关于证书错误的提示。
IE6 访问单点登录,显示的证书警告的对话框,选择“是”,就可以继续浏览。
Firefox 访问单点登录,显示的证书警告。如果要浏览该网站,要点击“我已充分了解可能的风险”,按照提示操作即可访问。
有一个一劳永逸的方法,就是将群英汇的根证书导入浏览器中,就可以直接对证书建立信任, 不必在每次打开浏览器访问加密网站时,一遍又一遍的处理证书警告错误。我们以 IE7 为例:
浏览器输入地址 http://www.ossxp.com/ssl/ 。或者在您单点登录网站的 /ssl 目录也有我们根证书的拷贝。 点击文件 ossxp-ca.crt 。
打开 ossxp-ca.crt,显示该证书文件的详细信息。点击 “安装证书” 按钮。
在 Windows XP 导入此证书文件,直接选择默认选项,点击下一步,即可完成安装。
安装完毕后,可以通过 IE 菜单中的“工具” --> “Internet 选项” 的内容标签页,查看证书安装位置:
![]()
IE6 的 Internet 选项设置页面
![]()
证书被安装到了“受信任的根证书颁发机构”。
在 Windows 7 中导入证书,如果选择默认的安装选项,证书被安装到了错误的位置,需要在安装过程中人工介入:
在证书存储选择界面,不要自动选择证书存储区域,如下:
点击浏览按钮,打开“选择证书存储”对话框。在该对话框中,选择“受信任的根证书颁发机构”。
点击完成开始导入证书
导入过程会显示一个警告页面,选择“是”,安装证书
证书导入完毕
将群英汇根证书正确导入后,再打开单点登录网站,不再出现证书警告信息,直接打开 HTTPS 网站。
浏览器的地址栏显示证书状态正常
一些特殊的应用,要求用户通过更为严格的认证,一般采用称为“双因子认证”的认证模式。什么是双因子认证呢?
普通的认证,仅仅通过回答 "what you known" (知道什么)问题完成认证。
如:口令认证模式,用户只需要提供自己所知道的口令或者用户名+口令的方式即完成认证。
双因子认证除了要回答普通认证的 "what you know" 问题,还要回答 "what you have" (有什么)的问题
如:指纹认证,虹膜认证等都是常见的双因子认证。
群英汇单点登录认证系统,也包含了双因子认证,为SSH动态端口打开(芝麻开门)、邮件列表管理员登录等服务提供授权验证。
以邮件列表管理员登录为例。邮件列表管理员在访问邮件列表的管理接口的时候,向单点登录系统发出 admin_list 的认证因子请求。 单点登录系统会首先检查是否通过了口令认证,然后检查该用户是否属于 mailman 管理员用户组。下面展示一下双因子认证过程。
邮件列表一览页面(处于 未 登录状态)
尚未登录
点击登录,第一次进入单点登录界面
输入用户名口令完成 "what you konw" 的认证
处于登录状态的邮件列表一览页面
登录成功。注意页面中有指向 “列表管理界面” 的链接
访问列表管理概览界面,再次跳转到单点登录,要求附加认证,即 admin 因子认证
注意浏览器地址栏的factors 参数以及页面中红色警告
如果再次认证过程中,输入错误的用户名口令,显示出错信息
输入错误的用户名或口令
如果用户不具有请求的管理员权限,显示出错信息
因用户若不具有相应权限,admin 认证因子失败
如果通过 admin 认证因子,显示列表管理员概览页
管理员概览页
邀请码认证是口令认证之外的另外一种认证方式。邀请码由管理员进行设置,为特殊用户提供无须用户注册即可访问某些服务。
示例:
邀请码登录,需要输入正确的邀请码,用户名处的邮件地址不作为验证依据
邀请码登录
邀请码输入正确后,以该邀请码对应的用户帐号登录,本例为 demo 用户
![]()
邀请码登录成功
创建新帐号,获取忘记口令是和认证相关的两个重要的功能。实际上,这两个功能并非由单点登录系统本身提供, 而是由群英汇用户管理平台提供的功能。在群英汇用户管理平台的帮助中,会具体讲述自建帐号以及获取忘记口令的方法。
在这里,我们仅仅介绍一下单点登录平台提供的获取忘记口令以及自建帐号的链接。
在单点登录的用户名、口令输入对话框下面有一个“需要创建帐号或者找回口令?”的文字链接。 点击该链接,便在页面左侧弹出自建帐号以及获取忘记口令的帮助信息。
自建帐号和获取忘记口令的帮助
在单点登录成功后,是否在访问其他 Web 应用时,都应该处于登录状态呢?
实际上每个应用的登录过程都有着各自不同的实现,需要注册该服务所独占的 cookie, session 等。单点登录过程不应该也很难一次性的跨站的注册不同的服务专有 cookie。
因此即使用户通过了单点登录,其他应用也并非都已经处于登录状态。但是对于那些仍然处于非登录状态的应用,只要点击一下各自的登录链接,无须重新输入口令,自动完成登录。
不允许匿名访问的应用,会自动登录
因为这类应用不允许非登录状态的存在,在访问该应用时,自动实现 cookie 注册,页面跳转等一系列登录动作。
在后台发生的cookie关联等动作是用户不可见的,前台发生的页面跳转则因为已经在单点登录平台中通过身份验证而使跳转很快就返回应用页面,用户很难察觉到登录过程。
允许匿名访问的应用,存在未登录的状态
有的应用因为要支持匿名访问,存在未登录的状态,即使用户实际上已经经过了单点登录的身份验证。 这时只要用户点击应用本身提供的登录链接,会实现自动登录。登录过程也如上面提到的,对于已经通过单点登录的用户,登录过程是透明的。
单点登出,就是在单点登录系统中点击退出登录,使得登录 cookie 失效后,其他已经登录的应用自动处于退出状态,而不用一一进到各个应用中,单独点击退出登录。
在实现上,是由 Web 服务器的过滤器插件实现的,而为了保证运行效率不受影响,检查登录状态的有效性不是实时运行的,而是要间隔一段时间,这个间隔的时间缺省是两分钟。
也就是说,在单点登录平台中退出登录,其他已经处于登录状态的系统则仍可能处于已登录状态,不过最多两分钟这些应用马上会自动退出登录。
如果您忘记口令,千万不要执著的尝试口令,因为一旦口令验证失败超过一定的次数(例如每分钟口令验证失败四次),您的 IP 将会被系统屏蔽一段时间(例如10分钟)。
这么做的原因是,防止黑客的暴力口令破解,当黑客尝试口令到达阈值,自动封掉其IP,让其知难而退。
循环重定向,就是当您访问某个应用,点击登录的时候,发生浏览器频繁的在单点登录系统和应用系统循环重定向。单点登录系统会捕捉到这个异常,返回一个错误页面。
循环重定向错误
发生单点登录循环重定向错误,有几种可能:
时钟设置错误
服务器的时钟和您本地的时钟不匹配。一般情况下,是你机器的时钟设置到了未来的某个时间,导致服务器发放的 cookie 被您的浏览器错误的当做过期 cookie 而无法被设置。如果是这样的话, 正确设置您机器的时钟就可以解决问题。
访问非正规的 URL
单点登录跨站 cookie 的实现,要求每个应用只能用唯一的域名来访问,如果使用其他的域名访问,会导致 cookie 注册失败,进而造成循环重定向。
因此遇到循环重定向,看看其他能够正常访问该系统用户的访问地址是什么?使用正确的域名访问相关应用,可能就会解决此类循环重定向问题。
服务器配置错误
还一种可能是管理员的配置错误,导致服务本身并未和单点登录系统关联,造成登录不成功,进而浏览器频繁在服务的登录界面和单点登录系统之间频繁跳转。
对于这一类循环重定向错误很容易定位,因为此时所有的用户都无法登录此应用,一点击登录,就都会陷入循环重定向。
在之前的循环重定向错误中,我们提到由于访问非正规 URL,造成循环重定向。实际上管理员可以配置 Web 服务器,当用户访问非正规 URL 时,显示地址无效错误,而不是陷入地址重定向而显示一个让人手足无措的循环重定向错误。
地址校验错误
对于此类问题的解决方法是: