CN104717647B - 业务能力鉴权方法、设备及系统 - Google Patents
业务能力鉴权方法、设备及系统 Download PDFInfo
- Publication number
- CN104717647B CN104717647B CN201310681996.2A CN201310681996A CN104717647B CN 104717647 B CN104717647 B CN 104717647B CN 201310681996 A CN201310681996 A CN 201310681996A CN 104717647 B CN104717647 B CN 104717647B
- Authority
- CN
- China
- Prior art keywords
- authentication
- professional ability
- ability
- message
- professional
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种业务能力鉴权方法、设备及系统,其中,方法包括:调用业务能力客户端SDK封装业务能力请求消息,其中,业务能力请求消息包括消息头和消息体,消息头中携带有业务能力标识和鉴权参数;通过超文本传输协议将业务能力请求消息发送给业务能力网关,以使业务能力网关读取消息头,根据消息头中的鉴权参数进行鉴权。本发明实施例可以降低业务能力网关的鉴权开销,提升鉴权效率。
Description
技术领域
本发明涉及通信业务能力开放领域,尤其涉及一种业务能力鉴权方法、设备及系统。
背景技术
业务能力网关将通信网络的各种业务能力(如短信、彩信、定位)开放给互联网的应用平台,应用平台中的应用向业务能力网关发送基于超文本传输协议(Hypertexttransfer protocol,HTTP)的能力请求消息,业务能力网关对能力请求消息进行鉴权,将通过鉴权的能力请求消息转发给实际提供业务能力的业务能力引擎处理。
所有通过业务能力网关转发给能力引擎的能力请求消息都需要业务能力网关进行鉴权,不同业务能力的鉴权方式可能存在差异。一般的业务能力只需要鉴权应用与能力之间的订购关系,而某些业务能力还需要对主叫号码或被叫号码的合法性进行鉴权,如短信、彩信能力需鉴权主叫号码以确定短信/彩信端口的合法性,定位能力需鉴权被叫号码以确定被定位的号码是否允许当前应用定位等等。
在实现本发明的过程中,发明人发现上述方法至少存在以下问题:由于现有的HTTP协议层的认证机制只能支持帐号/密码方式的简单认证,无法满足业务能力网关多样化的鉴权要求,因此业务能力网关需要在通信层接收完能力请求消息之后,在业务层再针对具体的业务能力进行业务能力鉴权处理。例如,支持ParlayX的业务能力网关在通信层接收完整个HTTP请求消息之后,在业务层解释HTTP体的简单对象访问协议(Simple ObjectAccess Protocol,SOAP)消息的鉴权参数,然后针对不同的业务能力进行相应的业务能力鉴权处理。当业务能力网关接收大量的非法业务能力请求消息很多或者接收的非法业务能力请求消息很大(彩信、传真等能力的请求消息大小可超过100KB)时,非法业务能力请求消息的接收和解释就会消耗掉业务能力网关的大量中央处理器(Central Processing Unit,CPU)和带宽资源,严重影响正常的业务能力请求消息的业务能力鉴权处理和转发。
发明内容
本发明实施例提供一种业务能力鉴权方法、设备及系统,以降低业务能力网关的鉴权开销,提升鉴权效率,同时保证业务鉴权的灵活性。
本发明实施例提供的一种业务能力鉴权方法,包括:
调用业务能力客户端SDK封装业务能力请求消息,其中,所述业务能力请求消息包括消息头和消息体,所述消息头中携带有业务能力标识和鉴权参数;
通过超文本传输协议将所述业务能力请求消息发送给业务能力网关,以使所述业务能力网关读取所述消息头,根据所述消息头中的所述鉴权参数进行鉴权。
进一步地,所述调用业务能力客户端SDK封装业务能力请求消息之前,所述方法还包括:
根据业务能力鉴权规则配置表中的鉴权参数对能力应用程序编程接口API定义文件中的请求参数的属性进行修改,得到扩展的能力API定义文件,根据所述扩展的能力API定义文件生成所述业务能力客户端代码。
本发明实施例提供的一种业务能力鉴权方法,包括:
读取应用平台发送的业务能力请求消息的消息头,其中,所述业务能力请求消息包括所述消息头和消息体,所述消息头中携带有业务能力标识和鉴权参数;
根据所述消息头中的鉴权参数进行鉴权;
若鉴权成功,则读取所述业务能力请求消息的所述消息体,对所述业务能力请求消息进行解析,将所述业务能力请求消息重新封装后发送给业务能力引擎进行处理。
进一步地,所述根据所述消息头中的鉴权参数进行鉴权,具体为:
获取所述业务能力标识对应的鉴权规则,从所述消息头获取所述鉴权规则所需的鉴权参数,根据所述鉴权规则对获取到的鉴权参数进行鉴权。
进一步地,所述鉴权规则包括以下至少一种:
用户和能力绑定关系鉴权、应用和能力绑定关系鉴权、主叫号码合法性鉴权和被叫号码合法性鉴权。
进一步地,所述鉴权规则采用布尔逻辑表达式表述。
本发明实施例提供的一种应用平台,包括业务能力客户端软件工具套件SDK,所述业务能力客户端SDK包括:
消息封装模块,用于调用业务能力客户端SDK封装业务能力请求消息,其中,所述业务能力请求消息包括消息头和消息体,所述消息头中携带有业务能力标识和鉴权参数;
消息传输模块,用于通过超文本传输协议将所述业务能力请求消息发送给业务能力网关,以使所述业务能力网关读取所述消息头,根据所述消息头中的所述鉴权参数进行鉴权。
本发明实施例提供的一种业务能力网关,包括:
第一处理模块,用于读取应用平台发送的业务能力请求消息的消息头,其中,所述业务能力请求消息包括所述消息头和消息体,所述消息头中携带有业务能力标识和鉴权参数;
鉴权模块,用于根据所述消息头中的鉴权参数进行鉴权;
第二处理模块,用于若鉴权成功,则读取所述业务能力请求消息的所述消息体,对所述业务能力请求消息进行解析,将所述业务能力请求消息重新封装后发送给业务能力引擎进行处理。
进一步地,所述鉴权模块具体用于获取所述业务能力标识对应的鉴权规则,从所述消息头获取所述鉴权规则所需的鉴权参数,根据所述鉴权规则对获取到的鉴权参数进行鉴权。
进一步地,所述鉴权规则包括以下至少一种:
用户和能力绑定关系鉴权、应用和能力绑定关系鉴权、主叫号码合法性鉴权和被叫号码合法性鉴权。
进一步地,所述鉴权规则采用布尔逻辑表达式表述。
进一步地,所述业务能力网关还包括业务能力接口管理平台,所述业务能力接口管理平台包括:
鉴权规则管理模块,用于管理业务能力网关所有业务能力的鉴权规则,将鉴权规则保存在业务能力鉴权规则配置表中,实现各能力的鉴权规则的增加、修改、删除和查询;以及当业务能力鉴权规则配置表中的鉴权规则发生改变时,通知能力API文件管理模块修改对应的能力API定义文件中的请求参数属性,并通知业务能力客户端SDK生成模块重新生成业务能力客户端SDK;
能力API文件管理模块,用于管理业务能力网关的API定义文件,以及鉴权规则管理模块的通知,根据业务能力鉴权规则配置表中的鉴权参数对能力API定义文件中的请求参数的属性进行修改,得到扩展的能力API定义文件;
业务能力客户端SDK生成模块,用于根据所述扩展的能力API定义文件生成所述业务能力客户端代码,并编译成业务能力客户端SDK。
本发明实施例提供的一种业务能力鉴权系统,包括:
本发明实施例提供的应用平台,以及本发明实施例提供的业务能力网关。
基于本发明上述实施例提供的业务能力鉴权方法、设备及系统,与现有技术相比,由于鉴权参数携带在业务能力请求消息的消息头中,业务能力网关只需要读取业务能力请求消息的消息头的鉴权参数就能进行业务能力鉴权,对于鉴权失败的业务能力请求消息不需要再读取和解析其消息体,从而降低了业务能力网关的鉴权开销,提升了鉴权效率。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1为本发明业务能力鉴权方法一个实施例的流程图;
图2为本发明业务能力鉴权方法另一个实施例的流程图;
图3为本发明业务能力鉴权方法另一个实施例的流程图;
图4为本发明应用平台一个实施例的结构示意图;
图5为本发明业务能力网关一个实施例的结构示意图;
图6为本发明业务能力网关另一个实施例的结构示意图;
图7为本发明业务能力鉴权系统一个实施例的结构示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1为本发明业务能力鉴权方法一个实施例的流程图。如图1所示,该实施例的业务能力鉴权方法包括:
步骤A101,封装业务能力请求消息,其中,业务能力请求消息包括消息头和消息体,消息头中携带有业务能力标识和鉴权参数;
步骤A102,通过超文本传输协议将业务能力请求消息发送给业务能力网关,以使业务能力网关读取消息头,根据消息头中的鉴权参数进行鉴权。
具体地,本实施例的方法可以通过业务能力鉴权装置来执行,该业务能力鉴权装置具体可以集成在应用平台中。应用平台中运行有各种应用,当某个应用需要业务能力引擎为其提供某种业务能力时,该应用调用业务能力客户端SDK封装业务能力请求消息。业务能力客户端SDK具体用以实现业务能力请求消息封装和HTTP通信。
业务能力请求消息为基于HTTP协议的消息类型,包括消息头和消息体,消息头是指标准的HTTP协议头数据,如User-Agent、Content-Type等参数,消息体可以是SOAP消息,SOAP消息是一种特殊的XML(Extensible Markup Language,可扩展标记语言)、普通XML、JSON(JavaScript Object Notation,JavaScript对象的符号)等格式封装的内容,消息头中携带有业务能力标识和鉴权参数,由于用于鉴权的鉴权参数已经提取到消息头中,在消息体中的的鉴权参数只有参数名,没有参数值。业务能力标识用以唯一标识一种业务能力,如短息、等位等。消息头中具体还包括API标识,API标识用于唯一标识业务能力的一个API接口,如获取短信、获取回执等API接口。具体可以在消息头的URL(Uniform ResourceLocator,统一资源定位符)中携带该业务能力标识和API接口,实现方式可以有以下两种:
一种实现方式为:将业务能力标识和API标识放在URLPath中,例如:
http://<domain>:<port>/<能力标识>/<API标识>
另一种实现方式为:将业务能力标识和API标识放在URL参数中,例如:
http://<domain>:<port>/<path>?service_id=<业务能力标识>&api_id=API_ID=<API标识>
应用平台通过调用业务能力客户端软件工具套件(SDK)将业务能力请求消息通过HTTP协议发送给业务能力网关。业务能力网关提供了基于WebService的业务能力API,该业务能力请求消息具体为WebService请求消息。业务能力网关首先读取业务能力请求消息的消息头,对该消息头进行解析,根据消息头中的鉴权参数进行鉴权处理,如果鉴权失败,则不对该业务能力请求消息的消息体进行读取和解析,只有鉴权成功,才读取消息体,并将该业务能力请求消息重新封装后发送给业务能力引擎。业务能力引擎进行相应处理,将处理结果返回给业务能力网关,业务能力网关将处理结果转换成WebService应答消息返回给应用平台的应用程序。
本实施例提供的业务能力鉴权方法,由于鉴权参数携带在业务能力请求消息的消息头中,业务能力网关只需要读取业务能力请求消息的消息头的鉴权参数就能进行业务能力鉴权,对于鉴权失败的业务能力请求消息不需要再读取和解析其消息体,从而降低了业务能力网关的鉴权开销,提升了鉴权效率。
图2为本发明业务能力鉴权方法另一个实施例的流程图。如图2所示,在本实施例中,步骤A101,调用业务能力客户端SDK封装业务能力请求消息之前,本发明实施例的方法还可以包括:
步骤A103,根据业务能力鉴权规则配置表中的鉴权参数对能力应用程序编程接口(API)定义文件中的请求参数的属性进行修改,得到扩展的能力API定义文件,根据扩展的能力API定义文件生成业务能力客户端代码,并由该业务能力客户端代码编译成业务能力客户端SDK。
示例性地,本发明实施例中的业务能力客户端代码可以是Java、C++、C#、PHP等,编译的SDK可以相应包括Java SDK、C++SDK、C#SDK、PHP SDK等。
具体地,可以预先设置业务能力鉴权规则,业务能力鉴权规则可以采用布尔逻辑表达式表述,它由常量、鉴权参数、函数和布尔操作(AND、OR、NOT)和括号构成。业务能力鉴权规则包括以下至少一种:用户和能力绑定关系鉴权、应用和能力绑定关系鉴权、主叫号码合法性鉴权和被叫号码合法性鉴权。
例如:对应用和能力绑定关系的鉴权规则如下:
CheckAppSecret(AppID,AppSecret)AND CheckCapBinding(CapID,“AppID”,AppID)
其中CapID(业务能力标识)、AppID(应用标识)、AppSecret(应用密钥)均为鉴权参数,CheckAppSecret函数用于检查输入的AppSecret是否为输入的AppID的合法密钥,CheckCapBinding用于检查业务能力标识是否与“AppID”属性值(即应用标识)存在绑定关系。
业务能力鉴权规则可以嵌套函数,假设要求应用发起的业务能力请求消息的所有接收号码必须以189开头,且接收号码号码之间用’|’分隔,被叫号码合法性鉴权规则可以用以下表达式描述:
CheckAcceptableAttributeList(AppID,ToList(Receivers,’|’),“189*”)
其中Receivers为需鉴权的接收号码字符串(可包含多个号码),toList函数将字符串用指定的分隔符(‘|’)分隔成字符串列表,“189*”为正则表达式,用于匹配以189开头的字符串,CheckAcceptableAttributeList函数用于判断指定的应用的一组属性值是否满足指定的格式。
可以为每个业务能力设置一个或多个业务鉴权规则,多个业务能力鉴权规则是“与”的关系,即所有业务能力鉴权规则均满足,鉴权才能通过。
扫描业务能力鉴权规则,提取鉴权参数,将业务能力鉴权规则保存在业务能力网关的业务能力鉴权规则配置表中,其中业务能力鉴权规则配置表的字段至少包括:业务能力标识、业务能力鉴权规则名称、鉴权规则、鉴权参数列表、失败消息模板,以短信能力鉴权规则配置表为例,详见表1:
表1
修改能力API定义文件进行修改,将能力API定义文件中所有在业务能力鉴权规则配置表的鉴权参数列表出现过的请求参数的属性标识为鉴权参数,可以通过增加“auth”属性来实现。
再以短信能力请求消息定义为例,假设短信能力请求消息由能力消息头(CapHeader)和短信消息(SMSMessage)构成,为简单起见,假设能力消息头CapHead只有业务能力标识(CapID)、应用标识(AppID)和应用密钥(AppSecret)三个字段,短信消息SMSMessage只有Sender(发送者)、Receivers(接收者)、Message(短信内容)三个字段。
假设短信能力定义了两个业务能力鉴权规则:应用-能力绑定关系鉴权规则和被叫号码合法性鉴权规则,具体规则定义参见以上实施例所述。通过扫描业务能力鉴权规则,可以得知AppID、AppSecret、CapID、Receivers为鉴权参数,对短信能力请求消息的XMLSchema的相关字段进行修改,增加鉴权标识,短信能力的XMLSchema定义修改如下:
客户端代码生成框架基于扩展的能力API定义文件生成业务能力客户端代码,并编译成业务能力客户端SDK以实现业务能力请求消息封装和HTTP通信。以上述短信能力请求接口定义为例,转换成Java客户端代码将包含一个客户端通信类和N个参数类,每个参数类对应一个XML复杂对象定义:
(1)SMSClient类,提供sendSMS方法,实现短信发送;
(2)SMSRequest类,提供set/getCapHead、set/getSMSMessage和toURLString、toBodyString等方法;
(3)CapHead类,提供set/getCapID、set/getAppID、set/getAppSecret和toURLString、toBodyString等方法;
(4)SMSMessage类,提供set/getSender、set/getReceiver、set/getMessage和toURLString、toBodyString等方法。
其中每个参数类都有一个鉴权参数列表用于记录需鉴权的参数列表,参数类set/get方法用于设置和获取参数属性(可以是复杂对象),在Schema中标记成“auth”的参数(包括名称和值)将在set方法调用时会自动保存在该参数类的鉴权参数列表中,toURLString方法根据鉴权参数列表生成该参数对象的URL字符串,toBodyString生产该参数对象不含鉴权参数的XML或JSON封装字符串。
应用程序调用该业务能力客户端SDK,封装业务能力请求消息,通过HTTP协议向业务能力网关发送好业务能力请求消息。再以短信能力为例,发送短信能力请求消息的Java伪代码如下:
CapHead capHead=new CapHead();
capHead.setCapID(“SMS”);
capHead.setAppID(“MyApp”);
capHead.setAppSecret(“1ad8efa32c7afd1b”);
SMSMessage smsMsg=new SMSMessage();
smsMsg.setSender(“106591234”);
smsMsg.setReceivers(“18912345678|18910020030”);
smsMsg.setMessage(“Hello,my friend.”);
SMSRequest smsRequest=new SMSRequest();
smsRequest.setCapHead(capHead);
smsRequest.setSMSMessage(smsMsg);
smsClient.sendSMS(“http://open.189.cn/api”,smsRequest);
在调用参数类的setXXX方法时,参数类会根据自动判断该输入参数属性是否为鉴权参数属性,如果是鉴权属性就将其保存到鉴权参数属性列表中。
在调用客户端通信类SMSClient的sendSMS方法时,sendSMS方法会先调用参数类的toURLString生成HTTP URL参数字符串,在设置HTTP头(即消息头)参数,然后再调用toBodyString生成不含鉴权参数的HTTP体(即消息体)字符串(以XML或JSON封装),最后将HTTP URL、HTTP头和HTTP体封装成完整的HTTP请求消息,通过HTTP协议发送给业务能力网关。业务能力请求消息的鉴权消息采用URL参数的形式封装,上述短信能力的HTTP请求消息为:
图3为本发明业务能力鉴权方法另一个实施例的流程图。如图3所示,本发明实施例提供的方法可以与图1所示实施例提供的方法配合实现,具体实现过程在此不再赘述,本实施例的业务能力鉴权方法包括:
步骤B101,读取应用平台发送的业务能力请求消息的消息头,其中,业务能力请求消息包括消息头和消息体,消息头中携带有业务能力标识和鉴权参数;
步骤B102,根据消息头中的鉴权参数进行鉴权;
步骤B103,若鉴权成功,则读取业务能力请求消息的消息体,对业务能力请求消息进行解析,将业务能力请求消息重新封装后发送给业务能力引擎进行处理。
本实施例提供的业务能力鉴权方法,由于鉴权参数携带在业务能力请求消息的消息头中,业务能力网关只需要读取业务能力请求消息的消息头的鉴权参数就能进行业务能力鉴权,对于鉴权失败的业务能力请求消息不需要再读取和解析其消息体,从而降低了业务能力网关的鉴权开销,提升了鉴权效率。
在本实施例中,步骤B102,根据消息头中的鉴权参数进行鉴权,具体可以为:
获取业务能力标识对应的鉴权规则,从消息头获取鉴权规则所需的鉴权参数,根据鉴权规则对获取到的鉴权参数进行鉴权。
具体地,业务能力网关接收应用平台发送的业务能力请求消息,首先业务能力请求消息的消息头中的URL,解析所有的URL参数,将URL参数键值对(Key/Value)保存在URL参数映射表URLMap中,从URL参数映射表中获取业务能力标识(CapID),通过业务能力标识从业务能力鉴权规则配置表中获取与该业务能力标识绑定的鉴权规则,将业务能力标识与鉴权规则进行动态绑定,充分满足业务能力网关鉴权的灵活性。为了提高效率,可将鉴权规则映射成某种高级语言代码,并将代码预编译成字节码加载到内存中。以URL参数映射表作为输入参数,逐一执行与业务能力标识绑定的鉴权规则,鉴权规则中的鉴权参数值可通过URL参数映射表快速获取,例如可通过URLMap.get(“AppSecret”)获取应用密钥值,当出现如下任一情况时,鉴权失败:
(1)鉴权规则中至少有一个鉴权参数的值为空(即在URL参数映射表找不到该鉴权参数);
(2)鉴权规则中的函数调用失败;
(3)任一鉴权规则表达式的值为假(FALSE)。
如果鉴权失败,则根据与该鉴权规则绑定的鉴权失败消息模版生成鉴权失败消息,返回给应用平台的应用程序,不再接收和处理该还业务能力请求消息的后续内容。
如果与该业务能力标识绑定的所有鉴权规则全部均通过鉴权,则继续读取消息头和消息体的数据,完整读取后,解析该业务能力请求消息,将URLMap中的鉴权参数值会写到业务能力请求消息对象的相应参数属性中,将该业务能力请求消息封装成HTTP请求消息转发给对应的业务能力引擎处理。
在本实施例中,鉴权规则具体包括以下至少一种:
用户和能力绑定关系鉴权、应用和能力绑定关系鉴权、主叫号码合法性鉴权和被叫号码合法性鉴权。
在本实施例中,鉴权规则具体可以采用布尔逻辑表达式表述。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本发明应用平台一个实施例的结构示意图。如图4所示,本实施例提供的应用平台具体可以调用其耦合设置的业务能力客户端SDK,实现应用于应用平台的方法的各个步骤,其中的业务能力客户端SDK由业务能力网关中的业务能力客户端SDK生成模块生成。具体实现过程在此不再赘述。示例性地,应用平台耦合设置业务能力客户端S的方式,可以包括但不限于业务能力客户端SDK通过代码集成方式集成到应用平台中,或者业务能力客户端SDK以消息总线方式与应用平台集成。本实施例提供的应用平台可以调用业务能力客户端SDK,该业务能力客户端SDK具体包括:
消息封装模块11,用于根据扩展的能力API定义文件封装业务能力请求消息,其中,业务能力请求消息包括消息头和消息体,消息头中携带有业务能力标识和鉴权参数。
消息传输模块12,用于通过超文本传输协议将业务能力请求消息发送给业务能力网关,以使业务能力网关读取消息头,根据消息头中的鉴权参数进行鉴权。
本实施例提供的应用平台,由于鉴权参数携带在业务能力请求消息的消息头中,业务能力网关只需要读取业务能力请求消息的消息头的鉴权参数就能进行业务能力鉴权,对于鉴权失败的业务能力请求消息不需要再读取和解析其消息体,从而降低了业务能力网关的鉴权开销,提升了鉴权效率。
图5为本发明业务能力网关一个实施例的结构示意图。如图5所示,本实施例提供的业务能力网关具体可以实现应用于业务能力网关的方法的各个步骤,具体实现过程在此不再赘述。本实施例提供的业务能力网关具体包括:
第一处理模块21,用于读取应用平台发送的业务能力请求消息的消息头,其中,业务能力请求消息包括消息头和消息体,消息头中携带有业务能力标识和鉴权参数;
鉴权模块22,用于根据消息头中的鉴权参数进行鉴权;
第二处理模块23,用于若鉴权成功,则读取业务能力请求消息的消息体,对业务能力请求消息进行解析,将业务能力请求消息重新封装后发送给业务能力引擎进行处理。
本实施例提供的业务能力网关,由于鉴权参数携带在业务能力请求消息的消息头中,业务能力网关只需要读取业务能力请求消息的消息头的鉴权参数就能进行业务能力鉴权,对于鉴权失败的业务能力请求消息不需要再读取和解析其消息体,从而降低了业务能力网关的鉴权开销,提升了鉴权效率。
在本实施例中,鉴权模块具体22可以用于获取业务能力标识对应的鉴权规则,从消息头获取鉴权规则所需的鉴权参数,根据鉴权规则对获取到的鉴权参数进行鉴权。
在本实施例中,鉴权规则包括以下至少一种:
用户和能力绑定关系鉴权、应用和能力绑定关系鉴权、主叫号码合法性鉴权和被叫号码合法性鉴权。
在本实施例中,鉴权规则具体可以采用布尔逻辑表达式表述。
图6为本发明业务能力网关另一个实施例的结构示意图。与图5所示的实施例相比,该实施例的业务能力网关还包括业务能力接口管理平台24,该业务能力接口管理平台24具体包括鉴权规则管理模块、能力API文件管理模块和业务能力客户端SDK生成模块。其中:
鉴权规则管理模块,用于管理业务能力网关所有业务能力的鉴权规则,将鉴权规则保存在业务能力鉴权规则配置表中,实现各能力的鉴权规则的增加、修改、删除和查询;以及当业务能力鉴权规则配置表中的鉴权规则发生改变时,通知能力API文件管理模块修改对应的能力API定义文件中的请求参数属性,并通知业务能力客户端SDK生成模块重新生成业务能力客户端SDK。
能力API文件管理模块,用于管理业务能力网关的API定义文件,以及鉴权规则管理模块的通知,根据业务能力鉴权规则配置表中的鉴权参数对能力API定义文件中的请求参数的属性进行修改,得到扩展的能力API定义文件。
业务能力客户端SDK生成模块,用于根据扩展的能力API定义文件生成业务能力客户端代码,并编译成业务能力客户端SDK。
图7为本发明业务能力鉴权系统一个实施例的结构示意图。如图7所示,本实施例的业务能力鉴权系统具体包括:
本发明任意实施例提供的应用平台31,以及本发明任意实施例提供的业务能力网关32。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (11)
1.一种业务能力鉴权方法,其特征在于,包括:
调用业务能力客户端SDK封装业务能力请求消息,其中,所述业务能力请求消息包括消息头和消息体,所述封装业务能力请求消息包括:将消息体中的鉴权参数提取至消息头中,使得所述消息头中携带有业务能力标识和鉴权参数;
通过超文本传输协议将所述业务能力请求消息发送给业务能力网关,以使所述业务能力网关读取所述消息头,根据鉴权规则对所述消息头中的所述鉴权参数进行鉴权,所述鉴权规则包括以下至少一种:
用户和能力绑定关系鉴权、应用和能力绑定关系鉴权、主叫号码合法性鉴权和被叫号码合法性鉴权。
2.根据权利要求1所述的业务能力鉴权方法,其特征在于,所述调用业务能力客户端SDK封装业务能力请求消息之前,所述方法还包括:
根据业务能力鉴权规则配置表中的鉴权参数对能力应用程序编程接口API定义文件中的请求参数的属性进行修改,得到扩展的能力API定义文件,根据所述扩展的能力API定义文件生成所述业务能力客户端代码,并由该业务能力客户端代码编译成业务能力客户端SDK。
3.一种业务能力鉴权方法,其特征在于,包括:
读取应用平台发送的业务能力请求消息的消息头,其中,所述业务能力请求消息包括所述消息头和消息体,所述消息头中携带有业务能力标识和鉴权参数,所述鉴权参数为由所述业务能力客户端SDK从消息体中提取至消息头中;
根据鉴权规则对所述消息头中的鉴权参数进行鉴权,所述鉴权规则包括以下至少一种:用户和能力绑定关系鉴权、应用和能力绑定关系鉴权、主叫号码合法性鉴权和被叫号码合法性鉴权;
若鉴权成功,则读取所述业务能力请求消息的所述消息体,对所述业务能力请求消息进行解析,将所述业务能力请求消息重新封装后发送给业务能力引擎进行处理;若根据消息头中的鉴权参数鉴权不成功,则不读取消息体。
4.根据权利要求3所述的业务能力鉴权方法,其特征在于,所述根据所述消息头中的鉴权参数进行鉴权,具体为:
获取所述业务能力标识对应的鉴权规则,从所述消息头获取所述鉴权规则所需的鉴权参数,根据所述鉴权规则对获取到的鉴权参数进行鉴权。
5.根据权利要求3所述的业务能力鉴权方法,其特征在于,所述鉴权规则采用布尔逻辑表达式表述。
6.一种应用平台,其特征在于,所述应用平台耦合设置有业务能力客户端软件工具套件SDK,所述业务能力客户端SDK包括:
消息封装模块,用于调用业务能力客户端SDK封装业务能力请求消息,其中,所述业务能力请求消息包括消息头和消息体,所述封装业务能力请求消息包括:将消息体中的鉴权参数提取至消息头中,使得,所述消息头中携带有业务能力标识和鉴权参数;
消息传输模块,用于通过超文本传输协议将所述业务能力请求消息发送给业务能力网关,以使所述业务能力网关读取所述消息头,根据鉴权规则对所述消息头中的所述鉴权参数进行鉴权,所述鉴权规则包括以下至少一种:
用户和能力绑定关系鉴权、应用和能力绑定关系鉴权、主叫号码合法性鉴权和被叫号码合法性鉴权。
7.一种业务能力网关,其特征在于,包括:
第一处理模块,用于读取应用平台发送的业务能力请求消息的消息头,其中,所述业务能力请求消息包括所述消息头和消息体,所述消息头中携带有业务能力标识和鉴权参数,所述鉴权参数为由所述业务能力客户端SDK从消息体中提取至消息头中;
鉴权模块,用于根据鉴权规则对所述消息头中的鉴权参数进行鉴权,所述鉴权规则包括以下至少一种:用户和能力绑定关系鉴权、应用和能力绑定关系鉴权、主叫号码合法性鉴权和被叫号码合法性鉴权;
第二处理模块,用于若鉴权成功,则读取所述业务能力请求消息的所述消息体,对所述业务能力请求消息进行解析,将所述业务能力请求消息重新封装后发送给业务能力引擎进行处理;若根据消息头中的鉴权参数鉴权不成功,则不读取消息体。
8.根据权利要求7所述的业务能力网关,其特征在于,所述鉴权模块具体用于获取所述业务能力标识对应的鉴权规则,从所述消息头获取所述鉴权规则所需的鉴权参数,根据所述鉴权规则对获取到的鉴权参数进行鉴权。
9.根据权利要求7所述的业务能力网关,其特征在于,所述鉴权规则采用布尔逻辑表达式表述。
10.根据权利要求8或9所述的业务能力网关,其特征在于,还包括业务能力接口管理平台,所述业务能力接口管理平台包括:
鉴权规则管理模块,用于管理业务能力网关所有业务能力的鉴权规则,将鉴权规则保存在业务能力鉴权规则配置表中,实现各能力的鉴权规则的增加、修改、删除和查询;以及当业务能力鉴权规则配置表中的鉴权规则发生改变时,通知能力API文件管理模块修改对应的能力API定义文件中的请求参数属性,并通知业务能力客户端SDK生成模块重新生成业务能力客户端SDK;
能力API文件管理模块,用于管理业务能力网关的API定义文件,以及鉴权规则管理模块的通知,根据业务能力鉴权规则配置表中的鉴权参数对能力API定义文件中的请求参数的属性进行修改,得到扩展的能力API定义文件;
业务能力客户端SDK生成模块,用于根据所述扩展的能力API定义文件生成所述业务能力客户端代码,并编译成业务能力客户端SDK。
11.一种业务能力鉴权系统,其特征在于,包括:
如权利要求6所述的应用平台,以及如权利要求7-10任一所述的业务能力网关。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310681996.2A CN104717647B (zh) | 2013-12-13 | 2013-12-13 | 业务能力鉴权方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310681996.2A CN104717647B (zh) | 2013-12-13 | 2013-12-13 | 业务能力鉴权方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104717647A CN104717647A (zh) | 2015-06-17 |
CN104717647B true CN104717647B (zh) | 2019-03-22 |
Family
ID=53416507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310681996.2A Active CN104717647B (zh) | 2013-12-13 | 2013-12-13 | 业务能力鉴权方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104717647B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141653A (zh) * | 2015-07-01 | 2015-12-09 | 北京奇虎科技有限公司 | 业务平台的数据交互方法、设备和系统 |
CN105099769B (zh) * | 2015-07-01 | 2019-04-23 | 北京奇虎科技有限公司 | 业务平台的异常操作处理方法、设备和系统 |
CN107172057A (zh) * | 2017-06-01 | 2017-09-15 | 浙江数链科技有限公司 | 鉴权实现方法和装置 |
CN109510846B (zh) * | 2017-09-14 | 2020-11-03 | 北京金山云网络技术有限公司 | Api调用系统、方法、装置、电子设备及存储介质 |
CN108279988B (zh) * | 2018-01-25 | 2021-07-23 | 微梦创科网络科技(中国)有限公司 | 一种基于Lua脚本语言的消息处理方法及系统 |
CN108471409B (zh) * | 2018-03-15 | 2019-09-03 | 苏州思必驰信息科技有限公司 | 语音对话平台的应用程序接口鉴权配置方法及系统 |
CN109740328B (zh) * | 2019-01-08 | 2021-07-02 | 广州虎牙信息科技有限公司 | 一种权限鉴定方法、装置、计算机设备和存储介质 |
CN113179306B (zh) * | 2021-04-23 | 2022-12-06 | 上海中通吉网络技术有限公司 | 基于http请求内容的流量分发方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350820A (zh) * | 2008-08-29 | 2009-01-21 | 中兴通讯股份有限公司 | 一种推送业务代理网关对推送业务发起者的安全认证方法 |
CN103024740A (zh) * | 2011-09-28 | 2013-04-03 | 腾讯科技(深圳)有限公司 | 移动终端访问互联网的方法及系统 |
CN103220259A (zh) * | 2012-01-20 | 2013-07-24 | 华为技术有限公司 | Oauth API的使用、调用方法、设备及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE391385T1 (de) * | 2003-07-11 | 2008-04-15 | Ibm | Verfahren und system zur benutzerauthentifizierung in einer benutzer- anbieterumgebung |
-
2013
- 2013-12-13 CN CN201310681996.2A patent/CN104717647B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350820A (zh) * | 2008-08-29 | 2009-01-21 | 中兴通讯股份有限公司 | 一种推送业务代理网关对推送业务发起者的安全认证方法 |
CN103024740A (zh) * | 2011-09-28 | 2013-04-03 | 腾讯科技(深圳)有限公司 | 移动终端访问互联网的方法及系统 |
CN103220259A (zh) * | 2012-01-20 | 2013-07-24 | 华为技术有限公司 | Oauth API的使用、调用方法、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104717647A (zh) | 2015-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104717647B (zh) | 业务能力鉴权方法、设备及系统 | |
JP6776411B2 (ja) | パケットベースのデータ通信のデバイス識別子依存オペレーション処理 | |
Curbera et al. | Unraveling the Web services web: an introduction to SOAP, WSDL, and UDDI | |
US9189649B2 (en) | Security model for workflows aggregating third party secure services | |
CN105493076B (zh) | 通过通信通道的捕捉服务 | |
CN103117983B (zh) | 数据服务请求应答方法和数据服务协议栈的设计方法 | |
US20080301320A1 (en) | Method And System For Managing Communication Protocol Data Based On MIME Types | |
US20060230432A1 (en) | Policy algebra and compatibility model | |
US20240089343A1 (en) | Service layer-based methods to enable efficient analytics of iot data | |
CN108183915B (zh) | 一种面向高安全等级业务与应用需求的安全标签实现系统 | |
US8140628B2 (en) | Enforcing conformance in email content | |
CN107632875A (zh) | 电商接口集成方法、系统、计算机设备、可读存储介质 | |
Di Martino et al. | A semantic IoT framework to support RESTful devices' API interoperability | |
US9032489B2 (en) | Method and device for proxy access of open platform | |
CN113890891A (zh) | 一种能源云网的数据共享交互方法和装置 | |
CN101917476B (zh) | 超文本传输协议消息处理方法及其客户端系统 | |
CN107145535A (zh) | 即时通信方法及装置和服务器 | |
WO2015149530A1 (zh) | M2m应用服务方法、装置及系统 | |
KR102181608B1 (ko) | 연합 인증 장치 및 그것의 연합 인증 방법 | |
CN107911390A (zh) | 处理服务请求的方法、代理服务器、应用服务器和系统 | |
US8738049B1 (en) | Converged dialog in hybrid mobile applications | |
CN115297066B (zh) | 一种资源动态协同方法、装置、服务器及介质 | |
Allam et al. | A message-passing model for service oriented computing | |
Kaushik | Email to REST (E2R) System | |
CN117880327A (zh) | 一种用于车端与云端交互的车机网络接口方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |