IBM跨域认证简单解决方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

跨域认证简单解决方案-使用第三方Cookie
概述
跨域认证,意味着用户在一个入口登录后可以无障碍的漫游到其它信任域。

也就是所谓的单点登录(SSO)。

对于大型的服务提供着,常用的方法有:使用安全断言标记语言(SAML)、基于公开密钥技术(PKI-Pubic Key Infrastructure)的Kerberos网络认证协议或者使用Windows采用的认证方案LanManager认证(称为LM协议-对于NT 安装Service Pack4以后采用NTLM v2版本)。

这些认证方式需要单独的认证服务器,对于普通的使用者来说,既难已实现,也不太可能搭建单独的服务器。

有没有一种简单又安全的认证方式呢?
本文的目标
使用Cookie和SHA1结合实现简单又安全的认证,如用户在中登录后,无需再次登录就可以
直接使用中提供的服务。

Cookie是什么
Cookie 是由Web 站点创建的小文本文件,存储在您的计算机上。

这样,当您下一次访问该站点时,它可以自动获取有关您的信息,例如浏览喜好,或您的姓名、地址及电话号码。

关键词
SSO(Single Sign-On)-单点登录
SAML(Security Assertions Markup Language)-安全断言标记语言
Cross-Realm Authentication -跨域认证
PKI(Pubic Key Infrastructure)-公开密钥技术
SHA1(Secure Hash Algorithm 1)-安全哈希算法1
P3P(The Platform for Privacy Preferences)隐私参数选择平台
单一认证模型
1、用户使用a_logon.aspx登录服务器
2、在a_logon.aspx中自动嵌入iframe其src指向的b_auth.php
3、认证成功后在客户端写入Cookie,通过iframe调用b_auth.php 传递认证参数(经过SHA1后)
4、b_auth.php认证成功后在客户端写入认证Cookie
5、完成和的统一认证
问题:
上面提到的过程如果使用FireFox浏览器b_auth.php能够成功写入Cookie,如果使用IE6.0及
以上版本b_auth.php写入Cookie失败。

原因:
IE 6.0支持P3P,IE 6的缺省隐私等级设置为"中"——即"阻止没有合同隐私策略的第三方
cookie"。

而在用户浏览a_logon.aspx时写入的为第一方Cookie,其嵌入的iframe指向
b_auth.php
这时写入的就为第三方Cookie了,所以它是被IE当在了大门外。

解决方法:
让用户改变IE安全策略,允许第三方Cookie,这似乎很简单,可是用户会听你的吗?另一种
解决方法使用P3P,在b_auth.php中添加P3P头。

网上google一下好像很多,本着不求甚解的原则 Copy来就是了。

如下:
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"')
实现代码
a_logon.aspx(C#伪代码)
//////////////////////////////
if( !Page.IsPostBack )
return;
if( VerifyPassword( sPwd ) )
{
string sSalt = CreateSalt(12);
Session.Add("User",sName);
Session.Add("Salt",sSalt);
string sHash = Hash( sName+sPwd + sSalt,"SHA1");
Session.Add("Passport",sHash);
string sR = "<iframe> id='aa'
src='/b_auth.php?name=%sName%&salt=%sSalt%&passport=%sHash%'
width='0' height='0'> </iframe>";
Response.Write( sR);
}
/////////////////////////////////////////////
b_auth.php
----------------------------------------
<?php
//---------------------------
// cookie auth in multi-domain
// Author: Lazen lau
// Mail: lazen_cn@
// History:
// 2007-05-17 10:00 release 1.0
// Copyright (C) 2007
//---------------------------
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"'); $user = $_REQUEST['name']; $salt = $_REQUEST['salt']; $passport = $_REQUEST['passport'];
$hr = "auth failed";
if( !empty($passport))
{
//get usr pwd
$pwd = "888888";
//md5
$src = $user.$pwd.$salt;
$auth = strtoupper(sha1($src));
if( $auth == $passport )
{
setcookie("ticket",$passport);
$hr = "auth suc";
//else
// $hr = $user." a= ".$auth." s = ".$passport;
}
echo $hr;
?>
-----------------------------------------------------------------------------
结束语
上面演示的跨域认证方式,需要中保存有用户的口令,这往往也带来麻烦,一种改进方式是
b_auth.php在认证
用户时可以使用调用a_auth.aspx在中完成再次认证,也可以使用SOAP或者XML Http Request 进行认证。

参考资料
Google AdSense
https:///adsense/login/zh_CN/?hl=zh_CN
P3P
/P3P/details.html
XML 安全: 使用SAML 确保可移植的信任
/developerworks/cn/xml/x-seclay4/
IBM Tivoli Access Manager 6.0 (电子商务访问控制解决方案):
IBM Tivoli是业界领先的管理技术软件,是IBM IT 服务管理的核心部分。

Tivoli是唯一一个跨越主机系统、客户机/服务器系统、工作组应用、企业网络、Internet服务器的端到端的解决方案。

Tivoli软件以IBM的世界级服务、支持和研究为坚强后盾,为客户提供一个无缝集成、灵活的随需应变基础架构管理解决方案,采用强健的安全机制将雇员、业务伙伴和客户连接起来。

Tivoli软件能够使企业降低总体拥有成本,提高IT基础架构的管理及服务水平。

Tivoli解决方案主要包括系统管理解决方案,存储管理解决方案和安全管理解决方案。

IBM Tivoli Access Manager for e-business 是一个获奖的、基于策略的电子商务访问控制解决方案和Gartner 的Magic Quadrant 中处于领先地位的企业应用程序。

它可以帮助您管理日益发展和日渐复杂的电子商务,控制不断攀升的管理成本,解决在大量Web 和应用程序资源中安全策略实施方面的难题。

Tivoli Access Manager for e-business 与电子商务应用程序集成在一起,以即装即用(out-of-the-box)的方式提供一种安全、统一和个性化的电子商务体验。

通过提供身份验证和授权API 并与应用程序平台(如J2EE™ )集成在一起,Tivoli Access Manager for e-business 能帮助您安全地访问业务关键型应用程序和分散在扩展企业中的数据。

通过使用Access Manager 跨域单一登录(SSO)技术和安全断言标记语言(Security Assurance Markup Language,SAML)以及其他标记传递(token-passing)协议,基于Web的SSO可以跨越多个站点或者多个域。

产品要点:
在保护单个企业或联邦环境的安全时,为电子商务计划提供统一的身份验证和授权。

在采用Web、Microsoft、telnet 和主机应用程序环境中支持单一登录。

在基于标准的Java 2 Enterprise Edition (J2EE) 应用程序支持下,可以快速和可伸缩地部署Web应用程序。

通过新支持的Java 2、z/OS 上的Java 身份验证和授权(Java Authentication and Authorization,JAAS)API 以及z/OS 上的WebSphere,改进了对主机应用程序的支持。

通过高伸缩性的代理体系结构和/或易于安装的Web 服务器插件、基于规则和角色的访问控制、对主要用户注册中心和平台的支持以及可用于进一步定制安全性的高级API,提供了设计的灵活性。

通过提供统一的身份和安全管理,降低了应用程序开发、部署和管理的成本。

通过IBM 在Web 安全标准开发方面的领导地位,保持将来安全和身份管理的连续性。

Tivoli Access Manager for e-business 允许您定义综合策略,并基于该策略管理安全性,而无论该策略是基于用户角色的还是基于业务规则的。

您可以根据每个用户的职责,授予员工、合作伙伴、供应商和客户动态的、基于角色的访问权。

您可以将用户分组并向组指派权限,简化跨多个应用程序和资源的访问控制管理。

业务规则在运行时进行求值,并保存在应用程序以外,这样就允许更改影响访问的策略参数,而无需重写和重新编译应用程序--这种特性有助于动态提高应用程序部署和适应的速度。

应用程序平台(如Web Servers)向应用程序开发人员提供安全性和其他服务。

但是这样的话,管理访问权就像竖井(silos)一样与业务线(lines-of-business)隔离开来,它依赖于每个应用程序环境中可用的技术和工具。

为了使业务能在随需应变的模式下运作,Tivoli Access Manager 提供了一个关键功能作为公共服务,即面向服务的体系结构(Service-Oriented Architecture,SOA)。

Tivoli Access Manager for e-business 为异构环境提供安全性。

采用该体系结构后,访问控制所基于的层是单一且前后一致的,这样可以快速部
署应用程序,与"安全孤岛"方法相比,可以更加准确而一致地管理安全性。

Tivoli Access Manager for e-business 通过下列方法提供自我保护环境:
使用单个安全策略服务器强制实施跨多个文件类型、应用程序提供商、设备和协议的安全性,从而防止未授权的访问。

Web SSO,保持密码和用户的完整性。

用于发现问题或潜在问题的健壮的审计和信息收集工具。

还通过下列方法提供了自我优化环境:
负载均衡和自动反映Web 对象空间。

基于开放标准的高可用性和高伸缩性体系结构。

Tivoli Access Manager for e-business 是IBM Identity Management 解决方案的集成部件,可以帮助您在线获得用户、系统和应用程序,并能提高生产效率,还可以保持动态顺应性以便增加IT 环境的弹性和安全性,同时有助于减少成本并最大化投资回报率。

Tivoli Access Manager 是第一个接受Common Criteria Certification (EAL 3) 的解决方案,它满足严格的国际上认可的安全标准。

IBM Tivoli Identity Manager 是一种用于管理用户和帐户定义的产品。

通过控制系统上的帐户定义,它允许公司控制用户能够访问哪个系统。

IBM Tivoli Access Manager 是一种访问控制产品。

它通过强制实施访问控制策略防止对受保护的资源进行未授权的访问。

Access Manager 可用于保护多种类型系统资源的访问,从单个文件到Web 站点。

Identity Manager 和Access Manager 产品互相补充。

Identity Manager 控制系统中可以存在什么样的用户帐户,而Access Manager 控制授权用户在系统上执行的操作。

为了完成这些任务,两种产品都维护用户的注册信息。

这些产品对定义在注册表中的用户强制实施用户访问和授权策略。

Tivoli Access Manager for Business Integration 允许您加强管理跨多台服务器的访问控制策略。

此管理可通过基于Web 的中央管理工具完成,无需系统管理员本地设置每一服务器控制台的访问控制规则。

该管理工具也支持多级委托,允许资源所有者对其资源进行维护和管理控制。

您无需修改现有应用程序或改变常规WebSphere MQ 环境,就能使用Tivoli Access Manager for Business Integration 的功能。

相关文档
最新文档