CN112613073A - 一种开放平台认证授权方法及装置 - Google Patents

一种开放平台认证授权方法及装置 Download PDF

Info

Publication number
CN112613073A
CN112613073A CN202011583242.XA CN202011583242A CN112613073A CN 112613073 A CN112613073 A CN 112613073A CN 202011583242 A CN202011583242 A CN 202011583242A CN 112613073 A CN112613073 A CN 112613073A
Authority
CN
China
Prior art keywords
party application
open platform
request
user information
access token
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011583242.XA
Other languages
English (en)
Inventor
姜皓
赵洋
徐富业
易鹏飞
刘旭晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agricultural Bank of China
Original Assignee
Agricultural Bank of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agricultural Bank of China filed Critical Agricultural Bank of China
Priority to CN202011583242.XA priority Critical patent/CN112613073A/zh
Publication of CN112613073A publication Critical patent/CN112613073A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Abstract

本申请提出一种开放平台认证授权方法及装置,该方法可应用于开放平台,包括:获取第三方应用发送的登录授权请求,并对所述第三方应用的身份进行校验;当所述第三方应用通过身份校验时,向所述第三方应用返回临时令牌;接收所述第三方应用发送的访问令牌获取请求,并向所述第三方应用发送所述访问令牌;基于所述第三方应用发送的用户信息调用请求,向所述第三方应用发送所请求的用户信息。上述方法能够实现三方交互的信任机制,保证交互数据安全。

Description

一种开放平台认证授权方法及装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种开放平台认证授权方法及装置。
背景技术
随着互联网发展,服务的开放成为必然趋势。各大互联网公司相继推出其开放平台,旨在将其服务与资源包装成数据接口开放输出给第三方企业,使第三方企业通过开放接口使用开放平台的各种资源。
在开放接口条件下,如何保证用户、开放平台以及第三方交互过程中的三方互信以及数据安全通信,受到各大互联网公司的关注和重视,也是最需要解决的问题。
发明内容
基于上述需求,本申请提出一种开放平台认证授权方法及装置,能够实现三方交互的信任机制,保证交互数据安全。
一种开放平台认证授权方法,应用于开放平台,所述方法包括:
获取第三方应用发送的登录授权请求,并对所述第三方应用的身份进行校验;
当所述第三方应用通过身份校验时,向所述第三方应用返回临时令牌;
接收所述第三方应用发送的访问令牌获取请求,并向所述第三方应用发送所述访问令牌;其中,所述访问令牌获取请求由所述第三方应用根据所述临时访问令牌生成;
基于所述第三方应用发送的用户信息调用请求,向所述第三方应用发送所请求的用户信息;其中,所述用户信息调用请求由所述第三方应用基于所述访问令牌而生成。
可选的,所述获取第三方应用发送的登录授权请求,并对所述第三方应用的身份进行校验,包括:
获取第三方应用发送的登录授权请求,并利用所述登录授权请求中包含的所述第三方应用的身份信息,对所述第三方应用进行身份校验;
判断所述第三方应用所请求的用户信息对应的用户是否为首次登录开放平台;
如果不是首次登录开放平台,则当校验确认所述第三方应用身份合法时,确认所述第三方应用通过身份校验;
如果是首次登录开放平台,则向用户端发送用户信息授权请求,以使用户授权所述第三方应用获取用户信息;
如果所述第三方应用身份合法,并且用户授权允许所述第三方应用获取用户信息,则确认所述第三方应用通过身份校验。
可选的,所述登录授权请求中还包括授权域信息,所述授权域信息表示请求获得调用权限的信息的类别;
所述取第三方应用发送的登录授权请求,并对所述第三方应用的身份进行校验,还包括:
如果所述第三方应用所请求的用户信息对应的用户不是首次登录开放平台,则判断所述登录授权请求中的授权域信息,与所述第三方应用预先获得的用户信息调用权限是否匹配;
如果所述第三方应用身份合法,并且所述登录授权请求中的授权域信息,与所述第三方应用预先获得的用户信息调用权限是否匹配,则确认所述第三方应用通过身份校验;
所述向用户端发送用户信息授权请求,包括:
向用户端发送包含所述授权域信息的用户信息授权请求。
可选的,所述基于所述第三方应用发送的用户信息调用请求,向所述第三方应用发送所请求的用户信息,包括:
基于所述第三方应用发送的用户信息调用请求,判断所述第三方应用请求调用的用户信息,与所述登录授权请求中的授权域信息是否匹配;
如果匹配,则向所述第三方应用发送所请求的用户信息。
可选的,所述获取第三方应用发送的登录授权请求,包括:
获取第三方应用通过PC端、移动端应用程序、网页H5页面、微信公众号小程序中的任意一种或多种渠道发送的登录授权请求。
可选的,所述接收所述第三方应用发送的访问令牌获取请求,并向所述第三方应用发送所述访问令牌,包括:
接收所述第三方应用发送的访问令牌获取请求;
判断接收所述访问令牌获取请求的时刻,与向所述第三方应用返回临时令牌的时刻之间的时间间隔,是否小于所述临时令牌的有效时长;
如果小于所述临时令牌的有效时长,则向所述第三方应用发送所述访问令牌。
一种开放平台认证授权方法,应用于第三方应用,所述方法包括:
向开放平台发送登录授权请求;
当接收到所述开放平台发送的临时令牌时,根据所述临时令牌生成访问令牌获取请求;
将所述访问令牌获取请求发送给所述开放平台;
当接收到所述开放平台发送的访问令牌时,基于所述访问令牌生成用户信息调用请求,并发送给所述开放平台;
接收所述开放平台发送的用户信息。
一种开放平台认证授权装置,应用于开放平台,所述装置包括:
请求获取单元,用于获取第三方应用发送的登录授权请求,并对所述第三方应用的身份进行校验;
第一响应单元,用于当对所述第三方应用通过身份校验时,向所述第三方应用返回临时令牌;
第二响应单元,用于接收所述第三方应用发送的访问令牌获取请求,并向所述第三方应用发送所述访问令牌;其中,所述访问令牌获取请求由所述第三方应用根据所述临时访问令牌生成;
第三响应单元,用于基于所述第三方应用发送的用户信息调用请求,向所述第三方应用发送所请求的用户信息;其中,所述用户信息调用请求由所述第三方应用基于所述访问令牌而生成。
可选的,所述开放平台包括:服务端会话层、服务端接口层以及服务端业务层;
所述服务端会话层,用于实现第三方应用请求访问权限控制处理、签名验签双向身份认证处理、请求的防重放处理以及通信数据的加解密处理;
所述服务端接口层,用于对请求参数进行过滤校验,防范跨站请求伪造攻击以及跨站脚本攻击;
所述服务端业务层,用于至少通过输入参数校验、流程防绕过、密码控件、令牌有效期、授权域校验、回调地址校验,对第三方应用请求进行严格验证,并对用户行为进行实时验证与阻断;
所述开放平台认证授权装置的各个单元,分别通过调用所述开放平台的服务端会话层,和/或服务端接口层,和/或服务端业务层,实现各自的功能。
一种开放平台认证授权装置,应用于第三方应用,所述装置包括:
第一请求发送单元,用于向开放平台发送登录授权请求;
第一接收单元,用于当接收到所述开放平台发送的临时令牌时,根据所述临时令牌生成访问令牌获取请求;
第二请求发送单元,用于将所述访问令牌获取请求发送给所述开放平台;
第三请求发送单元,用于当接收到所述开放平台发送的访问令牌时,基于所述访问令牌生成用户信息调用请求,并发送给所述开放平台;
第二接收单元,用于接收所述开放平台发送的用户信息。
在本申请提出的认证授权过程中,对第三方应用进行了身份校验,并且设定第三方应用必须以临时令牌、访问令牌进行用户信息调用,由此实现多途径、全进程地对第三方应用进行校验,实现了三方交互的信任机制,保证了交互数据安全。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请实施例提供的一种开放平台认证授权方法的流程示意图;
图2是本申请实施例提供的另一种开放平台认证授权方法的流程示意图;
图3是本申请实施例提供的开放平台认证授权方法的处理时序示意图;
图4是本申请实施例提供的一种开放平台认证授权装置的结构示意图;
图5是本申请实施例提供的开放平台结构示意图;
图6是本申请实施例提供的另一种开放平台认证授权装置的结构示意图。
具体实施方式
本申请实施例技术方案适用于用户、开放平台及第三方应用基于该开放平台的三方交互应用场景。采用本申请实施例技术方案,能够三方交互中的三方互信问题,并且能够保证交互数据安全性。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在对本申请实施例技术方案进行详细介绍之前,先对文中涉及的相关术语进行说明:
开放平台:整合服务与资源,将其通过统一接口进行输出的平台。
第三方应用:开放平台的接入方,需通过接入并调用开放平台接口获取用户在开放平台的相关资源信息。
OAuth2.0:用户认证授权机制,用于保证交互过程中的三方互信。
授权域(Scope):对用户不同纬度的资源信息进行的类别细分。
应用标识(APPID):第三方应用用于访问开放平台接口的唯一应用标识。
应用秘钥(SECRET):第三方应用用于访问开放平台接口的唯一应用秘钥。
临时令牌(Code):认证授权第一步完成时返回的令牌,有效期为3分钟。
访问令牌(AccessToken):认证授权第二步完成时返回的令牌,有效期为120分钟。
回调地址(Redirect_Uri):成功授权后的回调地址,用于第三方应用上送参数校验以及接收重定向时的临时令牌。
状态码(State):第三方应用定义的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。
授权类型(Grant_Type):认证授权模式类型,本申请考虑更为主流的授权码模式。
本申请实施例提出一种开放平台认证授权方法,该方法可应用于开放平台,参见图1所示,该方法包括:
S101、获取第三方应用发送的登录授权请求,并对所述第三方应用的身份进行校验。
具体的,当第三方应用需要通过开放平台获取用户信息时,需要首先登录开放平台,并且引导用户登录该开放平台。
当第三方应用登录开放平台时,调起开放平台的登录授权交易,根据报文规范传入应用标识、授权域、回调地址等参数信息,引导用户登录开放平台。
相应的,开放平台获取第三方应用发送的登录授权请求,对该第三方应用的身份进行校验。
当所述第三方应用通过身份校验时,执行步骤S102、向所述第三方应用返回临时令牌。
如果第三方应用未通过身份校验,则执行步骤S103、拒绝第三方应用的登录授权请求。
具体的,开放平台对第三方应用进行身份校验确定该第三方应用通过身份校验时,向第三方应用返回临时令牌code,该临时令牌的有效期为3分钟。
开放平台将临时令牌追加至第三方应用的回调地址后进行重定向回第三方应用。
S104、接收所述第三方应用发送的访问令牌获取请求,并向所述第三方应用发送所述访问令牌。
其中,所述访问令牌获取请求由所述第三方应用根据所述临时访问令牌生成。
具体的,当第三方应用接收到开放平台返回的信息后,应用接收回调地址中的code参数,并通过后台调用开放平台访问令牌交易,以期换取访问令牌AccessToken,即,第三方应用根据获取的临时令牌生成访问令牌获取请求。
开放平台接收到第三方应用发送的访问令牌获取请求后,向第三方应用发送访问令牌,该访问令牌的有效期为120分钟。
S105、基于所述第三方应用发送的用户信息调用请求,向所述第三方应用发送所请求的用户信息;其中,所述用户信息调用请求由所述第三方应用基于所述访问令牌而生成。
第三方应用接收访问令牌后,后台通过访问令牌调用开放平台资源服务,请求获取用户相关信息。
具体的,第三方应用基于接收的访问令牌,生成用户信息调用请求并发送给开放平台。开放平台接收到第三方应用发送的用户信息调用请求后,向第三方应用发送其所请求的用户信息。
本申请实施例上述的开放平台认证授权方法,是基于OAuth2.0协议实现的开放平台认证授权方案。该协议可保证第三方获取用户资源前需经过用户在开放平台确认授权,交互过程中用户账号密码等敏感信息不会传输给第三方,而是将带有时效性的令牌授予第三方进行数据资源访问,保证整个交互过程是安全性且用户可知性。
在本申请实施例提出的认证授权过程中,对第三方应用进行了身份校验,并且设定第三方应用必须以临时令牌、访问令牌进行用户信息调用,由此实现多途径、全进程地对第三方应用进行校验,实现了三方交互的信任机制,保证了交互数据安全。
作为一种示例性的实现方式,开放平台获取第三方应用发送的登录授权请求,并对所述第三方应用的身份进行校验,具体包括:
获取第三方应用发送的登录授权请求,并利用所述登录授权请求中包含的所述第三方应用的身份信息,对所述第三方应用进行身份校验;
同时,判断该第三方应用所请求的用户信息对应的用户是否为首次登录开放平台。
如果不是首次登录开放平台,则当校验确认该第三方应用身份合法时,即确认该第三方应用通过身份校验。
如果是首次登录开放平台,则向用户端发送用户信息授权请求,以使用户授权该第三方该应用获取用户信息。
具体的,该用户信息授权请求,以授权页面的形式推送至用户端,用户端弹出授权页面,用户点击确认则继续进行授权流程,如果用户拒绝,则授权流程中断。
如果经过开放平台校验确认第三方应用身份合法,并且用户授权允许该第三方应用获取其用户信息,则开放平台确认该第三方应用通过身份校验。
进一步的,本申请实施例在构建授权域Scope时,充分考虑用户不同纬度资源,进行资源细分,如下表1所示,划分的授权域主要包括openid(用户标识)、低隐私、中隐私、姓名、手机号、证件、客户号、卡列表等八个类别授权域信息,在第三方在开放平台进行准入时,根据业务场景需求对第三方进行授权域分配。
表1
Scope名称 描述 具体内容
cardlist 银行卡列表数据 读取用户的银行卡列表信息
openid 用户openid信息 读取用户的openid
low 低隐私数据 读取用户的昵称等信息
mid 中隐私数据 读取用户的地址、电子邮箱等信息
phone 手机号数据 读取用户的手机号
name 姓名数据 读取用户的姓名
certnum 证件数据 读取用户的证件号码
custinfo 客户号 读取用户的客户标识
具体的,第三方应用发送给开放平台的登录授权请求中包括第三方应用希望获得调用权限的授权域信息。
当开放平台获取第三方应用发送的登录授权请求,对第三方应用的身份进行校验时,不进对第三方应用进行身份信息进行校验,还执行如下处理:
如果第三方应用所请求的用户信息对应的用户不是首次登录开放平台,则开放平台判断接收的登录授权请求中的授权域信息,与第三方应用预先获得的用户信息调用权限是否匹配,也就是判断第三方应用有没有预先获得所请求的用户信息对应的授权域的调用权限。
如果所述第三方应用身份合法,并且所述登录授权请求中的授权域信息,与所述第三方应用预先获得的用户信息调用权限是否匹配,则确认所述第三方应用通过身份校验。
如果第三方应用所请求的用户信息对应的用户是首次登录开放平台,则开放平台向用户端发送用户信息授权请求,具体是向用户端发送包含上述授权域信息的用户信息授权请求,以便请求用户同意第三方应用获取该用户该授权域内的用户信息。
同时,当开放平台基于所述第三方应用发送的用户信息调用请求,向所述第三方应用发送所请求的用户信息时,基于所述第三方应用发送的用户信息调用请求,判断所述第三方应用请求调用的用户信息,与所述登录授权请求中的授权域信息是否匹配;
如果匹配,则向所述第三方应用发送所请求的用户信息。
具体的,开放平台判断第三方应用所请求调用的用户信息,是否为其获得授权的授权域范围内的用户信息,也就是判断是否为其发送的登录授权请求中的授权域范围内的用户信息。
如果是该授权域范围内的用户信息,也就是第三方应用请求调用的用户信息,与所述登录授权请求中的授权域信息相匹配,则开放平台向第三方应用发送其所请求的用户信息。
如果不是该授权域范围内的用户信息,则开放平台拒绝第三方应用的用户信息调用请求。
可见,基于本申请实施例上述的授权域划分,开放平台可以更细致地对第三方应用进行权限校验,避免第三方应用随意调用用户信息,从而保证用户信息安全。
作为示例性的实现方式,本申请实施例提出的开放平台认证授权方法,可以应用于多种认证授权场景,例如PC应用授权、移动APP授权、扫码授权、移动APP内嵌H5页面授权、微信公众号授权等。
则,开放平台获取第三方应用发送的登录授权请求,可以是获取第三方应用通过PC端、移动端应用程序、网页H5页面、微信公众号小程序中的任意一种或多种渠道发送的登录授权请求。
作为一种优选的实现方式,由于开放平台发放给第三方应用的临时令牌具有时效性,则,开放平台接收所述第三方应用发送的访问令牌获取请求,并向所述第三方应用发送所述访问令牌时,首先接收第三方应用发送的访问令牌获取请求,然后,判断接收所述访问令牌获取请求的时刻,与向所述第三方应用返回临时令牌的时刻之间的时间间隔,是否小于所述临时令牌的有效时长。也就是,判断接收所述访问令牌获取请求时,该临时令牌是否还在有效期内。
如果小于所述临时令牌的有效时长,也就是该临时令牌还在有效期内,则向所述第三方应用发送所述访问令牌。
如果不小于所述临时令牌的有效时长,也就是接收所述访问令牌获取请求时,该临时令牌已经失效,则开放平台拒绝向第三方应用发送访问令牌。
相应的,由于开放平台发放给第三方应用的访问令牌也具有时效性,则,当开放平台基于所述第三方应用发送的用户信息调用请求,向所述第三方应用发送所请求的用户信息,也可以进一步验证接收第三方应用发送的用户信息调用请求时,该第三方应用的访问令牌是否在有效期内,如果在有效期内,则向第三方应用发送所请求的用户信息;如果已经失效,则拒绝第三方应用的用户信息调用请求。
本申请实施例还提出另一种开放平台认证授权方法,该方法可应用于第三方应用,参见图2所示,该方法包括:
S201、向开放平台发送登录授权请求。
具体的,当第三方应用需要通过开放平台获取用户信息时,需要首先登录开放平台,并且引导用户登录该开放平台。
当第三方应用登录开放平台时,调起开放平台的登录授权交易,向开发平台发送登录授权请求,根据报文规范传入应用标识、授权域、回调地址等参数信息。
当接收到所述开放平台发送的临时令牌时,执行步骤S202、根据所述临时令牌生成访问令牌获取请求。
如果未接收到开放平台发送的临时令牌,则可以返回步骤S201,重新向开放平台发送登录授权请求,或者等待。
S203、将所述访问令牌获取请求发送给所述开放平台。
具体的,由于临时令牌有有效期限制,因此,第三方应用应当在临时令牌有效期内,生成访问令牌获取请求,并将该访问令牌获取请求发送给开放平台。
如果第三方应用发送登录授权请求后,开放平台没有返回临时令牌,则可能是开放平台没有收到该请求,或者该请求未被允许,此时,第三方应用可以再次发送该登录授权请求,或者重新发送新的登录授权请求,或者继续等待。
当接收到所述开放平台发送的访问令牌时,执行步骤S204、基于所述访问令牌生成用户信息调用请求,并发送给所述开放平台。
如果未接收到所述开放平台发送的访问令牌,则以返回步骤S201,重新向开放平台发送访问令牌获取请求,或者等待。
第三方应用接收访问令牌后,后台通过访问令牌调用开放平台资源服务,请求获取用户相关信息。具体的,第三方应用基于接收的访问令牌,生成用户信息调用请求并发送给开放平台。
如果第三方应用发送访问令牌获取请求后,开放平台没有返回访问令牌,则可能是开放平台没有收到该请求,或者该请求未被允许,此时,第三方应用可以再次发送该访问令牌获取请求,或者继续等待。
S205、接收所述开放平台发送的用户信息。
具体的,开放平台接收到第三方应用发送的用户信息调用请求后,向第三方应用发送其所请求的用户信息。第三方应用接收开放平台发送的用户信息即完成了用户信息调用的三方交互流程。
本申请实施例上述的开放平台认证授权方法,是基于OAuth2.0协议实现的开放平台认证授权方案。该协议可保证第三方获取用户资源前需经过用户在开放平台确认授权,交互过程中用户账号密码等敏感信息不会传输给第三方,而是将带有时效性的令牌授予第三方进行数据资源访问,保证整个交互过程是安全性且用户可知性。
在本申请实施例提出的认证授权过程中,对第三方应用进行了身份校验,并且设定第三方应用必须以临时令牌、访问令牌进行用户信息调用,由此实现多途径、全进程地对第三方应用进行校验,实现了三方交互的信任机制,保证了交互数据安全。
需要说明的是,上述的应用于开放平台的开放平台认证授权方法,与应用于第三方应用的开放平台认证授权方法,两者的处理流程是相互对应的。因此,上述两种开放平台认证授权方法的具体处理内容可以相互参见,本申请实施例不再单独地一一介绍说明。
另外,通过上述介绍可见,本申请实施例提出的开放平台认证授权方法,实际上需要开放平台与第三方应用交互实现互信信息交互,下面以开放平台与第三方应用交互的方式,简要介绍本申请实施例提出的开放平台认证授权方法的具体处理流程。
参见图3所示,本申请实施例提出的开放平台认证授权方法的处理流程如下:
①第三方页面调起开放平台登录授权交易,根据报文规范传入appid、scope、回调地址等参数信息,引导用户进行登录;
②开放平台进行第三方身份校验,如果用户首次登录,则会弹出授权页面提示用户授权给应用的信息,用户点击确认则继续进行授权流程,若用户拒绝,则授权流程中断;
③开放平台对第三方信息校验通过后则会返回临时令牌code,临时令牌有效期为3分钟;
④开放平台将临时令牌追加至第三方回调地址后进行重定向回第三方应用页面;
⑤第三方应用接收回调地址中的code参数,并通过后台调用开放平台访问令牌交易,换取访问令牌AccessToken,访问令牌有效期为120分钟;
⑥第三方接收访问令牌后,后台通过访问令牌调用开放平台资源服务,获取用户相关信息。
本申请实施例还提出一种开放平台认证授权装置,该装置可应用于开放平台,参见图4所示,该装置包括:
请求获取单元100,用于获取第三方应用发送的登录授权请求,并对所述第三方应用的身份进行校验;
第一响应单元110,用于当对所述第三方应用通过身份校验时,向所述第三方应用返回临时令牌;
第二响应单元120,用于接收所述第三方应用发送的访问令牌获取请求,并向所述第三方应用发送所述访问令牌;其中,所述访问令牌获取请求由所述第三方应用根据所述临时访问令牌生成;
第三响应单元130,用于基于所述第三方应用发送的用户信息调用请求,向所述第三方应用发送所请求的用户信息;其中,所述用户信息调用请求由所述第三方应用基于所述访问令牌而生成。
可选的,所述获取第三方应用发送的登录授权请求,并对所述第三方应用的身份进行校验,包括:
获取第三方应用发送的登录授权请求,并利用所述登录授权请求中包含的所述第三方应用的身份信息,对所述第三方应用进行身份校验;
判断所述第三方应用所请求的用户信息对应的用户是否为首次登录开放平台;
如果不是首次登录开放平台,则当校验确认所述第三方应用身份合法时,确认所述第三方应用通过身份校验;
如果是首次登录开放平台,则向用户端发送用户信息授权请求,以使用户授权所述第三方应用获取用户信息;
如果所述第三方应用身份合法,并且用户授权允许所述第三方应用获取用户信息,则确认所述第三方应用通过身份校验。
可选的,所述登录授权请求中还包括授权域信息,所述授权域信息表示请求获得调用权限的信息的类别;
所述取第三方应用发送的登录授权请求,并对所述第三方应用的身份进行校验,还包括:
如果所述第三方应用所请求的用户信息对应的用户不是首次登录开放平台,则判断所述登录授权请求中的授权域信息,与所述第三方应用预先获得的用户信息调用权限是否匹配;
如果所述第三方应用身份合法,并且所述登录授权请求中的授权域信息,与所述第三方应用预先获得的用户信息调用权限是否匹配,则确认所述第三方应用通过身份校验;
所述向用户端发送用户信息授权请求,包括:
向用户端发送包含所述授权域信息的用户信息授权请求。
可选的,所述基于所述第三方应用发送的用户信息调用请求,向所述第三方应用发送所请求的用户信息,包括:
基于所述第三方应用发送的用户信息调用请求,判断所述第三方应用请求调用的用户信息,与所述登录授权请求中的授权域信息是否匹配;
如果匹配,则向所述第三方应用发送所请求的用户信息。
可选的,所述获取第三方应用发送的登录授权请求,包括:
获取第三方应用通过PC端、移动端应用程序、网页H5页面、微信公众号小程序中的任意一种或多种渠道发送的登录授权请求。
可选的,所述接收所述第三方应用发送的访问令牌获取请求,并向所述第三方应用发送所述访问令牌,包括:
接收所述第三方应用发送的访问令牌获取请求;
判断接收所述访问令牌获取请求的时刻,与向所述第三方应用返回临时令牌的时刻之间的时间间隔,是否小于所述临时令牌的有效时长;
如果小于所述临时令牌的有效时长,则向所述第三方应用发送所述访问令牌。
上述的开放平台承担重要的安全责任,主要体现在两个方面,其一要保证合法的第三方通过认证授权流程安全获取用户信息,其二是防止第三方或者其他攻击者绕过认证授权流程以非法的手段获取资源信息。因此本申请利用上述的开放平台,从三个维度保护用户授权数据安全性,分别是服务端会话层安全、服务端接口层安全以及服务端业务层安全。
参见图5所示,所述开放平台包括:服务端会话层、服务端接口层以及服务端业务层;
所述服务端会话层,用于实现第三方应用请求访问权限控制处理、签名验签双向身份认证处理、请求的防重放处理以及通信数据的加解密处理;
所述服务端接口层,用于对请求参数进行xss,csrf等过滤校验,防范跨站请求伪造攻击以及跨站脚本攻击等;
所述服务端业务层,用于至少通过输入参数校验、流程防绕过、密码控件、令牌有效期、授权域校验、回调地址校验,对第三方应用请求进行严格验证,并通过反欺诈等校验方式对用户行为进行实时验证与阻断;
所述开放平台认证授权装置的各个单元,分别通过调用所述开放平台的服务端会话层,和/或服务端接口层,和/或服务端业务层,实现各自的功能。
具体的,上述的开放平台认证授权装置的各个单元的具体工作内容,请参见上述的开放平台认证授权方法的实施例内容,此处不再赘述。
本申请另一实施例还提出另一种开放平台认证授权装置,该装置应用于第三方应用,参见图6所示,该装置包括:
第一请求发送单元200,用于向开放平台发送登录授权请求;
第一接收单元210,用于当接收到所述开放平台发送的临时令牌时,根据所述临时令牌生成访问令牌获取请求;
第二请求发送单元220,用于将所述访问令牌获取请求发送给所述开放平台;
第三请求发送单元230,用于当接收到所述开放平台发送的访问令牌时,基于所述访问令牌生成用户信息调用请求,并发送给所述开放平台;
第二接收单元240,用于接收所述开放平台发送的用户信息。
具体的,该开放平台认证授权装置的各个单元的具体工作内容,请参见上述的开放平台认证授权方法的实施例内容,此处不再赘述。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,各实施例中记载的技术特征可以进行替换或者组合。
本申请各实施例种装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。
本申请所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件单元,或者二者的结合来实施。软件单元可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种开放平台认证授权方法,其特征在于,应用于开放平台,所述方法包括:
获取第三方应用发送的登录授权请求,并对所述第三方应用的身份进行校验;
当所述第三方应用通过身份校验时,向所述第三方应用返回临时令牌;
接收所述第三方应用发送的访问令牌获取请求,并向所述第三方应用发送所述访问令牌;其中,所述访问令牌获取请求由所述第三方应用根据所述临时访问令牌生成;
基于所述第三方应用发送的用户信息调用请求,向所述第三方应用发送所请求的用户信息;其中,所述用户信息调用请求由所述第三方应用基于所述访问令牌而生成。
2.根据权利要求1所述的方法,其特征在于,所述获取第三方应用发送的登录授权请求,并对所述第三方应用的身份进行校验,包括:
获取第三方应用发送的登录授权请求,并利用所述登录授权请求中包含的所述第三方应用的身份信息,对所述第三方应用进行身份校验;
判断所述第三方应用所请求的用户信息对应的用户是否为首次登录开放平台;
如果不是首次登录开放平台,则当校验确认所述第三方应用身份合法时,确认所述第三方应用通过身份校验;
如果是首次登录开放平台,则向用户端发送用户信息授权请求,以使用户授权所述第三方应用获取用户信息;
如果所述第三方应用身份合法,并且用户授权允许所述第三方应用获取用户信息,则确认所述第三方应用通过身份校验。
3.根据权利要求2所述的方法,其特征在于,所述登录授权请求中还包括授权域信息,所述授权域信息表示请求获得调用权限的信息的类别;
所述取第三方应用发送的登录授权请求,并对所述第三方应用的身份进行校验,还包括:
如果所述第三方应用所请求的用户信息对应的用户不是首次登录开放平台,则判断所述登录授权请求中的授权域信息,与所述第三方应用预先获得的用户信息调用权限是否匹配;
如果所述第三方应用身份合法,并且所述登录授权请求中的授权域信息,与所述第三方应用预先获得的用户信息调用权限是否匹配,则确认所述第三方应用通过身份校验;
所述向用户端发送用户信息授权请求,包括:
向用户端发送包含所述授权域信息的用户信息授权请求。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第三方应用发送的用户信息调用请求,向所述第三方应用发送所请求的用户信息,包括:
基于所述第三方应用发送的用户信息调用请求,判断所述第三方应用请求调用的用户信息,与所述登录授权请求中的授权域信息是否匹配;
如果匹配,则向所述第三方应用发送所请求的用户信息。
5.根据权利要求1所述的方法,其特征在于,所述获取第三方应用发送的登录授权请求,包括:
获取第三方应用通过PC端、移动端应用程序、网页H5页面、微信公众号小程序中的任意一种或多种渠道发送的登录授权请求。
6.根据权利要求1所述的方法,其特征在于,所述接收所述第三方应用发送的访问令牌获取请求,并向所述第三方应用发送所述访问令牌,包括:
接收所述第三方应用发送的访问令牌获取请求;
判断接收所述访问令牌获取请求的时刻,与向所述第三方应用返回临时令牌的时刻之间的时间间隔,是否小于所述临时令牌的有效时长;
如果小于所述临时令牌的有效时长,则向所述第三方应用发送所述访问令牌。
7.一种开放平台认证授权方法,其特征在于,应用于第三方应用,所述方法包括:
向开放平台发送登录授权请求;
当接收到所述开放平台发送的临时令牌时,根据所述临时令牌生成访问令牌获取请求;
将所述访问令牌获取请求发送给所述开放平台;
当接收到所述开放平台发送的访问令牌时,基于所述访问令牌生成用户信息调用请求,并发送给所述开放平台;
接收所述开放平台发送的用户信息。
8.一种开放平台认证授权装置,其特征在于,应用于开放平台,所述装置包括:
请求获取单元,用于获取第三方应用发送的登录授权请求,并对所述第三方应用的身份进行校验;
第一响应单元,用于当对所述第三方应用通过身份校验时,向所述第三方应用返回临时令牌;
第二响应单元,用于接收所述第三方应用发送的访问令牌获取请求,并向所述第三方应用发送所述访问令牌;其中,所述访问令牌获取请求由所述第三方应用根据所述临时访问令牌生成;
第三响应单元,用于基于所述第三方应用发送的用户信息调用请求,向所述第三方应用发送所请求的用户信息;其中,所述用户信息调用请求由所述第三方应用基于所述访问令牌而生成。
9.根据权利要求8所述的装置,其特征在于,所述开放平台包括:服务端会话层、服务端接口层以及服务端业务层;
所述服务端会话层,用于实现第三方应用请求访问权限控制处理、签名验签双向身份认证处理、请求的防重放处理以及通信数据的加解密处理;
所述服务端接口层,用于对请求参数进行过滤校验,防范跨站请求伪造攻击以及跨站脚本攻击;
所述服务端业务层,用于至少通过输入参数校验、流程防绕过、密码控件、令牌有效期、授权域校验、回调地址校验,对第三方应用请求进行严格验证,并对用户行为进行实时验证与阻断;
所述开放平台认证授权装置的各个单元,分别通过调用所述开放平台的服务端会话层,和/或服务端接口层,和/或服务端业务层,实现各自的功能。
10.一种开放平台认证授权装置,其特征在于,应用于第三方应用,所述装置包括:
第一请求发送单元,用于向开放平台发送登录授权请求;
第一接收单元,用于当接收到所述开放平台发送的临时令牌时,根据所述临时令牌生成访问令牌获取请求;
第二请求发送单元,用于将所述访问令牌获取请求发送给所述开放平台;
第三请求发送单元,用于当接收到所述开放平台发送的访问令牌时,基于所述访问令牌生成用户信息调用请求,并发送给所述开放平台;
第二接收单元,用于接收所述开放平台发送的用户信息。
CN202011583242.XA 2020-12-28 2020-12-28 一种开放平台认证授权方法及装置 Pending CN112613073A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011583242.XA CN112613073A (zh) 2020-12-28 2020-12-28 一种开放平台认证授权方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011583242.XA CN112613073A (zh) 2020-12-28 2020-12-28 一种开放平台认证授权方法及装置

Publications (1)

Publication Number Publication Date
CN112613073A true CN112613073A (zh) 2021-04-06

Family

ID=75248504

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011583242.XA Pending CN112613073A (zh) 2020-12-28 2020-12-28 一种开放平台认证授权方法及装置

Country Status (1)

Country Link
CN (1) CN112613073A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312653A (zh) * 2021-06-25 2021-08-27 中国农业银行股份有限公司 开放平台认证授权方法、装置及存储介质
CN113781194A (zh) * 2021-09-06 2021-12-10 青岛微智慧信息有限公司 适用于灵活用工的接入监管方法及系统
CN114329290A (zh) * 2021-12-15 2022-04-12 北京科东电力控制系统有限责任公司 能力开放平台及其授权访问方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103051630A (zh) * 2012-12-21 2013-04-17 微梦创科网络科技(中国)有限公司 基于开放平台实现第三方应用授权的方法、装置及系统
CN103856446A (zh) * 2012-11-30 2014-06-11 腾讯科技(深圳)有限公司 一种登录方法、装置及开放平台系统
CN106209735A (zh) * 2015-04-30 2016-12-07 中国移动通信集团公司 一种信息处理方法、装置及电子健康档案系统
CN109218298A (zh) * 2018-09-04 2019-01-15 中钞信用卡产业发展有限公司杭州区块链技术研究院 一种应用数据访问方法及系统
CN111639327A (zh) * 2020-05-29 2020-09-08 深圳前海微众银行股份有限公司 一种开放平台的认证方法及装置
CN111770088A (zh) * 2020-06-29 2020-10-13 南方电网科学研究院有限责任公司 数据鉴权方法、装置、电子设备和计算机可读存储介质
CN111818088A (zh) * 2020-07-28 2020-10-23 深圳壹账通智能科技有限公司 授权模式管理方法、装置、计算机设备及可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103856446A (zh) * 2012-11-30 2014-06-11 腾讯科技(深圳)有限公司 一种登录方法、装置及开放平台系统
CN103051630A (zh) * 2012-12-21 2013-04-17 微梦创科网络科技(中国)有限公司 基于开放平台实现第三方应用授权的方法、装置及系统
CN106209735A (zh) * 2015-04-30 2016-12-07 中国移动通信集团公司 一种信息处理方法、装置及电子健康档案系统
CN109218298A (zh) * 2018-09-04 2019-01-15 中钞信用卡产业发展有限公司杭州区块链技术研究院 一种应用数据访问方法及系统
CN111639327A (zh) * 2020-05-29 2020-09-08 深圳前海微众银行股份有限公司 一种开放平台的认证方法及装置
CN111770088A (zh) * 2020-06-29 2020-10-13 南方电网科学研究院有限责任公司 数据鉴权方法、装置、电子设备和计算机可读存储介质
CN111818088A (zh) * 2020-07-28 2020-10-23 深圳壹账通智能科技有限公司 授权模式管理方法、装置、计算机设备及可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312653A (zh) * 2021-06-25 2021-08-27 中国农业银行股份有限公司 开放平台认证授权方法、装置及存储介质
CN113781194A (zh) * 2021-09-06 2021-12-10 青岛微智慧信息有限公司 适用于灵活用工的接入监管方法及系统
CN114329290A (zh) * 2021-12-15 2022-04-12 北京科东电力控制系统有限责任公司 能力开放平台及其授权访问方法
CN114329290B (zh) * 2021-12-15 2023-09-15 北京科东电力控制系统有限责任公司 能力开放平台及其授权访问方法

Similar Documents

Publication Publication Date Title
Li et al. Analysing the Security of Google’s implementation of OpenID Connect
CN108684041B (zh) 登录认证的系统和方法
JP6426189B2 (ja) 生体認証プロトコル標準のためのシステムおよび方法
US8713644B2 (en) System and method for providing security in browser-based access to smart cards
CN112613073A (zh) 一种开放平台认证授权方法及装置
US20100146609A1 (en) Method and system of securing accounts
US20090319776A1 (en) Techniques for secure network communication
CN111355713B (zh) 一种代理访问方法、装置、代理网关及可读存储介质
RU2676896C2 (ru) Способ и система аутентификации пользователей для предоставления доступа к сетям передачи данных
KR20100038990A (ko) 네트워크 인증 시스템의 보안 인증 방법 및 그 장치
AU2016250293A1 (en) Method and system for transaction security
CN116319024A (zh) 零信任系统的访问控制方法、装置及零信任系统
Lodderstedt et al. OAuth 2.0 Security Best Current Practice (draft-ietf-oauth-security-topics-16)
CN111614458A (zh) 网关jwt的生成方法、系统及存储介质
CN111723347B (zh) 身份认证方法、装置、电子设备及存储介质
CN105743883B (zh) 一种网络应用的身份属性获取方法及装置
CN111404946B (zh) 基于浏览器的账户认证方法及服务器
Kingo et al. User-centric security analysis of MitID: the Danish passwordless digital identity solution
CN107590662B (zh) 一种调用网银系统的认证方法及认证服务器、系统
CN112134705A (zh) 数据鉴权的方法及装置、存储介质和电子装置
CN112822007B (zh) 一种用户认证方法、装置及设备
CN110086794B (zh) 一种多入口的安全登录方法及系统
CN112000951B (zh) 一种访问方法、装置、系统、电子设备及存储介质
WO2010070456A2 (en) Method and apparatus for authenticating online transactions using a browser
Aiemworawutikul et al. Vulnerability Assessment in National Identity Services

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination