当前位置:软件学习 > 其它软件 >>

[转载]认证越来越复杂



转自:http://rocksun.cn/authentication-methods/


认证是啥?好多初学者往往说不清楚,一句话的解释就是证明自己是自己所声称的那个人。在Web应用里,认证 过程通常就是在表单里输入用户名密码,提交到服务器上的过程。但是,认证过之后,服务器是怎么知道用户 已经经过了认证呢?


我们知道,http协议本身没有所谓的会话概念,是无状态的,也就是说请求与请求之间互相并无联系。所以, 我们需要一种辅助方法,建立一种会话的方 法。于是人们想到了使用cookie,当通过浏览器访问web服务器时 ,web服务器就发给客户端一个用作会话ID的cookie,例如 sessionid=718e498517d8cfe9,其中sessionid为 cookie的名称,而后面的则是它的值。在浏览器之后的请求中,都会 将这个cookie值发送回web服务器,web服 务器根据这个值就知道了,原来你是那个XXX阿。


通过共同保存一个会话id,建立起不同HTTP请求之间的联系,只要浏览器支持cookie,这个模式就没有问题。 以前为一个客户做了个web系 统,客户以前还有个单独的小系统,运行在别的服务器上,他们希望登陆一次就 能访问两个系统,这时cookie的模式有点问题。因为安全性的原因,浏览器不 允许跨域的cookie访问,例如 IBM的网站,就访问不到Oracle网站的cookie,所以跨域情况下,cookie的模式被打破了。我们公司的一 位大 哥,是典型的实干家,他很快找到了方案。因为那个小系统会嵌入我们程序的框架中,所以对那个小系统的访 问都是通过我们的系统进行的,所以他把所有访问 的那个小系统的地方直接加上了用户名密码参数(那时,用 户名密码真的都是明文),然后改造那个小系统,使之实现一个登陆过程,然后进入访问的页面。除此之 外, 他还写了些触发器,可以同步了数据库里的用户名密码。


尽管解决了我们的客户,但是还有一些问题。例如我们的客户直接访问那个小系统,不 使用我们的框架,那么 就还是会提示没有登陆;此外,直接传递给浏览器用户名密码实在不安全,好在我们的客户都还没觉得这有什 么大不了的。尽管我这位同事的 方案有些缺陷,但是给了我们一些提示,尽管cookie无法跨域共享信息,可是 url可以阿,这也是CAS许多单点登陆系统所采用的方式。


例 如有A和B两个系统,希望在一个地方登陆就可以访问另外一个,那我们便准备一个单点登陆的服务器,用户 可以访问,作为A、B以及未来的系统的认证服务器。 当用户访问A系统时,A系统就会判断这个用户有没有登陆 ,如果没有,那么A会将用户转向到认证服务器上,因为这个用户从来没有登陆过,所以认证服务器上没 有任 何记录,所以会提示输入用户名密码,如果正确,认证服务器便把将用户重定向会A系统,并且在url上附加一 个类似 key=718e498517d8cfe9的东西,A系统根据这个key联系认证系统,就知道了这是哪个用户,并且经过了 认证。然后用户访问B系统,这时 B系统也会将用户转到认证服务器,因为用户刚刚访问过认证服务器,cookie 还在,所以认证服务器知道这个用户经过了认证,于是它便直接把 key=718e498517d8cfe9通过url传递给了B, 然后B也就知道了用户经过了认证。


随着企业信息化建设的升级,系统越来越繁杂,各种各样的认证需求也不断出现,这也迫使我们需要结合更多 的系统。原本的单点登陆系统往往都是为了针对特定问题实现的,使用了各种自定义的协议,之间并不兼容, 将其结合在一起需要耗费大量的接口调整工作,所以我们需要一种规范来规定认证信息的交换协议,于是SAML 出现了。和CAS不一样,SAML不是一个系统,而是一种规范,遵循SAML规范开发的产品,都使用了相同的认证信 息交换接口,所以理论上就可以无缝的使用相同的认证方式。现在大家热谈的SOA,希望能灵活的配置web服务 ,而SAML无疑正是其中认证环节上的基础,虽然标准总是大厂商制定的,但无论如何,跟着大部队走,比自己 发明轮子要好。 --------------------编程问答-------------------- 认证还是很有必要的,客户和合作伙伴就可以更轻松地集成、访问、分析和管理这些产品的安全
--------------------编程问答-------------------- 通过认证可以降低应用产品和中间件的总体拥有成本
--------------------编程问答-------------------- 我觉得企业用户比较受用,可以获得一个集成更紧密的通用架构和管理框架
--------------------编程问答-------------------- 中间件产品还是有一定好处,能深入地了解业务状况
--------------------编程问答-------------------- 还是用来有效地开发大多数基于服务的架构并保证这些架构的安全性
--------------------编程问答-------------------- 截获Cookie的人不需要知道这些字符串的含义,他们只要把别人的Cookie向服务器提交,并且能够通过验证,他们就可以冒充受害人的身份,登陆网站。这种方法叫做Cookie欺骗。这一点需要引起大家的重要才是。 --------------------编程问答-------------------- 关于中间件有很多新资料现在可以在官网下载:http://wmdata.com.cn/oracle/iwom-OFM/index.asp?frm=1  --------------------编程问答-------------------- “证明自己是自己所声称的那个人” 呵呵 好搞笑
--------------------编程问答-------------------- SAML。。。 
--------------------编程问答-------------------- 写得有点乱 ..
--------------------编程问答-------------------- 各协议间的兼容性很重要 
--------------------编程问答-------------------- 中间件?现在很热门的话题嘛!我也略知一二,谢谢啦
补充:企业软件 ,  中间件
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,