Docker镜像仓库的权限认证方法和系统技术方案

技术编号:17784120 阅读:57 留言:0更新日期:2018-04-22 15:30
本发明专利技术公开了一种Docker镜像仓库的权限认证方法和系统,其权限认证方法先通过代理服务器访问镜像仓库被拒绝时,接收镜像仓库返回的未授权错误信息;之后,解析所述未授权错误信息,根据认证方法提示信息生成权限认证请求并将其发送至代理服务器,由代理服务器将权限认证请求发送给令牌服务器进行权限认证;之后,接收云管区中的令牌服务器返回的令牌,并携带所述令牌向镜像仓库发送访问请求;接收镜像仓库返回的镜像,即完成了私有Docker镜像仓库的访问操作。本发明专利技术通过通过将权限认证交由第三方进行验证,根据请求令牌发放权限,提高了镜像的安全性,而且无需再在各个可用区设置鉴权组件,因此只需要维护一份云管区的令牌服务器即可。

【技术实现步骤摘要】
Docker镜像仓库的权限认证方法和系统
本专利技术涉及Docker
,具体涉及Docker镜像仓库的权限认证方法和系统。
技术介绍
Docker(Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化)提供的容器技术允许在同一台主机或虚拟机上运行若干个容器(container),每个容器就是一个独立的虚拟环境或应用。容器来源于Docker镜像(image),而镜像可以由用户自制(build)或由运行中的容器提交(commit)来生成,镜像生成后,可以推送(push)到镜像仓库(registry)中进行保存,也可以从镜像仓库拉取(pull)到本地以运行容器。Docker提供了官方镜像仓库(Dockerhub),同时允许用户自行搭建私有镜像仓库(privateregistry)。对于大多数机构和组织,使用私有镜像仓库是很有必要的,用以保护仓库的镜像内容及使用。当用户访问Docker镜像时,针对不同镜像仓库内的镜像,需要细化访问权限控制。例如,对于公共镜像(即访问官方镜像仓库),任何用户都能够拉取(Pull)镜像,而只有系统管理员可以推送(Push)镜像;对于用户自己命名空间(Namespace)下的镜像(即私有Docker镜像仓库),只有通过了权限验证的该用户才能够拉取/推送镜像,即在访问时需要根据用户终端的身份判断有哪些仓库中的镜像可以拉取,或者可以往哪些仓库中推送镜像,能够提高镜像的安全性。目前,Docker镜像服务器的权限设置比较简单,一般采用两种方式,第一种方式是只检查用户认证信息在请求时是否一并提供,并不验证其真假;第二种方式是配置静态的用户名与密码对,且需要预先生成密码文件,通过简单的用户登录就可以操作镜像服务。可见上述两种方式的权限控制方式都不够安全,都不能满足镜像安全的要求。因此,现有技术还有待于改进和发展。
技术实现思路
针对现有技术的上述缺陷,本专利技术提供一种Docker镜像仓库的权限认证方法和系统,主要解决现有Docker镜像访问不安全的问题。本专利技术解决技术问题所采用的技术方案如下:一种Docker镜像仓库的权限认证方法,包括如下步骤:通过代理服务器访问镜像仓库被拒绝时,接收镜像仓库返回的未授权错误信息,其中,所述镜像仓库部署在云管区中,所述未授权错误信息的响应头中包含认证方法提示信息;解析所述未授权错误信息,根据认证方法提示信息生成权限认证请求并将其发送至代理服务器,由代理服务器将权限认证请求发送给令牌服务器进行权限认证,其中所述代理服务器部署在可用区内,令牌服务器部署在云管区中;接收云管区中的令牌服务器返回的令牌,并携带所述令牌向镜像仓库发送访问请求;接收镜像仓库返回的镜像。所述的Docker镜像仓库的权限认证方法中,所述解析所述未授权错误信息,根据认证方法提示信息生成权限认证请求并将其发送至代理服务器,由代理服务器将权限认证请求发送给令牌服务器进行权限认证的步骤包括:解析所述未授权错误信息,获取未授权错误信息的响应头中包含认证方法提示信息;根据认证方法提示信息的提示,利用用户认证信息、请求镜像内容范围生成权限认证请求信息;将所述权限认证请求信息发送至代理服务器,由代理服务器将权限认证请求发送给令牌服务器进行权限认证。所述的Docker镜像仓库的权限认证方法中,所述根据认证方法提示信息的提示,利用用户认证信息、请求镜像内容范围生成权限认证请求信息的步骤包括:根据认证方法提示信息将用户认证信息加密,放在https请求的请求头部,将请求的镜像内容范围置于https请求的请求参数中,基于该https请求的请求头部及请求参数生成权限认证请求信息。所述的Docker镜像仓库的权限认证方法中,在将所述权限认证请求信息发送至代理服务器,由代理服务器将权限认证请求发送给令牌服务器进行权限认证的步骤之后、接收云管区中的令牌服务器返回的令牌,并携带所述令牌向镜像仓库发送访问请求的步骤之前,所述权限认证方法还包括:代理服务器根据客户端输入的域名进行安全传输层协议认证,并在验证通过后接收客户端的数据访问请求并将其发送至云管区的令牌服务器;云管区的令牌服务器解析所述权限认证请求信息,并验证用户认证信息;在用户认证通过时,根据请求的镜像内容范围判断客户端是否能访问其请求的镜像内容;当客户端能访问其请求的镜像内容时,根据用户认证信息、请求的镜像内容范围生成令牌返回给客户端。所述的Docker镜像仓库的权限认证方法中,在接收云管区中的令牌服务器返回的令牌,并携带所述令牌向镜像仓库发送访问请求的步骤之后、接收镜像仓库返回的镜像的步骤之前,还包括:镜像仓库接收所述令牌,解析并验证所述令牌,在验证通过时,向客户端返回镜像。一种Docker镜像仓库的权限认证系统,其包括若干个可用区,每个所述可用区均设置有权限认证设备和代理服务器,所述权限认证设备用于访问镜像仓库,并在访问镜像仓库被拒绝时,接收镜像仓库返回的未授权错误信息,所述未授权错误信息的响应头中包含认证方法提示信息;以及用于解析所述未授权错误信息,并根据认证方法提示信息生成权限认证请求并将其发送至代理服务器;以及接收令牌服务器返回的令牌;以及携带所述令牌向镜像仓库发送访问请求;以及接收镜像仓库返回的镜像;所述代理服务器用于将权限认证请求发送给云管区的令牌服务器。所述的Docker镜像仓库的权限认证系统,还包括设置在云管区的令牌服务器,所述令牌服务器用于解析所述权限认证请求信息,并验证用户认证信息;以及在用户认证通过时,根据请求的镜像内容范围判断客户端是否能访问其请求的镜像内容;以及当客户端能访问其请求的镜像内容时,根据用户认证信息、请求的镜像内容范围生成令牌返回给客户端。所述的Docker镜像仓库的权限认证系统中,所述代理服务器具体用于根据客户端输入的域名进行安全传输层协议认证,并在验证通过后接收客户端的数据访问请求并将其发送至云管区的令牌服务器。所述的Docker镜像仓库的权限认证系统中,所述令牌服务器的数量为1个。所述的Docker镜像仓库的权限认证系统,还包括设置在云管区的镜像仓库,用于接收所述令牌,解析并验证所述令牌,在验证通过时,向客户端返回镜像。本专利技术公开的Docker镜像仓库的权限认证方法和系统中,其权限认证方法先通过代理服务器访问镜像仓库被拒绝时,接收镜像仓库返回的未授权错误信息,其中,所述镜像仓库部署在云管区中,所述未授权错误信息的响应头中包含认证方法提示信息;之后,解析所述未授权错误信息,根据认证方法提示信息生成权限认证请求并将其发送至代理服务器,由代理服务器将权限认证请求发送给令牌服务器进行权限认证,其中所述代理服务器部署在可用区内,令牌服务器部署在云管区中;之后,接收云管区中的令牌服务器返回的令牌,并携带所述令牌向镜像仓库发送访问请求;接收镜像仓库返回的镜像,即完成了私有Docker镜像仓库的访问操作。本专利技术通过将权限认证交由第三方进行验证,根据请求令牌发放权限,提高了镜像的安全性,而且通过在云管区设置令牌服务器,无需再在各个可用区设置鉴权组件,避免每次在进行权限认证时均需要调用云管区的API来认证用户的域账号,避免了资源的浪费,通过本文档来自技高网
...
Docker镜像仓库的权限认证方法和系统

【技术保护点】
一种Docker镜像仓库的权限认证方法,其特征在于,所述权限认证方法包括如下步骤:通过代理服务器访问镜像仓库被拒绝时,接收镜像仓库返回的未授权错误信息,其中,所述镜像仓库部署在云管区中,所述未授权错误信息的响应头中包含认证方法提示信息;解析所述未授权错误信息,根据认证方法提示信息生成权限认证请求并将其发送至代理服务器,由代理服务器将权限认证请求发送给令牌服务器进行权限认证,其中所述代理服务器部署在可用区内,令牌服务器部署在云管区中;接收云管区中的令牌服务器返回的令牌,并携带所述令牌向镜像仓库发送访问请求;接收镜像仓库返回的镜像。

【技术特征摘要】
1.一种Docker镜像仓库的权限认证方法,其特征在于,所述权限认证方法包括如下步骤:通过代理服务器访问镜像仓库被拒绝时,接收镜像仓库返回的未授权错误信息,其中,所述镜像仓库部署在云管区中,所述未授权错误信息的响应头中包含认证方法提示信息;解析所述未授权错误信息,根据认证方法提示信息生成权限认证请求并将其发送至代理服务器,由代理服务器将权限认证请求发送给令牌服务器进行权限认证,其中所述代理服务器部署在可用区内,令牌服务器部署在云管区中;接收云管区中的令牌服务器返回的令牌,并携带所述令牌向镜像仓库发送访问请求;接收镜像仓库返回的镜像。2.根据权利要求1所述的Docker镜像仓库的权限认证方法,其特征在于,所述解析所述未授权错误信息,根据认证方法提示信息生成权限认证请求并将其发送至代理服务器,由代理服务器将权限认证请求发送给令牌服务器进行权限认证的步骤包括:解析所述未授权错误信息,获取未授权错误信息的响应头中包含认证方法提示信息;根据认证方法提示信息的提示,利用用户认证信息、请求镜像内容范围生成权限认证请求信息;将所述权限认证请求信息发送至代理服务器,由代理服务器将权限认证请求发送给令牌服务器进行权限认证。3.根据权利要求2所述的Docker镜像仓库的权限认证方法,其特征在于,所述根据认证方法提示信息的提示,利用用户认证信息、请求镜像内容范围生成权限认证请求信息的步骤包括:根据认证方法提示信息将用户认证信息加密,放在https请求的请求头部,将请求的镜像内容范围置于https请求的请求参数中,基于该https请求的请求头部及请求参数生成权限认证请求信息。4.根据权利要求2所述的Docker镜像仓库的权限认证方法,其特征在于,在将所述权限认证请求信息发送至代理服务器,由代理服务器将权限认证请求发送给令牌服务器进行权限认证的步骤之后、接收云管区中的令牌服务器返回的令牌,并携带所述令牌向镜像仓库发送访问请求的步骤之前,所述权限认证方法还包括:代理服务器根据客户端输入的域名进行安全传输层协议认证,并在验证通过后接收客户端的数据访问请求并将其发送至云管区的令牌服务器;云管区的令牌服务器解析所述权限认证...

【专利技术属性】
技术研发人员:刘俊杰
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

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

1