1.一种Docker镜像仓库的权限认证方法,其特征在于,所述权限认证方法包括如下步骤:访问镜像仓库被拒绝时,接收镜像仓库返回的未授权错误信息,所述未授权错误信息的响应头中包含认证方法提示信息;
解析所述未授权错误信息,并根据认证方法提示信息生成权限认证请求发送给令牌服务器进行权限认证;
接收令牌服务器返回的令牌,并携带所述令牌向镜像仓库发送访问请求;
接收镜像仓库返回的镜像;
所述解析所述未授权错误信息,并根据认证方法提示信息生成权限认证请求发送给令牌服务器进行权限认证的步骤包括:解析所述未授权错误信息,获取未授权错误信息的响应头中包含认证方法提示信息;
根据认证方法提示信息的提示,利用用户认证信息、请求镜像内容范围生成权限认证请求信息;
将所述权限认证请求信息发送给令牌服务器;
在将所述权限认证请求信息发送给令牌服务器的步骤之后、接收令牌服务器返回的令牌,并携带所述令牌向镜像仓库发送访问请求的步骤之前,所述权限认证方法还包括:令牌服务器解析所述权限认证请求信息,并验证用户认证信息;
在用户认证通过时,根据请求的镜像内容范围判断客户端是否能访问其请求的镜像内容;
当客户端能访问其请求的镜像内容时,根据用户认证信息、请求的镜像内容范围生成令牌返回给客户端。
2.根据权利要求1所述的Docker镜像仓库的权限认证方法,其特征在于,所述根据认证方法提示信息的提示,利用用户认证信息、请求镜像内容范围生成权限认证请求信息的步骤包括:根据认证方法提示信息将用户认证信息加密,放在https请求的请求头部,将请求的镜像内容范围置于https请求请求参数中,基于该https请求的请求头部及请求参数生成权限认证请求信息。
3.根据权利要求1所述的Docker镜像仓库的权限认证方法,其特征在于,在接收令牌服务器返回的令牌,并携带所述令牌向镜像仓库发送访问请求的步骤之后、接收镜像仓库返回的镜像的步骤之前,还包括:镜像仓库接收所述令牌,解析并验证所述令牌,在验证通过时,向客户端返回镜像。
4.根据权利要求1所述的Docker镜像仓库的权限认证方法,其特征在于,所述令牌包括头部、载荷和签名;所述签名的生成方法包括:在头部和载荷中,去掉其格式中的非内容的空格符,分别对头部和载荷进行压缩;
采用编码器分别对压缩的头部和载荷进行编码;
将编码后的头部和载荷用小数点相连;
使用头部中指定的加密算法,利用私钥进行签名生成令牌的签名。
5.根据权利要求4所述的Docker镜像仓库的权限认证方法,其特征在于,所述访问镜像仓库被拒绝时,接收镜像仓库返回的未授权错误信息,所述未授权错误信息的响应头中包含认证方法提示信息的步骤之前,所述的权限认证方法还包括:将公钥置于镜像仓库中,用于生成令牌头部的密钥标识,将私钥置于令牌服务器中用于对令牌签名。
6.一种Docker镜像仓库的权限认证系统,其特征在于,包括权限认证设备;所述权限认证设备包括:访问模块,用于访问镜像仓库;
接收模块,用于访问镜像仓库被拒绝时,接收镜像仓库返回的未授权错误信息,所述未授权错误信息的响应头中包含认证方法提示信息;
解析模块,用于解析所述未授权错误信息,并根据认证方法提示信息生成权限认证请求发送给令牌服务器进行权限认证;
所述接收模块,也用于接收令牌服务器返回的令牌;
权限认证请求模块,用于携带所述令牌向镜像仓库发送访问请求;
所述接收模块,还用于接收镜像仓库返回的镜像;
还包括令牌服务器,所述令牌服务器包括:
验证模块,用于解析所述权限认证请求信息,并验证用户认证信息;
判断模块,用于在用户认证通过时,根据请求的镜像内容范围判断客户端是否能访问其请求的镜像内容;
令牌处理模块,用于当客户端能访问其请求的镜像内容时,根据用户认证信息、请求的镜像内容范围生成令牌返回给客户端。
7.根据权利要求6所述的Docker镜像仓库的权限认证系统,其特征在于,还包括镜像仓库,用于接收所述令牌,解析并验证所述令牌,在验证通过时,向客户端返回镜像。