CN111901346B - 一种身份认证系统 - Google Patents
一种身份认证系统 Download PDFInfo
- Publication number
- CN111901346B CN111901346B CN202010742981.2A CN202010742981A CN111901346B CN 111901346 B CN111901346 B CN 111901346B CN 202010742981 A CN202010742981 A CN 202010742981A CN 111901346 B CN111901346 B CN 111901346B
- Authority
- CN
- China
- Prior art keywords
- authentication
- application module
- application
- bill
- ticket
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种身份认证系统,其中,第三方应用模块,用于向应用服务器发送访问请求,接收应用服务器返回的票据请求,向认证应用模块发送票据请求;接收认证应用模块发送的签名票据,向应用服务器发送签名票据;应用服务器,用于接收访问请求,响应于访问请求向第三方应用模块发送票据请求;对签名票据进行验证,在验证通过时向第三方应用模块返回应用资源;认证应用模块,用于接收票据请求,向认证服务器发送票据请求;接收认证服务器发送的签名票据,向第三方应用模块发送签名票据;认证服务器,用于接收票据请求,响应于票据请求生成签名票据,向认证应用模块发送签名票据。本发明实施例能够实现第三方应用模块自动登录对应的应用服务器,无需用户记录登录凭证,便于用户使用。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种身份认证系统。
背景技术
随着移动终端和网络技术的不断发展、移动办公的普及,企业、机关单位纷纷开发各类业务的移动端应用系统,这些系统相互独立,用户需要维护多个口令或证书,用户适用非常不方便。
在移动端,单点登录的实现尚没有明确的标准。单点登录的安全断言标记语言(Security Assertion Markup Language,简称SAML)是一个基于XML的标准安全断言标记语言,SAML已作为单点登录通信方式的开放标准,但仅提供对Web浏览器的支持,所以目前移动端仍然需要用户维护多个口令或者证书,给用户带来很大的记忆负担和安全隐患,非常不便于用户的使用。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种身份认证系统。
本申请提供了一种身份认证系统,包括:终端、认证服务器和应用服务器;
所述终端,用于在接收到用户输入的用于请求访问第三方应用模块的应用资源的触发操作时,向所述应用服务器发送访问请求;
所述应用服务器,用于接收所述访问请求,响应于所述访问请求向所述终端发送所述票据请求;
所述终端,还用于接收所述票据请求,向所述认证服务器发送所述票据请求;
所述认证服务器,用于接收所述票据请求,根据所述票据请求进行所述第三方应用模块的应用身份认证,若认证通过,生成签名票据,向所述终端发送所述签名票据;
所述终端,还用于接收所述签名票据,向所述应用服务器发送所述签名票据;
所述应用服务器,还用于对所述签名票据进行验证,在验证通过时向所述终端中的第三方应用模块返回所述应用资源。
可选的,所述终端包括:认证应用模块和第三方应用模块;
所述第三方应用模块,用于在接收到用户输入的用于请求访问第三方应用模块的应用资源的触发操作时,向所述应用服务器发送访问请求;
所述第三方应用模块,还用于接收所述应用服务器返回的票据请求,向所述认证应用模块发送所述票据请求;
所述认证应用模块,用于接收所述票据请求,向所述认证服务器发送所述票据请求;
所述认证应用模块,还用于接收所述认证服务器发送的签名票据,向所述第三方应用模块发送所述签名票据;
所述第三方应用模块,还用于接收所述认证应用模块发送的签名票据,向所述应用服务器发送所述签名票据。
可选的,所述认证应用模块,还用于在接收到所述票据请求时,确定所述用户是否已登录所述认证服务器,若所述用户已登录所述认证服务器,向所述认证服务器发送所述票据请求。
可选的,所述认证服务器,还用于在接收到所述票据请求时,根据所述票据请求进行第三方应用模块的应用身份认证,若认证通过,生成认证票据,对所述认证票据进行加密,利用预设的签名密钥对加密后的认证票据进行签名,得到签名票据。
可选的,所述认证应用模块,还用于若所述用户未登录所述认证服务器,发出登录提示;接收用户输入的身份凭证信息,向所述认证服务器发送所述身份凭证信息;
所述认证服务器,还用于接收所述认证应用模块发送的身份凭证信息,利用所述身份凭证信息对所述用户的用户身份进行认证,若用户身份认证通过,根据所述票据请求对所述认证应用模块的应用身份进行验证,若应用身份验证通过,检查所述用户是否授权所述第三方应用模块访问相应的应用资源,若已授权,则根据所述票据请求进行第三方应用模块的应用身份认证,若认证通过,生成认证票据。
可选的,所述认证服务器,还用于在所述身份凭证信息中提取用户名和用户口令,在预设注册用户集合中查询所述用户名,若未查询到所述用户名,确定对用户身份认证失败;若查询到所述用户名,对所述用户口令进行哈希运算,得到哈希值,将所述哈希值与预先设置的与所述用户名对应的预设哈希值进行对比,若二者相同,确定用户身份认证通过;若二者不同,确定用户身份认证失败。
可选的,所述认证服务器,还用于在所述票据请求中提取用于进行应用身份验证的字段及字段值,按照预设的与各字段对应的验证规则对字段值进行验证,若各字段值均验证通过,则确定应用身份验证通过。
可选的,所述认证服务器,还用于在预设授权信息集合中查询与所述第三方应用模块对应的授权信息,所述预设授权信息集合中的授权信息是所述第三方应用模块通过跳转机制向所述认证应用模块发送所述票据请求时所述认证应用模块获取的,若查询到与所述第三方应用模块对应的授权信息,确定用户已授权所述第三方应用模块访问相应的应用资源。
可选的,所述认证服务器,还用于利用所述认证应用模块的预设应用密钥对所述认证票据进行加密,使用预设私钥利用预设的签名密钥对加密后的认证票据进行签名,得到所述签名票据。
可选的,所述应用服务器,还用于在接收到所述签名票据时,利用预设公钥和所述签名票据对所述签名票据的签名进行验证,若签名验证通过,利用应用密钥对所述签名票据进行解密,得到所述票据内容,验证所述票据内容是否合法,若所述票据内容合法,向所述第三方应用模块返回应用资源。
可选的,所述应用服务器,还用于通过验证所述票据内容中的票据编号是否有重复、当前时刻是否位于有效时间段内及状态附加值是否和所述访问请求中的状态值相同中的一种或多种方式验证所述票据内容是否合法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本发明实施例能够在终端接收到用户输入的用于请求访问第三方应用模块的应用资源的触发操作时,向所述应用服务器发送访问请求,应用服务器可以响应于访问请求向终端发送所述票据请求,终端再将票据请求转发给认证服务器,认证服务器根据票据请求进行第三方应用模块的应用身份认证,若认证通过,生成签名票据,向终端发送签名票据,终端再将签名票据转发给应用服务器,应用服务器可以对签名票据进行验证,在验证通过时向终端中的第三方应用模块返回所述应用资源。
本发明实施例能够通过应用服务器、认证服务器及终端之间的交互协作,在终端中的第三方应用需要获取应用资源时,应用服务器可以生成票据请求,并通过终端发送给认证服务器,认证服务器对票据请求认证通过时,生成签名票据,再通过终端发送给应用服务器,应用服务器对签名票据验证通过时,向终端中的第三方应用返回应用资源,通过认证服务器对票据请求的认证和应用服务器对签名票据的验证实现第三方应用的身份认证,整个过程均从系统间进行,实现终端中的第三方应用模块可以自动登录对应的应用服务器,无需用户人工记录登录凭证信息,便于用户使用。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种身份认证系统的结构图;
图2为本申请实施例提供的一种身份认证系统的一种交互原理图;
图3为本申请实施例提供的一种身份认证系统的另一种交互原理图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
由于目前在移动端,单点登录的实现尚没有明确的标准。单点登录的安全断言标记语言(Security Assertion Markup Language,简称SAML)是一个基于XML的标准安全断言标记语言,SAML已作为单点登录通信方式的开放标准,但仅提供对Web浏览器的支持,所以目前移动端仍然需要用户维护多个口令或者证书,给用户带来很大的记忆负担和安全隐患,非常不便于用户的使用,为此,本发明实施例提供了一种身份认证系统,如图1所示,所述身份认证系统包括:终端11、认证服务器12和应用服务器13;
所述终端,用于在接收到用户输入的用于请求访问第三方应用模块的应用资源的触发操作时,向所述应用服务器发送访问请求;
在本发明实施例中,用户在使用第三方应用模块访问服务器时,如:登录、获取视频资源、修改个人信息等,会触发生成对应用服务器的访问请求,并向应用服务器发送该访问请求。
访问请求中包含第三方应用模块的应用标识、终端IP地址及附加信息等。
第三方应用模块除生成访问请求外,主要是完成访问请求的发送、票据请求的转发及签名票据的转发工作。
所述应用服务器,用于接收所述访问请求,响应于所述访问请求向所述终端发送所述票据请求;
应用服务器在所述访问请求中提取应用标识、终端IP地址及附加信息等,根据所述访问请求生成请求编号,将当前时刻作为票据请求时刻,基于所述应用标识、所述终端IP地址、所述附加信息、所述请求编号及所述票据请求时刻生成所述票据请求。
票据请求中包含的参数包括:
应用标识:必需参数,认证服务器可以根据该字段鉴别应用身份;
请求编号:必需参数,标识此次请求序号以防止重放攻击;
终端IP地址:必需参数,用于认证服务器比对票据中的IP地址和当前终端的终端IP地址,防止盗用;
当前时间:记录票据请求时间;
附加状态:应用提供的相关信息,例如,用户访问资源的范围。若认证请求提供了该字段,则该值将在票据中原值返回。
由于应用服务器不具有认证的能力,所以需要根据第三方应用模块的访问请求生成票据请求,以请求认证服务器进行第三方应用模块的身份认证,为了方便认证服务器进行身份认证,需要携带第三方应用模块及终端相关的参数。
所述终端,还用于接收所述票据请求,向所述认证服务器发送所述票据请求;
所述认证服务器,用于接收所述票据请求,根据所述票据请求进行所述第三方应用模块的应用身份认证,若认证通过,生成签名票据,向所述终端发送所述签名票据;
认证服务器可以在票据请求中需要的信息,基于提取的信息,对第三方应用模块进行身份认证,认证通过时,生成签名票据,将签名票据发送给认证应用模块。
所述终端,还用于接收所述签名票据,向所述应用服务器发送所述签名票据;
所述应用服务器,还用于对所述签名票据进行验证,在验证通过时向所述终端中的第三方应用模块返回所述应用资源。
本发明实施例能够在终端接收到用户输入的用于请求访问第三方应用模块的应用资源的触发操作时,向所述应用服务器发送访问请求,应用服务器可以响应于访问请求向终端发送所述票据请求,终端再将票据请求转发给认证服务器,认证服务器根据票据请求进行第三方应用模块的应用身份认证,若认证通过,生成签名票据,向终端发送签名票据,终端再将签名票据转发给应用服务器,应用服务器可以对签名票据进行验证,在验证通过时向终端中的第三方应用模块返回所述应用资源。
本发明实施例能够通过应用服务器、认证服务器及终端之间的交互协作,在终端中的第三方应用需要获取应用资源时,应用服务器可以生成票据请求,并通过终端发送给认证服务器,认证服务器对票据请求认证通过时,生成签名票据,再通过终端发送给应用服务器,应用服务器对签名票据验证通过时,向终端中的第三方应用返回应用资源,通过认证服务器对票据请求的认证和应用服务器对签名票据的验证实现第三方应用的身份认证,整个过程均从系统间进行,实现终端中的第三方应用模块可以自动登录对应的应用服务器,无需用户人工记录登录凭证信息,便于用户使用。
在本发明的又一实施例中,所述终端包括:认证应用模块和第三方应用模块;
所述第三方应用模块,用于在接收到用户输入的用于请求访问第三方应用模块的应用资源的触发操作时,向所述应用服务器发送访问请求;
所述第三方应用模块,还用于接收所述应用服务器返回的票据请求,向所述认证应用模块发送所述票据请求;
第三方应用模块可以通过iOS端的应用间跳转机制(URL Scheme)将票据请求发送给认证应用模块。
在本发明实施例中,可以使用iOS系统的URL Scheme机制将票据请求发送给认证应用模块,通过设置应用的URL Scheme地址以实现应用间的跳转和传参。将应用自身绑定到一个URL Scheme地址,浏览器或其他应用根据该地址启动本应用。
但是多个应用可注册相同的URL Scheme地址,系统会响应先安装的应用,后安装应用的URL Scheme被覆盖,因此无法确定消息接收者的真实身份,票据信息可能被恶意应用拦截。为了保证数据信息在应用间的安全传输,本系统的票据在服务端生成并加密,密钥是认证应用模块向认证服务器注册时获取。移动端应用仅负责传递,不参与运算,即使截获数据也无法解密。
所述认证应用模块,用于接收所述票据请求,向所述认证服务器发送所述票据请求;
认证应用模块主要是完成票据请求的转发和签名票据的转发工作,在接收到票据请求后,将票据请求转发给认证服务器,在接收到认证服务器发送的签名票据后,将签名票据转发给第三方应用模块。
所述认证应用模块,还用于接收所述认证服务器发送的签名票据,向所述第三方应用模块发送所述签名票据;
所述第三方应用模块,还用于接收所述认证应用模块发送的签名票据,向所述应用服务器发送所述签名票据。
本发明实施例能够在终端中的第三方应用需要获取应用资源时,应用服务器可以生成票据请求,并通过终端中的认证应用发送给认证服务器,认证服务器对票据请求认证通过时,生成签名票据,再通过终端中的认证应用及第三方应用发送给应用服务器,应用服务器对签名票据验证通过时,向终端中的第三方应用返回应用资源,通过认证服务器对票据请求的认证和应用服务器对签名票据的验证实现第三方应用的身份认证,整个过程均从系统间进行,实现终端中的第三方应用模块可以自动登录对应的应用服务器,无需用户人工记录登录凭证信息,便于用户使用。
为了便于理解,如图2所示,本发明实施例还提供了一种身份认证系统内的认证应用模块111、第三方应用模块112、认证服务器12和应用服务器13的交互原理示意图,认证应用模块111、第三方应用模块112、认证服务器12和应用服务器13的交互原理如下:
终端中的第三方应用模块,在接收到用户输入的用于请求访问第三方应用模块的应用资源的触发操作时,向所述应用服务器发送访问请求;
应用服务器,接收所述访问请求,响应于所述访问请求向所述终端中的第三方应用模块发送所述票据请求;
终端中的第三方应用模块,接收所述应用服务器返回的票据请求,向所述认证应用模块发送所述票据请求;
终端中的认证应用模块,接收所述票据请求,向所述认证服务器发送所述票据请求;
认证服务器,接收所述票据请求,根据所述票据请求进行所述第三方应用模块的应用身份认证,若认证通过,生成签名票据,向所述终端中的认证应用模块发送所述签名票据;
认证应用模块,接收所述认证服务器发送的签名票据,向所述第三方应用模块发送所述签名票据;
第三方应用模块,接收所述认证应用模块发送的签名票据,向所述应用服务器发送所述签名票据;
应用服务器,对所述签名票据进行验证,在验证通过时向所述终端中的第三方应用模块返回所述应用资源。
基于前述实施例,在实际应用中,如果A用户非法使用B用户的终端登录终端上的第三方应用模块,若第三方应用模块涉及到敏感信息,而B用户并不知晓的话,可能会给B用户带来损失,为此,在本发明的又一实施例中,所述认证应用模块,还用于在接收到所述票据请求时,确定所述用户是否已登录所述认证服务器,若所述用户已登录所述认证服务器,向所述认证服务器发送所述票据请求。
本发明实施例仅在用户已登录认证服务器时,才将票据请求发送给认证服务器,通过用户是否登录这一对用户身份的验证过程,进一步保证身份认证过程的安全性。
目前,在移动端,单点登录的OAuth协议为第三方应用模块提供了一种通过访问令牌访问用户受保护资源的方法,是一种标准的授权协议。由于OAuth协议本身服务于授权而非认证,且存在平台差异性,在移动端实现基于OAuth的身份认证依赖于开发人员对认证与授权的理解。很多应用开发者在移动端实践OAuth协议过程中,直接在应用中存储与身份提供商(Identity Provider,简称IdP)共享的密钥,并集成加解密功能,在移动端完成安全验证;这种做法是相当危险的,因为恶意用户可通过逆向工程窃取密钥、计算方法和计算参数以解密隐私信息,造成信息泄漏,进一步伪造请求,构成伪装攻击;同时,开发者可能误用密码学而引入更多安全隐患。为此,在本发明的又一实施例中,所述认证服务器,对所述认证票据进行加密,利用预设的签名密钥对加密后的认证票据进行签名,得到签名票据。
在本发明实施例中,认证服务器可以在所述票据请求中提取用于进行应用身份验证的字段及字段值,按照预设的与各字段对应的验证规则对字段值进行验证,若各字段值均验证通过,则确定应用身份验证通过。
示例性的,认证服务器在所述票据请求中提取所述应用标识、所述终端IP地址及所述请求编号,根据所述票据请求生成票据编号,根据当前时刻确定所述认证票据的生效时间及失效时间,获取预设的与所述第三方应用模块对应的用户身份鉴别方式,对第三方应用模块进行身份认证,若认证通过,基于所述应用标识、所述终端IP地址、所述请求编号、所述票据编号、所述生效时间、所述失效时间及所述用户身份鉴别方式生成认证票据。
认证票据中包含的参数包括:
应用标识:必需参数,标识票据签发的对象;
请求编号:必需参数,应用服务器可以根据该字段判断是否发出过票据请求;
票据编号:必需参数,标识此次签发的票据,应用服务器可以通过检查该字段判断此票据是否已被使用,防止重放攻击;
应用的网络地址:必需参数,应用服务器需要验证该网络地址,是否为当前正在使用的地址;
终端IP地址:必需参数,与票据请求中的IP参数相同,应用服务器可以根据该字段判断票据申请者与接收者是否一致;
生效时间:必需参数,应用服务器可以根据该字段验证该票据是否在有效期内,与生效时间一同决定票据的有效期;
失效时间:必需参数,应用服务器可以根据该字段验证该票据是否在有效期内,与生效时间一同决定票据的有效期;
用户身份鉴别方式:必需参数,用户名/口令鉴别方式,不同第三方应用模块有不同的用户身份鉴别方式。
在生成认证票据后,可以对认证票据进行加密,并利用预设的签名密钥对加密后的认证票据进行签名,得到签名票据。
认证服务器可以利用所述认证应用模块的预设应用密钥对所述认证票据进行加密,使用预设私钥利用预设的签名密钥对加密后的认证票据进行签名,得到所述签名票据。
在本发明实施例中,应用密钥用于对认证票据进行对称加密,能够保障认证票据的机密性,应用密钥是认证服务器对认证票据加密传输时使用的对称密钥,是认证应用模块事先向统一认证中心注册时,由统一认证中心分配所得。为了保证应用密钥的安全性,可定期更新该密钥。
由于本发明实施例中票据签发者(认证服务器)是唯一的,因此签发者身份标识设为默认值。对认证票据进行加密时,可以使用应用密钥以对称密码算法SM4加密。
签名密钥:用于对认证票据进行签名,能够保障认证票据的完整性。示例性的,签名密钥可以是SM2非对称加密算法的密钥,签名密钥包括:公钥和私钥,在认证服务器端,可以利用签名密钥的私钥对认证票据进行签名,在应用服务器端,可以利用公钥进行签名票据的验证。
SM2算法用于统一身份认证系统对票据进行签名和验签,SM4用于使用应用密钥对票据进行加解密的操作。SM2算法和SM4算法的参数指标如下表1:
表1
本发明实施例通过对第三方应用模块进行应用身份认证,若认证通过,生成签名票据,对所述认证票据进行加密,利用预设的签名密钥对加密后的认证票据进行签名,得到签名票据,无需终端存储应用密钥及签名票据,可以避免应用密钥和签名密钥被非法窃取,保证身份认证过程的安全性。
基于前述实施例,在实际应用中,如果A用户非法使用B用户的终端登录终端上的第三方应用模块,若第三方应用模块涉及到敏感信息,而B用户并不知晓的话,可能会给B用户带来损失,为此,在本发明的又一实施例中,所述认证应用模块,还用于若所述用户未登录所述认证服务器,发出登录提示;接收用户输入的身份凭证信息,向所述认证服务器发送所述身份凭证信息;
本发明实施例中,身份凭证信息可以包括:用户登录认证应用模块时使用的用户名和口令,用户名如:登录账号、手机号码和邮箱等,口令可以指密码、短信验证码或者邮箱验证码等。
所述认证服务器,还用于接收所述认证应用模块发送的身份凭证信息,利用所述身份凭证信息对所述用户的用户身份进行认证,若用户身份认证通过,根据所述票据请求对所述认证应用模块的应用身份进行验证,若应用身份验证通过,检查所述用户是否授权所述第三方应用模块访问相应的应用资源,若已授权,则根据所述票据请求进行第三方应用模块的应用身份认证,若认证通过,生成认证票据。
在本发明实施例中,认证服务器可以在所述身份凭证信息中提取用户名和用户口令,在预设注册用户集合中查询所述用户名,若未查询到所述用户名,确定对用户身份认证失败;若查询到所述用户名,对所述用户口令进行哈希运算,得到哈希值,将所述哈希值与预先设置的与所述用户名对应的预设哈希值进行对比,若二者相同,确定用户身份认证通过;若二者不同,确定用户身份认证失败。
示例性的,对所述用户口令进行哈希运算可以将将用户口令加盐求哈希值,哈希算法采用国产密码算法SM3,SM3用于计算用户口令的杂凑值,SM3算法的参数指标可以如下表2所示:
表2
本发明实施例中,认证服务器在预设授权信息集合中查询与所述第三方应用模块对应的授权信息,所述预设授权信息集合中的授权信息是所述第三方应用模块通过跳转机制向所述认证应用模块发送所述票据请求时所述认证应用模块获取的,若查询到与所述第三方应用模块对应的授权信息,确定用户已授权所述第三方应用模块访问相应的应用资源。示例性的,在第三方应用模块通过跳转机制向所述认证应用模块发送所述票据请求时,认证应用模块弹出授权提示,并展示授权按钮,用户点击授权按钮,认证应用模块即可获取到授权信息。
本发明实施例在用户未登录认证服务器时,可以提示用户登录,并进行用户身份进行认证,认证通过时,再检查用户是否授权第三方应用模块访问相应的应用资源,若已授权,才根据所述票据请求进行第三方应用模块的应用身份认证,若认证通过,生成认证票据,通过登录验证、授权验证,进一步保证身份认证过程的安全性。
为了便于理解,如图3所示,本发明实施例还提供一种身份认证系统内的认证应用模块111、第三方应用模块112、认证服务器12和应用服务器13的交互原理示意图,认证应用模块111、第三方应用模块112、认证服务器12和应用服务器13的交互原理如下:
终端中的第三方应用模块,在接收到用户输入的用于请求访问第三方应用模块的应用资源的触发操作时,向所述应用服务器发送访问请求;
应用服务器,接收所述访问请求,响应于所述访问请求向所述终端中的第三方应用模块发送所述票据请求;
终端中的第三方应用模块,接收所述应用服务器返回的票据请求,向所述认证应用模块发送所述票据请求;
终端中的认证应用模块,在所述用户未登录所述认证服务器时,发出登录提示,以使用户输入身份凭证信息,接收用户输入的身份凭证信息,向所述认证服务器发送所述身份凭证信息;
终端中的认证应用模块,接收所述票据请求,向所述认证服务器发送所述票据请求;
认证服务器,还用于接收认证应用模块发送的身份凭证信息,利用身份凭证信息对用户的用户身份进行认证,若用户身份认证通过,接收所述票据请求,根据所述票据请求对所述认证应用模块的应用身份进行验证,若应用身份验证通过,检查所述用户是否授权所述第三方应用模块访问相应的应用资源,若已授权,根据所述票据请求进行所述第三方应用模块的应用身份认证,若认证通过,生成签名票据,向所述终端中的认证应用模块发送所述签名票据;
认证应用模块,接收所述认证服务器发送的签名票据,向所述第三方应用模块发送所述签名票据;
第三方应用模块,接收所述认证应用模块发送的签名票据,向所述应用服务器发送所述签名票据;
应用服务器,对所述签名票据进行验证,在验证通过时向所述终端中的第三方应用模块返回所述应用资源。
在本发明的又一实施例中,所述应用服务器,还用于在接收到所述签名票据时,利用预设公钥和所述签名票据对所述签名票据的签名进行验证,若签名验证通过,利用应用密钥对所述签名票据进行解密,得到所述票据内容,验证所述票据内容是否合法,若所述票据内容合法,向所述第三方应用模块返回应用资源。
在本发明实施例中,应用服务器可以通过验证所述票据内容中的票据编号是否有重复、当前时刻是否位于有效时间段内及状态附加值是否和所述访问请求中的状态值相同中的一种或多种方式验证所述票据内容是否合法。
本发明实施例应用服务器通过验证签名票据,在票据内容合法时,才向第三方发送相应的应用资源,保证身份认证的安全性。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种身份认证系统,其特征在于,包括:终端、认证服务器和应用服务器;
所述终端,用于在接收到用户输入的用于请求访问第三方应用模块的应用资源的触发操作时,向所述应用服务器发送访问请求;
所述终端包括:认证应用模块和第三方应用模块;
所述第三方应用模块,用于在接收到用户输入的用于请求访问第三方应用模块的应用资源的触发操作时,向所述应用服务器发送访问请求;
所述第三方应用模块,还用于接收所述应用服务器返回的票据请求,向所述认证应用模块发送所述票据请求,所述第三方应用模块通过应用间跳转机制(URL Scheme)将所述票据请求发送给认证应用模块;
所述认证应用模块,用于接收所述票据请求,向所述认证服务器发送所述票据请求,所述认证应用模块用于获取用户的身份凭证信息并向所述认证服务器发送,进行票据请求的转发和签名票据的转发;
所述认证应用模块,还用于接收所述认证服务器发送的签名票据,向所述第三方应用模块发送所述签名票据;
所述第三方应用模块,还用于接收所述认证应用模块发送的签名票据,向所述应用服务器发送所述签名票据;
所述应用服务器,用于接收所述访问请求,并响应于所述访问请求向所述终端发送票据请求,所述票据请求是基于所述第三方应用模块及所述终端的相关参数生成的;
所述终端,还用于接收所述票据请求,并向所述认证服务器发送所述票据请求;
所述认证服务器,用于接收所述票据请求,利用所述身份凭证信息对所述用户的用户身份进行认证,若用户身份认证通过,并根据所述票据请求进行所述第三方应用模块的应用身份认证,若认证通过,生成签名票据,并向所述终端发送所述签名票据;
所述终端,还用于接收所述签名票据,并向所述应用服务器发送所述签名票据;
所述应用服务器,还用于对所述签名票据进行验证,并在验证通过时向所述终端中的第三方应用模块返回所述应用资源。
2.根据权利要求1所述的身份认证系统,其特征在于,所述认证应用模块,还用于在接收到所述票据请求时,确定所述用户是否已登录所述认证服务器,若所述用户已登录所述认证服务器,向所述认证服务器发送所述票据请求。
3.根据权利要求2所述的身份认证系统,其特征在于,所述认证服务器,还用于在接收到所述票据请求时,根据所述票据请求进行第三方应用模块的应用身份认证,若认证通过,生成认证票据,对所述认证票据进行加密,利用预设的签名密钥对加密后的认证票据进行签名,得到签名票据。
4.根据权利要求2所述的身份认证系统,其特征在于,所述认证应用模块,还用于若所述用户未登录所述认证服务器,发出登录提示;接收用户输入的身份凭证信息,向所述认证服务器发送所述身份凭证信息;
所述认证服务器,还用于接收所述认证应用模块发送的身份凭证信息,利用所述身份凭证信息对所述用户的用户身份进行认证,若用户身份认证通过,根据所述票据请求对所述认证应用模块的应用身份进行验证,若应用身份验证通过,检查所述用户是否授权所述第三方应用模块访问相应的应用资源,若已授权,则根据所述票据请求进行第三方应用模块的应用身份认证,若认证通过,生成认证票据。
5.根据权利要求4所述的身份认证系统,其特征在于,所述认证服务器,还用于在所述身份凭证信息中提取用户名和用户口令,在预设注册用户集合中查询所述用户名,若未查询到所述用户名,确定对用户身份认证失败;若查询到所述用户名,对所述用户口令进行哈希运算,得到哈希值,将所述哈希值与预先设置的与所述用户名对应的预设哈希值进行对比,若二者相同,确定用户身份认证通过;若二者不同,确定用户身份认证失败。
6.根据权利要求4所述的身份认证系统,其特征在于,所述认证服务器,还用于在所述票据请求中提取用于进行应用身份验证的字段及字段值,按照预设的与各字段对应的验证规则对字段值进行验证,若各字段值均验证通过,则确定应用身份验证通过。
7.根据权利要求4所述的身份认证系统,其特征在于,所述认证服务器,还用于在预设授权信息集合中查询与所述第三方应用模块对应的授权信息,所述预设授权信息集合中的授权信息是所述第三方应用模块通过跳转机制向所述认证应用模块发送所述票据请求时所述认证应用模块获取的,若查询到与所述第三方应用模块对应的授权信息,确定用户已授权所述第三方应用模块访问相应的应用资源。
8.根据权利要求3所述的身份认证系统,其特征在于,所述认证服务器,还用于利用所述认证应用模块的预设应用密钥对所述认证票据进行加密,使用预设私钥利用预设的签名密钥对加密后的认证票据进行签名,得到所述签名票据。
9.根据权利要求1所述的身份认证系统,其特征在于,所述应用服务器,还用于在接收到所述签名票据时,利用预设公钥和所述签名票据对所述签名票据的签名进行验证,若签名验证通过,利用应用密钥对所述签名票据进行解密,得到票据内容,验证所述票据内容是否合法,若所述票据内容合法,向所述第三方应用模块返回应用资源。
10.根据权利要求9所述的身份认证系统,其特征在于,所述应用服务器,还用于通过验证所述票据内容中的票据编号是否有重复、当前时刻是否位于有效时间段内及状态附加值是否和所述访问请求中的状态值相同中的一种或多种方式验证所述票据内容是否合法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010742981.2A CN111901346B (zh) | 2020-07-29 | 2020-07-29 | 一种身份认证系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010742981.2A CN111901346B (zh) | 2020-07-29 | 2020-07-29 | 一种身份认证系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111901346A CN111901346A (zh) | 2020-11-06 |
CN111901346B true CN111901346B (zh) | 2022-10-25 |
Family
ID=73182418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010742981.2A Active CN111901346B (zh) | 2020-07-29 | 2020-07-29 | 一种身份认证系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111901346B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615004A (zh) * | 2020-12-21 | 2022-06-10 | 亚信科技(中国)有限公司 | H5.0信息访问方法、装置、电子设备及计算机可读存储介质 |
CN113676468B (zh) * | 2021-08-17 | 2023-06-06 | 北京计算机技术及应用研究所 | 一种基于消息验证技术的三方增强认证系统设计方法 |
CN115189919A (zh) * | 2022-06-17 | 2022-10-14 | 浪潮软件股份有限公司 | 基于国密算法的平台与入住应用间信息共享的方法及系统 |
CN117675254A (zh) * | 2022-08-31 | 2024-03-08 | 华为技术有限公司 | 一种设备认证方法和相关设备 |
CN115189975B (zh) * | 2022-09-14 | 2022-12-27 | 中化现代农业有限公司 | 登录方法、装置、电子设备和存储介质 |
CN115473746B (zh) * | 2022-11-02 | 2023-03-24 | 国家工业信息安全发展研究中心 | 一种工业互联网日志数据采集方法及系统 |
CN116032556B (zh) * | 2022-12-13 | 2024-08-16 | 支付宝(杭州)信息技术有限公司 | 小程序应用的密钥协商方法及装置 |
CN116155631B (zh) * | 2023-04-21 | 2023-07-28 | 四川中电启明星信息技术有限公司 | 一种企业级的正反向级联认证方法及系统 |
CN116647413B (zh) * | 2023-07-26 | 2023-10-13 | 深圳竹云科技股份有限公司 | 应用登录方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107257334A (zh) * | 2017-06-08 | 2017-10-17 | 中国电子科技集团公司第三十二研究所 | 用于Hadoop集群的身份认证方法 |
CN109086596A (zh) * | 2018-08-08 | 2018-12-25 | 网易(杭州)网络有限公司 | 应用程序的认证方法、装置及系统 |
CN111406410A (zh) * | 2018-11-02 | 2020-07-10 | 谷歌有限责任公司 | 用于提供多部分持续内容的系统和方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9736271B2 (en) * | 2012-12-21 | 2017-08-15 | Akamai Technologies, Inc. | Scalable content delivery network request handling mechanism with usage-based billing |
US9628467B2 (en) * | 2013-03-15 | 2017-04-18 | Aerohive Networks, Inc. | Wireless device authentication and service access |
CN105577665B (zh) * | 2015-12-24 | 2019-06-18 | 西安电子科技大学 | 一种云环境下的身份和访问控制管理系统及方法 |
CN106921640A (zh) * | 2015-12-28 | 2017-07-04 | 航天信息股份有限公司 | 身份认证方法、认证装置及认证系统 |
CN107342971A (zh) * | 2016-05-03 | 2017-11-10 | 北京京东尚科信息技术有限公司 | 服务调用方法和装置 |
CN106973041B (zh) * | 2017-03-02 | 2019-10-08 | 飞天诚信科技股份有限公司 | 一种颁发身份认证凭据的方法、系统及认证服务器 |
CN107995185A (zh) * | 2017-11-28 | 2018-05-04 | 北京信安世纪科技有限公司 | 一种认证方法及装置 |
CN108075880A (zh) * | 2017-11-28 | 2018-05-25 | 珠海金山网络游戏科技有限公司 | 一种网络游戏服务器登录安全系统及方法 |
KR102254499B1 (ko) * | 2018-03-30 | 2021-05-21 | 주식회사 코인플러그 | 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버 |
-
2020
- 2020-07-29 CN CN202010742981.2A patent/CN111901346B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107257334A (zh) * | 2017-06-08 | 2017-10-17 | 中国电子科技集团公司第三十二研究所 | 用于Hadoop集群的身份认证方法 |
CN109086596A (zh) * | 2018-08-08 | 2018-12-25 | 网易(杭州)网络有限公司 | 应用程序的认证方法、装置及系统 |
CN111406410A (zh) * | 2018-11-02 | 2020-07-10 | 谷歌有限责任公司 | 用于提供多部分持续内容的系统和方法 |
Non-Patent Citations (2)
Title |
---|
"Single Sign On architecture with dynamic tokens";F. Satoh and T. Itoh;《004 International Symposium on Applications and the Internet. Proceedings》;20040824;全文 * |
"基于票据的跨域单点登录";王国伟等;《计算机应用》;20120601;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111901346A (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111901346B (zh) | 一种身份认证系统 | |
US6993652B2 (en) | Method and system for providing client privacy when requesting content from a public server | |
US8219808B2 (en) | Session-based public key infrastructure | |
CN102201915B (zh) | 一种基于单点登录的终端认证方法和装置 | |
US6732270B1 (en) | Method to authenticate a network access server to an authentication server | |
WO2016177052A1 (zh) | 一种用户认证方法和装置 | |
US20160191486A1 (en) | Transparent client authentication | |
CN103220303B (zh) | 服务器的登录方法及服务器、认证设备 | |
CN111800378B (zh) | 一种登录认证方法、装置、系统和存储介质 | |
CN104283886A (zh) | 一种基于智能终端本地认证的web安全访问的实现方法 | |
KR20210095093A (ko) | 탈중앙화 아이디 앱을 이용하여 인증 서비스를 제공하는 방법 및 이를 이용한 탈중앙화 아이디 인증 서버 | |
CN109672675A (zh) | 一种基于OAuth2.0的密码服务中间件的WEB认证方法 | |
KR101631635B1 (ko) | 아이덴티티 인증을 위한 방법, 디바이스 및 시스템 | |
JP2001186122A (ja) | 認証システム及び認証方法 | |
CN113312664A (zh) | 用户数据授权方法及用户数据授权系统 | |
WO2015158228A1 (zh) | 一种服务器、用户设备以及用户设备与服务器的交互方法 | |
CN114513339A (zh) | 一种安全认证方法、系统及装置 | |
US20230299973A1 (en) | Service registration method and device | |
RU2698424C1 (ru) | Способ управления авторизацией | |
Deeptha et al. | Extending OpenID connect towards mission critical applications | |
KR101962349B1 (ko) | 인증서 기반 통합 인증 방법 | |
Chen et al. | SSL/TLS session-aware user authentication using a gaa bootstrapped key | |
JP4219076B2 (ja) | 電子文書管理方法、電子文書管理システム及び記録媒体 | |
JP2014081887A (ja) | セキュアシングルサインオン方式およびプログラム | |
CN117792802B (zh) | 基于多系统交互的身份验证与应用访问控制方法及系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |