资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2019/9/8,#,宝玉,xp,2011.4,单点登录解决方案的架构与,实现,宝玉xp单点登录解决方案的架构与实现,1,单点登录,什么是单点登录?,单点登录什么是单点登录?,2,Client,-Web,Gtalk-,Gmail,Client-Web Gtalk-Gmail,3,Client-Web msn-HOTMAIL,Client-Web msn-HOTMAIL,4,Web-Web Google Reader-Gmail,Web-Web Google Reader-G,5,单点登录定义,单点登录,SSO,(,Single Sign-On,)是身份管理中的一部分。,SSO,的一种较为通俗的定义是:,SSO,是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即 通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。,单点登录定义单点登录SSO(Single Sign-On)是,6,客户端登录过程,以,msn,为例分析,客户端登录过程以msn为例分析,7,Live Messenger,登录过程,https:/ Messenger登录过程https:/logi,8,Live Messenger,登录,Hotmail,传输的数据,POST https:/ Messenger 登录Hotmail传输的数据P,9,Token,数据,ct=1302192303,bver=7,wa=wsignin1.0,ru,=http:/ 数据ct=1302192303,10,da,http:/Passport.NET/STS,Adn+cqR1gmiTLVQGs8qXIcBFJ0QPGi7O+RbRjyoR0F2Iz94dGP8s9qoe3GdGFUt9/qguaX1ygP/ghA+7m6eyYgUjKr6ZLQXL3lvi/2+AiYeEdRp3dTFqifsjTdc6a0el3rxnayb5yHiP3YbSzknVcqayqszMLnZIIuUxrDVcHGuobAIqCHrWIwiApfYJCjbbnzXNr4GIqbueQkebpn7JU16bkCion1neNxSg58P7XLEqxzAce3ZUNZWoUDnT/6OtDCkuCmxewrn3sr5Ugh/FSoW+3KGledTk3brKOu8Uu7YNM5Y2k4K90Su8U3zXCyhJXkrVJCzRhJCvOCuWUs4DTEs9ocxKUSOICqaicIc6tTJYfyLlWHhOmsigGzVj2B8NOysbsr/V6KnLu2vgEWkYr0j/ZYYrAa1R0AuIep0i0hPHUTeOz7HAV5PzwciNA33YIgzyGn3ivmFFcjkxRwmesidmtXopLUSj+YIqUqXQ2p11vmQv9UJYCzWghtNS,daEncryptedData xmlns=http:/,11,GTalk,打开登录,Gmail,传输,的数据,GET https:/ https:/,12,关键数据,登录网站地址,(Login Portal Url),https:/ Url),ru=http:/ Id),appid=%7B7108E71A-9926-4FCB-BCC9-9A9D3F32E423%7D,source=googletalk,授权凭证,(Credential),关键数据登录网站地址(Login Portal Url),13,数据如何保护?,如何,来保护授权,凭证中的信息,数据如何保护?如何来保护授权凭证中的信息,14,数据加密,可逆加密,or,不可逆加密?,可逆加密算法,DES,Triple-DES,AES,公共密钥,or,各应用独立密钥?,密钥,每个应用系统拥有一个唯一的,AppId,和一个与其对应的,Credential,密钥。,不同的应用,系统,使用不同的Credential密钥,目的是防止截取或伪造,单点登录系统,的Credential,并防止两个SSO,应用系统,之间互相截取或伪造对方的Credential,。,数据加密可逆加密 or 不可逆加密?,15,密钥管理,如何管理,SSO,应用的密钥?,密钥管理如何管理SSO应用的密钥?,16,密钥管理,SSO Key Server,统一登记和管理,根据,AppId,区分应用系统,SSO,应用系统,向,SSO Service,获取属于自己的密钥,密钥有一定时效性,会过期,密钥管理SSO Key Server 统一登记和管理,17,授权凭证信息,授权,凭证里面都有什么?,授权凭证信息授权凭证里面都有什么?,18,授权凭证,(Credential),SSO,应用系统,登录时,SSO,Portal会验证用户身份,,,并向,应用,返回一个代表用户身份的Credential,Credential,一般,以,BASE64,字符串的,形式,存在,Credential,中包含的加密信息,SSO,应用系统均拥有,Credential,密钥,可解开该,Credential,以获取用户的身份信息。,Credential具有一定的有效期。,Credential,包含的信息包括:,加密信息:,用户,ID,、,用户名、,Credential,生成时间、,Credential,失效时间,未加密信息,:,对应密钥编号,、,AppId,授权凭证(Credential)SSO应用系统登录时,SSO,19,授权凭证的结构,Credential,一般,采用明文结构内含密文结构的形式。,明文部分,对应密钥编号,为保证在密钥更换期间,旧密钥加密的,Credential,能被正常解密,所以我们需要在,Credential,中标记出,Credential,对应的密钥号码,AppId,,对应,App,密文部分,保存,加密,后的用户信息,客户端不可读,。,服务器,端解密后可,从,密文,中,获取用户的身份标识,。,授权凭证的结构Credential一般采用明文结构内含密文结,20,授权凭证,属性名,说明,KeyId,凭证生成时使用的密钥的标识,服务器端与客户端均可读,但对客户端透明。,例如,:,0,:,0,号密钥,1,:,1,号密钥,2,:,2,号密钥,AppId,每个,SSO,应用系统申请的编号,唯一代表一个,SSO,应用系统。,EncryptedData,加密后的用户信息,客户端不可读。服务器端解密后可从明文中获取用户的身份标识。,授权凭证属性名说明KeyId凭证生成时使用的密钥的标识,服务,21,EncryptedData,解密,属性名,说明,Nonce,随机整数,CreateTime,凭证生成时间,ExpireTime,凭证过期时间,UserId,用户,Id,UserIp,用户登录IP,Username/Email,用户名,或,Email,Hash,SHA1,计算的散列值,,防止数据被修改,EncryptedData解密属性名说明Nonce随机整数C,22,授权凭证的验证和解析,如何验证一个授权凭证是否合法?取出里面的信息?,授权凭证的验证和解析如何验证一个授权凭证是否合法?取出里面的,23,两种授权凭证验证解析方案对比,从,SSO,服务器验证,应用自行验证,Credential,App Server,SSO Key Server,Credential,App Server,SSO Server,两种授权凭证验证解析方案对比从SSO服务器验证应用自行验,24,授权,凭证的验证流程,校验,AppId,根据密钥编号对应密钥解密数据,校验,Hash,值,校验,IP,校验授权凭证是否到期,更新授权凭证,授权凭证的验证流程校验AppId根据密钥编号对应密钥解密数据,25,客户端单点登录,客户端单点登录流程?,客户端单点登录客户端单点登录流程?,26,客户端,SSO,Portal,1.,提交账号密码登录,2.,返回客户端授权凭证,3.,保持登录,带上旧凭证,4.,返回客户端新的授权凭证,客户端SSO1.提交账号密码登录2.返回客户端授权凭证3,27,客户端,浏览器,应用站点,1,SSO,Portal,5.,点击站点链接,6.,访问页面,使用客户端凭证,7.302,跳转,带上返回地址,8.,请求,SSO,网页,带上返回地址,9.302,跳转,设置,SSO Portal Cookie,,,Url,中带上,Site 1,凭证,10.,访问页面,Url,带凭证,11.200 OK,设置凭证到,Cookie,客户端浏览器应用站点1SSO5.点击站点链接6.访问页面,28,不同站点间的单点登录,多,个站点之间如何共享登录?,不同站点间的单点登录多个站点之间如何共享登录?,29,用户,浏览器,应用站点,1,SSO,站点,1.,浏览网站,1,2.,访问页面,3.302,跳转,带上返回地址,4.,请求登录网页,带上返回地址,5.200 OK,登录表单,6.,输入账号密码,7.,提交表单,带上返回地址,8.302,跳转,设置,Cookie,,,Url,中带上,凭证,9.,访问页面,Url,带凭证,10.200 OK,设置凭证到,Cookie,11.,访问页面,Cookie,带凭证,12.200 OK,用户浏览器应用站点1SSO站点1.浏览网站12.访问页面,30,用户,浏览器,应用站点,2,SSO,站点,13.,浏览网站,2,14.,访问页面,15.302,跳转,带上返回地址,16.,请求登录网页,带上返回地址,17.302,跳转,设置,Cookie,,,Url,中带上,凭证,18.,访问页面,Url,带凭证,19.200 OK,设置凭证到,Cookie,20.,访问页面,Cookie,带凭证,21.200 OK,用户浏览器应用站点2SSO站点13.浏览网站214.访问,31,系统架构,整体架构如何?,系统架构整体架构如何?,32,SSO Portal,SSO Key Server,Site 1,Site 2,Site n,App 1,App n,SSO PortalSSO Key ServerSite 1,33,Q&A,提问时间,Q&A提问时间,34,Thanks,谢谢,Thanks谢谢,35,知识回顾,Knowledge Review,知识回顾Knowledge Review,
展开阅读全文