IBM跨域认证简单解决方案.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IBM跨域认证简单解决方案

跨域认证简单解决方案-使用第三方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)

文档评论(0)

ggdxyz3 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档