本申请公开了一种认证反向代理方法及系统,用于消除了不同平台的实现标准的差异化。本申请公开的认证反向代理方法包括:认证反向代理系统接收代理认证请求,将所述代理认证请求转换为目标认证请求,并将所述目标认证请求发送到授权服务器;所述授权服务器根据所述目标认证请求确定目标代码Code,将所述目标代码发送到所述认证反向代理系统,所述认证反向代理系统将所述目标代码转换为代理代码,并将所述代理代码通过用户代理反馈给客户端;所述认证反向代理系统接收将所述代理代码转换为访问令牌Acces Token的转换请求,根据所述转换请求确定网关代码,并把网关代码转换为目标授权服务器代码,向所述目标授权服务器请求访问令牌Access Token;所述授权服务器接收到所述授权服务器代码后,验证所述授权服务器代码的合法性,若验证通过,则将访问令牌Access Token反馈给客户端。本申请还提供了一种认证反向代理系统。反向代理系统。反向代理系统。
【技术实现步骤摘要】
一种认证反向代理方法及系统
[0001]本申请涉及认证领域,尤其涉及一种认证反向代理方法及系统。
技术介绍
[0002]OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。OAuth 2.0是OAuth协议的下一版本,OAuth2.0授权框架支持第三方应用获取对HTTP服务的访问权限,或者通过编排审批交互,让第三方应用在资源所有者和HTTP服务之间,代表自己的权限。它常被用于Web第三方认证。但是现有的认证体系标准的实现不统一,不同平台兼容性差,不仅增加开发人员的使用难度和代码量,也间接影响应用系统的稳定性和可维护性。
技术实现思路
[0003]针对上述技术问题,本申请实施例提供了一种认证反向代理方法及系统,用以提供统一的标准接口,消除了不同平台的实现标准的差异化。
[0004]一方面,本申请实施例提供的一种认证反向代理方法,包括:
[0005]认证反向代理系统接收代理认证请求,将所述代理认证请求转换为目标认证请求,并将所述目标认证请求发送到授权服务器;
[0006]所述授权服务器根据所述目标认证请求确定目标代码Code,将所述目标代码发送到所述认证反向代理系统,所述认证反向代理系统将所述目标代码转换为代理代码,并将所述代理代码通过用户代理反馈给客户端;
[0007]所述认证反向代理系统接收将所述代理代码转换为访问令牌Acces Token的转换请求,根据所述转换请求确定网关代码,并把网关代码转换为目标授权服务器代码,向所述目标授权服务器请求访问令牌Access Token;
[0008]所述授权服务器接收到所述授权服务器代码后,验证所述授权服务器代码的合法性,若验证通过,则将访问令牌Access Token反馈给客户端。
[0009]优选的,所述认证反向代理系统的统一网关组件接收代理认证请求;
[0010]优选的,所述授权服务器的接口安全拦截器对所述代理人认证请求进行判别,若所述认证请求为非法授权的客户端发起的,则拒绝所述代理认证请求。满足以下条件之一则判定为非法授权的客户端:
[0011]IP地址超过预设的网段范围;
[0012]域名不在预设的域名范围内;
[0013]接口范围不在预定的范围内。
[0014]作为一种优选示例,所述将所述代理认证请求转换为目标认证请求,并将所述目标认证请求发送到授权服务器,包括:
[0015]所述统一网关将所述代理认证请求发送到认证调度处器,所述认证调度处理器将
所述代理认证请求转换为目标认证请求,并将所述目标认证请求返回给所述统一网关;
[0016]所述统一网关将所述目标认证请求通过用户代理User Agent重定向给授权服务器。
[0017]所述认证调度处理器将所述代理认证请求转换为目标认证请求,包括:
[0018]根据域domain或者路径path规则,获取租户的上下文信息,并从所述上下文信息中提取目标授权服务器的客户号client_id,并标记为新客户号new_client_id;
[0019]利用状态state生成器生成新状态new_state;
[0020]将所述新状态new_state作为密钥key,将所述认证请求中的参数客户号client_id,反馈类型response_type,重定向地址redirect_uri,状态state存储到缓存池中;
[0021]将所述认证反向代理系统的重定向地址标记为新重定向地址new_redirect_uri;
[0022]将所述新重定向地址new_redirect_uri,新客户号new_client_id,新状态new_state,反馈类型response_type作为参数,通过SPI接口传递给对应的认证适配器。
[0023]所述的SPI接口用于由认证反向代理系统代替用户代理User-Agent向目标授权服务器发送认证请求。
[0024]作为一种优选示例,所述授权服务器根据所述目标认证请求确定目标代码Code,将所述目标代码发送到所述认证反向代理系统,所述认证反向代理系统将所述目标代码转换为代理代码,并将所述代理代码通过用户代理反馈给客户端,包括:
[0025]所述授权服务器验证通过目标认证请求后,将所述目标代码发送到所述认证反向代理系统;
[0026]所述认证反向代理系统根据状态State参数,获取新状态new_state;
[0027]所述认证反向代理系统通过所述新状态new_state,从所述缓存池中提取原始认证参数,并提取客户号client_id,反馈类型response_type,重定向地址redirect_uri,状态state,并将所述目标代码Code作为附加参数,通过用户代理User-Agent重定向给原始客户端或者原始重定向地址。
[0028]优选的,所述向所述目标授权服务器请求访问令牌Access Token,包括:
[0029]通过SPI的访问令牌接口,由所述认证反向代理系统代替用户代理User-Agent向目标授权服务器请求访问令牌Access Token。通过SPI的用户信息查询接口,由所述认证反向代理系统代替用户代理User-Agent向目标授权服务器或者资源服务器请求第三方提供的授权用户信息。
[0030]通过本专利技术的方法,可通过对不同平台的差异化的接口,进行了二次封装,提供统一的标准接口。消除了不同平台的实现标准的差异化。统一了OAuth2.0标准框架和规范一致的接口。降低了应用开发者的使用门槛,减少开发过程的代码量和判定逻辑,大大提高开发团队的开发效率和开发质量。同时,利用SPI适配器机制,实现了具体实现之间的松耦合,保证开发者在扩展新授权服务器的对接以及升级原授权服务器极大的便利性和稳定性。
[0031]另一方面,本申请实施例提供的一种认证反向代理系统,包括:处理器、存储器、网络接口;所述网络接口,用于在处理器的控制下进行数据的接收和发送;所述存储器,用于存储计算机程序;所述处理器用于读取所述存储器中的所述计算机程序,所述处理器执行所述计算机程序时,实现上述认证反向代理方法和步骤。
[0032]通过本专利技术提供的认证反向代理方法和系统,避免了各平台对服务接口的各种资
源限制,对外提供统一的、集中的接口入口,因此只需要使用一个域名资源即可供多个应用共用相同的OAuth2.0认证服务。同时,本实施例提供的认证反向代理系统可以在不破坏目标系统安全性的基础上,允许用户在开发环境或者测试环境下,获得认证身份,进行开发调试。
[0033]通过本专利技术提供的认证反向代理方法,可以让OAuth2.0认证统一代理系统同时服务多个不同的客户,可以减少开发团队的交付周期和交付成本。可以实现客户端与目标授权服务器之间的逻辑与安全信息的隔离,从而让实现在安全性上更加可靠。
...
【技术保护点】
【技术特征摘要】
1.一种认证反向代理方法,其特征在于,包括:认证反向代理系统接收代理认证请求,将所述代理认证请求转换为目标认证请求,并将所述目标认证请求发送到授权服务器;所述授权服务器根据所述目标认证请求确定目标代码Code,将所述目标代码发送到所述认证反向代理系统,所述认证反向代理系统将所述目标代码转换为代理代码,并将所述代理代码通过用户代理反馈给客户端;所述认证反向代理系统接收将所述代理代码转换为访问令牌Acces Token的转换请求,根据所述转换请求确定网关代码,并把网关代码转换为目标授权服务器代码,向所述目标授权服务器请求访问令牌Access Token;所述授权服务器接收到所述授权服务器代码后,验证所述授权服务器代码的合法性,若验证通过,则将访问令牌Access Token反馈给客户端。2.根据权利要求1所述的方法,其特征在于,所述认证反向代理系统接收代理认证请求包括:所述认证反向代理系统的统一网关组件接收代理认证请求。3.根据权利要求2所述的方法,其特征在于,包括:所述授权服务器的接口安全拦截器对所述代理人认证请求进行判别,若所述认证请求为非法授权的客户端发起的,则拒绝所述代理认证请求,若满足以下条件之一则判定为非法授权的客户端:IP地址超过预设的网段范围;域名不在预设的域名范围内;接口范围不在预定的范围内。4.根据权利要求2所述的方法,其特征在于,所述将所述代理认证请求转换为目标认证请求,并将所述目标认证请求发送到授权服务器,包括:所述统一网关将所述代理认证请求发送到认证调度处器,所述认证调度处理器将所述代理认证请求转换为目标认证请求,并将所述目标认证请求返回给所述统一网关;所述统一网关将所述目标认证请求通过用户代理User Agent重定向给授权服务器。5.根据权利要求4所述的方法,其特征在于,所述认证调度处理器将所述代理认证请求转换为目标认证请求,包括:根据域domain或者路径path规则,获取租户的上下文信息,并从所述上下文信息中提取目标授权服务器的客户号client_id,并标记为新客户号new_client_id;所谓租户,即不同的授权服务账号主体,多租户的支持让不同的企业可以同时入驻同一个服务平台,且相互独立运行,互不干扰,由于不需要开启多个服务,达到降低运行成本和资源占用的目的;利用状态state生成器生成新状态new_state;将所述新状态new_state作为密钥key,将所述认证...
【专利技术属性】
技术研发人员:程仁波,黄利明,
申请(专利权)人:尺度财金北京智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。