跨域认证简单解决方案-使用第三方Cookie概述 跨域认证,意味着用户在一个入口登录后可以无障碍的漫游到其它信任域。也就是所谓的单点登录(SSO)。对于大型的服务提供着,常用的方法有:使用安全断言标记语言(SAML)、基于公开密钥技术(PKI-PubicKeyInfrastructure)的Kerberos网络认证协议或者使用Windows采用的认证方案LanManager认证(称为LM协议-对于NT安装ServicePack4以后采用NTLMv2版本)。这些认证方式需要单独的认证服务器,对于普通的使用者来说,既难已实现,也不太可能搭建单独的服务器。有没有一种简单又安全的认证方式呢?本文的目标 使用Cookie和SHA1结合实现简单又安全的认证,中登录后,中提供的服务。Cookie是什么 Cookie是由Web站点创建的小文本文件,存储在您的计算机上。这样,当您下一次访问该站点时,它可以 自动获取有关您的信息,例如浏览喜好,或您的姓名、地址及电话号码。关键词 SSO(SingleSign-On)-单点登录 SAML(SecurityAssertionsMarkupLanguage)-安全断言标记语言 Cross-RealmAuthentication-跨域认证 PKI(PubicKeyInfrastructure)-公开密钥技术 SHA1(SecureHashAlgorithm1)-安全哈希算法1 P3P(ThePlatformforPrivacyPreferences)隐私参数选择平台单一认证模型 1、用户使用a_logon. 2、 3、认证成功后在客户端写入Cookie,(经过SHA1后) 4、 5、的统一认证 问题: , 。 原因: ,IE6的缺省隐私等级设置为"中"——即"阻止没有合同隐私策略的第三方 cookie"。, 写入的就为第三方Cookie了,所以它是被IE当在了大门外。 解决方法: 让用户改变IE安全策略,允许第三方Cookie,这似乎很简单,可是用户会听你的吗?另一种 解决方法使用P3P,。网上google一下好像很多,本着不求甚解的原则 Copy来就是了。如下: header('P3P:CP="OIDSPCOR"')实现代码 (C#伪代码) ////////////////////////////// if(!) return; if(VerifyPassword(sPwd)) { stringsSalt=CreateSalt(12); ("User",sName); ("Salt",sSalt); stringsHash=Hash(sName+sPwd+sSalt
IBM跨域认证简单解决方案 来自淘豆网m.daumloan.com转载请标明出处.