一种跨平台登录统一认证对接方法、存储介质、电子设备技术

技术编号:19858516 阅读:19 留言:0更新日期:2018-12-22 11:55
本发明专利技术提供一种跨平台登录统一认证对接方法,包括步骤:容器云服务响应访问请求,发送重定向请求至Dex组件,Dex组件重定向访问页面至SSO登录页面,接收SSO生成的Ticket,通过Ticket向SSO请求获取用户标识信息;Dex组件通过用户标识信息从CAuth获取用户信息,发送同步用户信息的请求,获取Keystone Token,根据用户信息和Keystone Token生成ID Token;用户端通过ID Token访问容器云服务,容器云平台通过ID Token获取Keystone Token,通过Keystone Token访问Openstack服务。本发明专利技术实现跨平台的登录统一认证和用户信息同步,保证了用户从对接平台的任意一方均能实现登录和认证。

【技术实现步骤摘要】
一种跨平台登录统一认证对接方法、存储介质、电子设备
本专利技术涉及云计算的
,尤其涉及一种跨平台登录统一认证对接方法、存储介质、电子设备。
技术介绍
Keystone是服务提供方,访问OpenstackService时不仅需要通过SSO登录,还需要通过Openstack的权限验证,即必须拥有相关的KeystoneToken才能访问Openstack资源,容器云平台与Openstack对接后,SSO仅存储用户的基本信息,而用户与租户相关的信息存储在Keystone中;而用户既要能登陆,也要能通过容器云平台访问到其所在Openstack的相关资源,保证Openstack租户内的用户也在其对应的容器云平台的租户内。,但现有技术无法实现跨平台的登录统一认证和用户信息同步,无法保证用户从对接平台的任意一方均能实现登录和认证。
技术实现思路
为了克服现有技术的不足,本专利技术的目的在于提供一种实现跨平台的登录统一认证和用户信息同步的一种跨平台登录统一认证对接方法。本专利技术提供一种跨平台登录统一认证对接方法,包括以下步骤:重定向访问页面,容器云服务响应用户端发送的访问请求,并发送重定向请求至容器云平台的Dex组件,所述Dex组件重定向访问页面至SSO登录页面;获取用户标识信息,所述Dex组件接收SSO验证用户输入的账号和密码通过时生成的Ticket,并通过所述Ticket向SSO请求获取用户标识信息;同步用户信息,所述Dex组件通过所述用户标识信息从CAuth获取用户信息,并发送同步所述用户信息的请求至容器云平台的Stack;生成IDToken,所述Dex组件通过OpenstackServiceAccount向Keystone请求获取KeystoneToken,并根据所述用户信息和所述KeystoneToken生成IDToken,将所述IDToken返回至用户端;跨平台登录,用户端通过所述IDToken访问容器云服务,容器云平台通过所述IDToken获取所述KeystoneToken,并通过所述KeystoneToken访问Openstack服务。进一步地,所述用户标识信息包括UserID、UserName、Email;同步用户信息中,当所述Dex组件在所述CAuth中未查询到所述UserID时,所述Dex组件将所述用户标识信息写入所述CAuth,并发送用户标识信息同步请求至容器云平台的信息同步服务,容器云平台的信息同步服务通过OpenstackServiceAccount向Keystone拉取所述用户标识信息对应的用户信息,容器云平台的信息同步服务将所述用户信息更新到CAuth。进一步地,还包括步骤:定时同步信息,定时从Keystone同步所述用户信息至CAuth。进一步地,还包括步骤:SSO登录,用户端发送访问请求至容器云服务,容器云服务验证所述IDToken是否过期且合法,验证通过则继续访问,验证不通过则所述Dex组件重定向访问页面至SSO登录页面。进一步地,还包括步骤:登录验证,当SSO登录成功时,所述SSO登录页面通过重定向跳转回所述Dex组件,所述Dex组件验证重定向url中的Ticket是否合法,不合法则SSO登录失败,合法则返回所述UserID,所述Dex组件根据所述UserID向CAuth请求所述用户信息,所述Dex组件根据配置文件中的用户名和密码向Keystone请求获取KeystoneToken,所述KeystoneToken具有admin权限,所述Ticket具有时间有效期。进一步地,跨平台登录还包括:当SSO登录成功时,所述SSO登录页面的Cookie中存储长期有效的CookieTicket,当容器云平台跳转至Keystone时,Keystone跳转至所述SSO登录页面,SSO验证所述CookieTicket,验证成功则SSO生成所述Ticket,通过Location的方式跳转到Keystone界面,Keystone通过所述Ticket进行SSO校验,校验成功则Keystone登录成功。进一步地,重定向访问页面中,用户通过Console-web访问容器云服务。进一步地,生成IDToken中,所述IDToken为JWT格式。一种电子设备,包括:处理器;存储器;以及程序,其中所述程序被存储在所述存储器中,并且被配置成由处理器执行,所述程序包括用于执行一种跨平台登录统一认证对接方法。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行一种跨平台登录统一认证对接方法。相比现有技术,本专利技术的有益效果在于:本专利技术提供一种跨平台登录统一认证对接方法,容器云平台与Openstack对接后,SSO登录页面的Cookie中存储长期有效的CookieTicket,实现跨平台的登录统一认证和用户信息同步,保证了用户从对接平台的任意一方均能实现登录和认证。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,并可依照说明书的内容予以实施,以下以本专利技术的较佳实施例并配合附图详细说明如后。本专利技术的具体实施方式由以下实施例及其附图详细给出。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1为本专利技术的一种跨平台登录统一认证对接方法流程图;图2为本专利技术的一种跨平台登录统一认证对接方法跨平台登录步骤流程图。具体实施方式下面,结合附图以及具体实施方式,对本专利技术做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。一种跨平台登录统一认证对接方法,如图1所示,包括以下步骤:重定向访问页面,容器云服务响应用户端发送的访问请求,优选的,用户通过Console-web访问容器云服务,因为用户没有登录过容器云平台,HTTP头部没有IDToken,所以容器云服务发送重定向请求至容器云平台的Dex组件,Dex组件重定向访问页面至SSO登录页面。获取用户标识信息,用户输入工号和密码,提交登录信息至SSO登录页面进行验证,SSO验证用户输入的账号和密码,验证通过则返回具有时间有效期的Ticket至Dex组件,本实施例中,Ticket在ReponseHeader中的Location:<URL>中,Ticket的时间有效期为5s,Dex组件通过Ticket向SSO请求获取用户标识信息;SSO检验Ticket的有效性,有效则返回用户标识信息至Dex组件,优选的,用户标识信息包括UserID、UserName、Email。同步用户信息,Dex组件通过用户标识信息从CAuth获取用户信息,并发送同步用户信息的请求至容器云平台的Stack;优选的,当Dex组件在CAuth中未查询到UserID时,即当用户首次登陆容器云平台时,Dex组件将上述用户标识信息写入CAuth,并发送用户标识信息同步请求至容器云平台的信息同步服务,容器云平台的信息同步服务通过OpenstackServiceAccount向Keystone拉取用户标识信息对应的用户信息,容器云平台的信息同步服务将用户信息更新到CAuth。在一实施例中,优选的,还包括步本文档来自技高网...

【技术保护点】
1.一种跨平台登录统一认证对接方法,其特征在于,包括以下步骤:重定向访问页面,容器云服务响应用户端发送的访问请求,并发送重定向请求至容器云平台的Dex组件,所述Dex组件重定向访问页面至SSO登录页面;获取用户标识信息,所述Dex组件接收SSO验证用户输入的账号和密码通过时生成的Ticket,并通过所述Ticket向SSO请求获取用户标识信息;同步用户信息,所述Dex组件通过所述用户标识信息从CAuth获取用户信息,并发送同步所述用户信息的请求至容器云平台的Stack;生成ID Token,所述Dex组件通过Openstack Service Account向Keystone请求获取Keystone Token,并根据所述用户信息和所述Keystone Token生成ID Token,将所述ID Token返回至用户端;跨平台登录,用户端通过所述ID Token访问容器云服务,容器云平台通过所述ID Token获取所述Keystone Token,并通过所述Keystone Token访问Openstack服务。

【技术特征摘要】
1.一种跨平台登录统一认证对接方法,其特征在于,包括以下步骤:重定向访问页面,容器云服务响应用户端发送的访问请求,并发送重定向请求至容器云平台的Dex组件,所述Dex组件重定向访问页面至SSO登录页面;获取用户标识信息,所述Dex组件接收SSO验证用户输入的账号和密码通过时生成的Ticket,并通过所述Ticket向SSO请求获取用户标识信息;同步用户信息,所述Dex组件通过所述用户标识信息从CAuth获取用户信息,并发送同步所述用户信息的请求至容器云平台的Stack;生成IDToken,所述Dex组件通过OpenstackServiceAccount向Keystone请求获取KeystoneToken,并根据所述用户信息和所述KeystoneToken生成IDToken,将所述IDToken返回至用户端;跨平台登录,用户端通过所述IDToken访问容器云服务,容器云平台通过所述IDToken获取所述KeystoneToken,并通过所述KeystoneToken访问Openstack服务。2.如权利要求1所述的一种跨平台登录统一认证对接方法,其特征在于:所述用户标识信息包括UserID、UserName、Email;同步用户信息中,当所述Dex组件在所述CAuth中未查询到所述UserID时,所述Dex组件将所述用户标识信息写入所述CAuth,并发送用户标识信息同步请求至容器云平台的信息同步服务,容器云平台的信息同步服务通过OpenstackServiceAccount向Keystone拉取所述用户标识信息对应的用户信息,容器云平台的信息同步服务将所述用户信息更新到CAuth。3.如权利要求1所述的一种跨平台登录统一认证对接方法,其特征在于,还包括步骤:定时同步信息,定时从Keystone同步所述用户信息至CAuth。4.如权利要求2所述的一种跨平台登录统一认证对接方法,其特征在于,还包括步骤:SSO登录,用户端发送访问请求至...

【专利技术属性】
技术研发人员:唐继元邓德源张鑫
申请(专利权)人:杭州才云科技有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1