CN114880652A - 基于应用程序编程接口交互生成账户权限的系统和方法 - Google Patents

基于应用程序编程接口交互生成账户权限的系统和方法 Download PDF

Info

Publication number
CN114880652A
CN114880652A CN202210100008.XA CN202210100008A CN114880652A CN 114880652 A CN114880652 A CN 114880652A CN 202210100008 A CN202210100008 A CN 202210100008A CN 114880652 A CN114880652 A CN 114880652A
Authority
CN
China
Prior art keywords
api
account
computing system
permissions
access
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
CN202210100008.XA
Other languages
English (en)
Inventor
S·K·库莱
B·斯万
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.)
Xiu Pufei Co
Original Assignee
Xiu Pufei Co
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 Xiu Pufei Co filed Critical Xiu Pufei Co
Publication of CN114880652A publication Critical patent/CN114880652A/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0892Network architectures or network communication protocols for network security for authentication of entities by using authentication-authorization-accounting [AAA] servers or protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • 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/2101Auditing as a secondary aspect
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Human Computer Interaction (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

提供了用于为计算系统上的账户生成账户权限的系统和方法。在一些实施例中,使用涉及外部应用程序和计算系统的应用程序编程接口(API)交互来为账户生成对应的一组账户权限。还或者替代地可以使用针对外部应用程序的API权限来为账户生成该组账户权限。该组账户权限可以使得账户访问计算系统上的与外部应用程序相同的资源,从而可以避免授予账户对计算系统过于广泛的访问权。

Description

基于应用程序编程接口交互生成账户权限的系统和方法
技术领域
本申请涉及在计算系统上基于账户进行的授权,并且在特定实施例中,涉及基于与应用程序编程接口(API)的交互为计算系统上的账户生成账户权限。
背景技术
计算系统所支持的一些软件实例可能仅限于特定用户。电子商务平台上的在线商店的管理员是典型地仅限于单个用户或单个用户群组的软件实例的示例。例如,可通过管理员访问的资源可以使得能够访问不应该与第三方共享的敏感信息。然而,将第三方完全限制在在线商店的管理员之外可能会阻碍对在线商店的支持和发展。
发明内容
计算系统可以提供第三方账户权限以使得第三方能够访问计算系统上的一组资源。在一些情况下,第三方可以提供与补充或以其他方式增强计算系统功能的外部应用程序相关的技术和/或业务支持服务。例如,第三方可以是外部应用程序的开发者,并且外部应用程序可以由与计算系统的用户相关联的软件实例来实施。为了向用户提供对外部应用程序的适当支持,可以向第三方提供账户权限,这些权限使得能够对与用户相关联的软件实例进行至少部分访问。然而,这些账户权限可能仅限于软件实例的与外部应用程序相关的部分。例如,如果外部应用程序不访问软件实例的特定资源,则第三方的账户权限可能不包括对这些资源的访问权。
在一些实施例中,外部应用程序可以例如经由接口(比如应用程序编程接口(API))与计算系统交互。第三方的账户权限可以基于外部应用程序的API范围而生成。外部应用程序的API范围指示与外部应用程序相关的计算系统的资源和/或计算系统上的一个或多个软件实例的资源。根据一个示例,可以使用授予外部应用程序的API权限(例如,外部应用程序被授权进行的API调用)来帮助确定外部应用程序的API范围。另外或可替代地,可以使用涉及外部应用程序的API交互(例如,由外部应用程序进行的实际API调用)来帮助确定外部应用程序的API范围。这样,外部应用程序的API范围可以包括外部应用程序的API权限和/或涉及外部应用程序的API交互。
可以生成为外部应用程序提供支持的第三方账户权限,使得这些账户权限与外部应用程序的API范围相当。例如,API范围可以指示计算系统的由外部应用程序访问的一组资源,并且外部应用程序的账户权限可以被生成以允许访问同一组资源。
基于外部应用程序的API范围来确定第三方账户权限可以由计算系统自动执行,并且因此可以减少或消除手动生成第三方账户权限的需求。以这种方式,可以使用API范围更快速地生成账户权限,并且这些账户权限可以允许用户快速访问第三方支持服务。进一步地,基于API范围生成第三方权限可以消除人为判断和偏见,并且因此可以提供在范围上比手动选择的账户权限更合适的账户权限。
根据本披露的一方面,提供了一种计算机实施的方法,该方法包括获得涉及软件应用程序访问计算系统的一组资源的API交互记录。该方法还包括基于该API交互记录为账户生成一组账户权限。该组账户权限允许该账户访问计算系统的该组资源。可选地,该组资源可以包括能够经由API交互记录中的API调用而访问的数据。该组账户权限可能还限制账户访问计算系统的与API交互记录不对应的其他资源。这种方法可以帮助确保账户和软件应用程序具有对计算系统的同一组资源的访问权,从而可以避免授予账户对计算系统过于广泛的访问权。该账户可以允许用户访问该计算系统,例如以便为该软件应用程序提供支持。
在一些实施例中,为账户生成该组账户权限包括:将API交互记录中的特定API交互映射到计算系统的该组资源中的特定资源;以及将使得账户能够访问该特定资源的至少一个权限添加到该组账户权限中。可选地,将特定API交互映射到特定资源是基于API的部分与计算系统的所存储的资源之间的映射。
在一些实施例中,该组账户权限是时间相关的。例如,获得API交互记录可以包括获得特定API交互的时间段。如果映射到特定API交互的特定资源使得能够访问计算系统上的数据集,则至少一个账户权限可以将账户的访问权限制为数据集中的与该时间段相对应的部分。
在一些实施例中,该组账户权限是以基于工作流的方式生成的。例如,为账户生成该组账户权限可以包括:将API交互记录中的一组API交互映射到计算系统的工作流;以及将使得账户能够执行该工作流的至少一个权限添加到该组账户权限中。可选地,将该组API交互映射到工作流是基于API的部分与计算系统的所存储的工作流之间的映射。
在一些实施例中,该组账户权限允许账户访问计算系统上的与软件应用程序相关联的软件实例。例如,该软件实例可以实施该软件应用程序。进一步地,该组资源可以特定于该软件实例,并且该组账户权限可以仅限于该软件实例。换言之,该组账户权限可能不允许访问计算系统上的其他软件实例。可选地,在生成该组账户权限之前,该方法可以进一步包括确定软件实例与账户之间存在关系。
在一些实施例中,获得该API交互记录包括监测由计算系统从执行软件应用程序的外部设备接收的API调用。
在一些实施例中,该方法进一步包括获得针对该软件应用程序的API权限记录。为账户生成该组账户权限可以进一步基于API权限记录。
根据本披露的另一方面,提供了一种系统,该系统包括:存储器,该存储器用于存储API交互记录、API权限记录和/或API映射;以及一个或多个处理器,该一个或多个处理器用于执行如本文所披露的任何方法。
根据本披露的又一方面,提供了一种存储有计算机可执行指令的非暂态计算机可读介质,这些可执行指令在被计算机执行时使该计算机执行本文所披露的任何方法。
相应地,提供了一种方法、一种系统和一种计算机程序,如所附权利要求中详细描述的。
附图说明
将参考附图仅通过示例的方式描述实施例,在附图中:
图1是根据一个实施例的电子商务平台的框图;
图2是根据一个实施例的管理员主页的示例;
图3展示了图1的电子商务平台,但包括账户权限引擎;
图4是展示了根据实施例的用于基于API范围生成账户权限的系统的框图;
图5是展示了根据实施例的用于基于API范围生成账户权限的方法的流程图;
图6是展示了根据实施例的外部应用程序和第三方与电子商务平台交互的框图;以及
图7和图8展示了可由第三方使用合作者账户在图6的电子商务平台上访问的示例屏幕页面。
具体实施方式
出于说明性目的,现在下文将结合附图更详细地解释具体的示例实施例。
示例电子商务平台
在一些实施例中,本文所披露的方法可以在商务平台上执行或与商务平台相关联地执行,该商务平台在本文中将被称为电子商务平台。因此,将描述电子商务平台的示例。
图1展示了根据一个实施例的电子商务平台100。电子商务平台100可以用于向客户提供商家的产品和服务。虽然本披露内容设想使用装置、系统和过程来购买产品和服务,但为了简单起见,本文的描述将涉及产品。在本披露内容中所有对产品的提及也应当理解为对产品和/或服务的提及,包括实体产品、数字内容、票证、订阅、要提供的服务等。
虽然本披露内容自始至终设想“商家”和“客户”可以不只是个人,但为了简单起见,本文的描述一般地涉及商家和客户本身。在本披露内容中所有对商家和客户的提及也应当理解为对个人团体、公司、企业、计算实体等的提及,并且可以代表营利性或非营利性的产品交换。进一步,虽然本披露内容自始至终涉及“商家”和“客户”,并描述他们的角色本身,但电子商务平台100应当被理解为更一般地支持电子商务环境中的用户,并且在本披露内容中所有对商家和客户的提及也应当理解为对用户的提及,比如,用户是商家用户(例如,卖方、零售商、批发商或产品提供商)、客户用户(例如,买方、购买代理或产品用户)、潜在用户(例如,正在浏览但尚未承诺购买的用户、评估电子商务平台100以潜在地用于营销和销售产品的用户等)、服务提供商用户(例如,运输提供商112、金融提供商等)、公司或企业用户(例如,购买、销售或使用产品的公司代表;企业用户;客户关系或客户管理代理等)、信息技术用户、计算实体用户(例如,用于购买、销售或使用产品的计算机器人)等。
电子商务平台100可以提供集中式系统,以用于向商家提供在线资源和设施以管理他们的业务。本文描述的设施可以部分或全部地通过在一个或多个处理器上执行计算机软件、模块、程序代码和/或指令的机器来部署,该一个或多个处理器可以是平台100的一部分或在该平台外部。商家可以使用电子商务平台100来管理与客户的商务,比如通过在线商店138、渠道110A-B、物理位置的POS设备152(例如,实体店面或其他位置,比如通过自助终端机、终端、读取器、打印机、3D打印机等)实施与客户的电子商务体验,通过电子商务平台100管理他们的业务,以及通过电子商务平台100的通信设施129与客户交互,或其任何组合。商家可以将电子商务平台100作为与客户的唯一商务存在使用,或者与其他商家商务设施结合使用,比如通过实体店(例如,‘实体(brick-and-mortar)’零售店)、商家平台外网站104(例如,与电子商务平台分开的由商家支持或代表商家的商务互联网网站或其他互联网或网络财产或资产)等。然而,即使这些‘其他’商家商务设施也可以与电子商务平台相结合,比如,商家实体店中的POS设备152链接到电子商务平台100,商家平台外网站104比如通过将平台外商家网站104的内容链接到在线商店138的‘购买按钮’而绑定到电子商务平台100等。
在线商店138可以代表包括多个虚拟店面的多租户设施。在实施例中,商家可以比如通过商家设备102(例如,计算机、膝上型计算机、移动计算设备等)管理在线商店138中的一个或多个店面,并且通过多种不同的渠道110A-B(例如,在线商店138;实体店面,通过POS设备152;电子市场,通过集成到网站或社交媒体渠道中的电子购买按钮,该按钮比如在社交网络、社交媒体页面、社交媒体消息传送系统上;等等)向客户提供产品。商家可以跨渠道110A-B销售,然后通过电子商务平台100管理他们的销售,其中,渠道110A可以在电子商务平台100内部或从电子商务渠道110B外部提供。商家可以在他们的实体零售店、在快闪店、通过批发、通过电话等进行销售,然后通过电子商务平台100管理他们的销售。商家可以使用这些方式的全部或任何组合,比如通过实体店面使用POS设备152维持业务,通过在线商店138维持虚拟店面,以及使用通信设施129以使用客户交互和分析132来提高销售的概率。在本披露内容中,术语“在线商店138”和“店面”可以同义地使用以指代商家的通过电子商务平台100提供存在的在线电子商务,其中,在线商店138可以指代由(例如,用于多个商家的)电子商务平台100支持的多租户店面集合,或指代单个商家的店面(例如,商家的在线商店)。
在一些实施例中,客户可以通过客户设备150(例如,计算机、膝上型计算机、移动计算设备等)、POS设备152(例如,零售设备、自助终端机、自动化结账系统等)或本领域已知的任何其他商务接口设备进行交互。电子商务平台100可以使商家能够通过在线商店138、通过物理位置(例如,商家的店面或其他位置)的POS设备152与客户联系,通过经由电子通信设施129的对话促进与客户的商务等,从而提供用于联系客户并促进针对可用于联系客户并与客户交互的真实或虚拟路径的商家服务的系统。
在一些实施例中,并且如本文进一步描述的,电子商务平台100可以通过包括处理器和存储器的处理设施来实施,该处理设施存储一组指令,这些指令当被执行时使电子商务平台100执行如本文所述的电子商务功能和支持功能。处理设施可以是服务器、客户端、网络基础设施、移动计算平台、云计算平台、固定计算平台或其他计算平台的一部分,并在电子商务平台100的电子组件、商家设备102、支付网关106、应用程序开发者、渠道110A-B、运输提供商112、客户设备150、销售点设备152等之间提供电子连接和通信。电子商务平台100可以实施为云计算服务、软件即服务(SaaS)、基础设施即服务(IaaS)、平台即服务(PaaS)、桌面即服务(DaaS)、管理软件即服务(MSaaS)、移动后端即服务(MBaaS)、信息技术管理即服务(ITMaaS)等,比如实施在软件和交付模型中,在该模型中,软件基于订阅而获得许可并被集中托管(例如,用户使用客户端(例如,瘦客户端)经由网络浏览器或其他应用程序访问,通过POS设备访问等)。在一些实施例中,电子商务平台100的元素可以实施为在各种平台和操作系统上运行,比如iOS、Android、在网络上等(例如,针对iOS、Android和网络的给定在线商店,管理员114被实施为多个实例,每个具有类似的功能)。
在一些实施例中,可以通过电子商务平台100的服务器提供的网页使在线商店138服务于客户设备150。服务器可以从安装在客户设备150上的浏览器或其他应用程序接收对网页的请求,其中,浏览器(或其他应用程序)通过IP地址连接到服务器,IP地址通过域名转换获得。作为回应,服务器发回所请求的网页。网页可以用超文本标记语言(HTML)、模板语言、JavaScript等或其任何组合编写或包括这些语言。例如,HTML是描述网页的静态信息(比如网页的布局、格式和内容)的计算机语言。网站设计者和开发者可以使用模板语言来构建兼具静态内容(其在多个页面上相同)和动态内容(其在页面之间发生变化)的网页。模板语言可以使得能够重复使用定义网页布局的静态元素,同时用来自在线商店的数据动态填充页面。静态元素可以用HTML编写,而动态元素可以用模板语言编写。文件中的模板语言元素可以充当占位符,使得文件中的代码被编译并发送到客户设备150,并且然后模板语言被来自在线商店138的数据替换(比如当安装主题时)。模板和主题可以考虑标签、对象和过滤器。客户端设备的网络浏览器(或其他应用程序)然后相应地呈现页面。
在一些实施例中,在线商店138可以由电子商务平台100提供给客户,客户可以在该电子商务平台上浏览和购买各种可获得的产品(例如,将产品添加到购物车、通过购买按钮立即购买等)。在线商店138可以以透明的方式服务于客户,而客户不一定意识到它是通过电子商务平台100提供的、而认为是直接来自商家。商家可以使用商家可配置的域名、可定制的HTML主题等来定制他们的在线商店138。商家可以通过主题系统来定制他们网站的外观和感觉,比如商家可以通过在在线商店的产品层次内示出相同的底层产品和业务数据的同时改变他们的主题来选择和改变商家的在线商店138的外观和感觉。主题可以进一步通过主题编辑器(即,使用户能够灵活地定制他们网站的设计界面)来定制。主题也可以使用改变比如特定的颜色、字体和预构建的布局方案等方面的主题特定设置来定制。在线商店可以实施用于网站内容的内容管理系统。商家可以创作博客帖子或静态页面并将它们发布到其在线商店138(比如通过博客、文章等),以及配置导航菜单。商家可以将图像(例如,产品)、视频、内容、数据等上传到电子商务平台100,比如以供系统存储(例如,存储为数据134)。在一些实施例中,电子商务平台100可以提供用于调整图像大小、将图像与产品相关联、添加文本并将文本与图像相关联、为新产品变型添加图像、保护图像等的功能。
如本文描述的,电子商务平台100可以通过多种不同渠道110A-B向商家提供产品的交易设施,这些渠道包括如本文描述的在线商店138、通过电话以及通过实体POS设备152。电子商务平台100可以包括与经营在线业务(比如提供与他们的在线商店相关联的域服务118、用于促进与客户的交易的支付服务120、用于为所购买的产品提供客户运输选项的运输服务122、与产品保护和责任相关联的风险和保险服务124、商家账单等)相关联的业务支持服务116、管理员114等。服务116可以经由电子商务平台100提供或与外部设施相关联地提供,比如通过用于支付处理的支付网关106、用于加快产品运输的运输提供商112等提供。
在一些实施例中,电子商务平台100可以提供集成运输服务122(比如,通过电子商务平台运输设施或通过第三方承运商),从而比如向商家提供实时更新、跟踪、自动费率计算、批量订单准备、标签打印等。
图2描绘了管理员114的主页的非限制性实施例,该主页可以示出关于日常任务、商店最近的活动以及商家为建立其业务可以采取的后续步骤的信息。在一些实施例中,商家可以经由商家设备102(比如从台式计算机或移动设备)登录到管理员114,并管理他们的在线商店138的各方面,比如查看在线商店138的最近活动,更新在线商店138目录,管理订单、最近访问活动、总订单活动等。在一些实施例中,商家可能能够通过使用比如图2所示的侧边栏来访问管理员114的不同部分。管理员114的各部分可以包括用于访问和管理商家业务的核心方面(包括订单、产品、客户、可获得的报告和折扣)的各种界面。管理员114还可以包括用于管理商店的销售渠道的界面,这些销售渠道包括在线商店、客户可用于访问商店的(多个)移动应用程序(移动App)、POS设备和/或购买按钮。管理员114还可以包括用于管理安装在商家账户上的应用程序(App)的界面;应用于商家的在线商店138和账户的设置。商家可以使用搜索栏来查找产品、页面或其他信息。取决于商家正在使用的设备102或软件应用程序,他们可能能够通过管理员114启用不同的功能。例如,如果商家从浏览器登录到管理员114,则他们可能能够管理其在线商店138的所有方面。如果商家从其移动设备(例如,经由移动应用程序)登录,则他们可能能够查看其在线商店138的所有方面或其子集,比如查看在线商店138的最近活动、更新在线商店138的目录、管理订单等。
可以通过客流量报告或指标(比如显示商家整体业务的销售概要、活动销售渠道的特定销售和参与度数据等)来查看关于商家的在线商店138的商务和访客的更详细信息。报告可以包括客流量报告、行为报告、客户报告、财务报告、营销报告、销售报告、定制报告等。商家可能能够比如通过使用下拉菜单来查看不同时间段(例如,数天、数周、数月等)的不同渠道110A-B的销售数据。可以为想要更详细地查看商店的销售和参与度数据的商家提供数据概览。可以在主页指标部分中提供活动源以展示商家账户上的活动的概览。例如,通过点击“查看最近的所有活动”数据面板按钮,商家可能能够看到他们的账户上时间更长的最近活动源。主页可以比如基于账户状态、增长情况、最近客户活动等示出关于商家的在线商店138的通知。可以提供通知以帮助商家导航通过某一过程,比如捕获支付、将订单标记为已履行、归档已完成的订单等。
电子商务平台100可以提供通信设施129和相关联的商家接口以提供电子通信和营销,比如使用电子消息传送聚合设施来收集和分析商家、客户、商家设备102、客户设备150、POS设备152等之间的通信交互,以聚合和分析通信,比如从而提高提供产品销售的潜力等。例如,客户可能有与产品相关的问题,这可能在客户与商家(或代表商家的基于自动化处理器的代理)之间产生对话,在这种情况下,通信设施129分析该交互并向商家提供关于如何提高销售概率的分析。
电子商务平台100可以提供用于与客户进行安全金融交易的金融设施120,比如通过安全的卡服务器环境。比如在支付卡行业数据(PCI)环境(例如,卡服务器)中,电子商务平台100可以存储信用卡信息,以查核财务、向商家开账单、执行电子商务平台100的金融机构账户与商家的银行账户之间的自动清算所(ACH)转移(例如,当使用资金时)等。这些系统可以符合萨班斯-奥克斯利法案(SOX)的规定,并且在其开发和运营中需要高级别的调查。金融设施120还可以向商家提供金融支持,比如通过借贷资金(例如,借贷款项、现金预付等)和提供保险。另外,电子商务平台100可以提供一组营销和合作伙伴服务并控制电子商务平台100与合作伙伴之间的关系。他们还可以通过电子商务平台100连接和加入新商家。这些服务可以通过使商家更容易在电子商务平台100上工作来实现商家增长。通过这些服务,可以经由电子商务平台100向商家提供帮助设施。
在一些实施例中,在线商店138可以支持大量独立管理的店面并且每天为各种产品处理大量交易数据。交易数据可以包括客户联系信息、账单信息、运输信息、关于所购买的产品的信息、关于所提供的服务的信息以及与通过电子商务平台100进行的业务相关联的任何其他信息。在一些实施例中,电子商务平台100可以将该数据存储在数据设施134中。交易数据可以被处理以产生与在线商务相关的分析132,该分析进而可以被提供给商家或第三方商务实体,比如提供消费者趋势、营销和销售见解、改善销售的建议、客户行为评估、营销和销售建模、欺诈趋势等,并且是通过数据面板界面、通过报告等来提供的。电子商务平台100可以存储关于业务和商家交易的信息,并且数据设施134可以具有增强、贡献、细化和提取数据的多种方式,其中,随着时间的推移,所收集的数据可以实现对电子商务平台100的各方面的改进。
再次参考图1,在一些实施例中,电子商务平台100可以配置有用于进行内容管理、任务自动化和数据管理的商务管理引擎136,以实现对多个在线商店138的支持和服务(例如,与产品、库存、客户、订单、协作、供应商、报告、财务、风险和欺诈等相关),但该电子商务平台也可通过应用程序142A-B进行扩展,从而实现更大的灵活性和定制过程,以适应不断增长的各种商家在线商店、POS设备、产品和服务,其中,应用程序142A可以在电子商务平台100内部提供,或者应用程序142B可以从电子商务平台100外部提供。在一些实施例中,应用程序142A可以由提供平台100的同一方或不同方提供。在一些实施例中,应用程序142B可以由提供平台100的同一方或不同方提供。商务管理引擎136可以被配置为通过功能和数据的划分(例如,分片)来实现灵活性和可扩展性,比如通过客户标识符、订单标识符、在线商店标识符等来进行该划分。商务管理引擎136可以适应商店特定的业务逻辑,并且在一些实施例中,可以结合管理员114和/或在线商店138。
商务管理引擎136包括电子商务平台100的基本或“核心”功能,并且因此,如本文描述的,并非支持在线商店138的所有功能都可以适合包括在内。例如,包括在商务管理引擎136中的功能可能需要超过核心功能阈值——由此可以确定该功能是商务体验的核心(例如,对于大多数在线商店活动来说是共同的,比如跨渠道、管理员界面、商家位置、行业、产品类型等),能够跨在线商店138重复使用(例如,可以跨核心功能重复使用/修改的功能),一次仅限于单个在线商店138的背景(例如,实施在线商店“隔离原则”,在该原则下,代码不应该一次能够与多个在线商店138交互,从而确保在线商店138不能访问彼此的数据),提供交易工作量等。维持对实施什么功能的控制可以使商务管理引擎136能够保持响应性,因为许多需要的特征要么直接由商务管理引擎136提供,要么通过接口140A-B来启用,这比如通过其借助应用程序编程接口(API)连接扩展到应用程序142A-B和渠道110A-B来实现,其中接口140A可以被提供给电子商务平台100内部的应用程序142A和/或渠道110A,或者通过接口140B被提供给电子商务平台100外部的应用程序142B和/或渠道110B。通常,平台100可以包括促进与其他平台、系统、软件、数据源、代码等的连接和通信的接口140A-B(这些接口可以是扩展、连接器、API等)。这样的接口140A-B可以是商务管理引擎136的接口140A或者更一般地是平台100的接口140B。如果不注意限制商务管理引擎136中的功能,响应性可能会受到影响,比如基础设施降级,缓慢的数据库或非关键后端故障,灾难性基础设施故障(比如伴随数据中心离线),正在部署的新代码执行时间比预期的长等。为了防止或减轻这些情况,商务管理引擎136可以被配置为比如通过利用超时、队列、背压来防止降级的配置等来维持响应性。
尽管隔离在线商店数据对于维护在线商店138与商家之间的数据隐私很重要,但也可能有理由收集和使用跨商店数据,例如,对于订单风险评估系统或平台支付设施而言,这两者都需要来自多个在线商店138的信息才能很好地执行。在一些实施例中,与其违反隔离原则,可能不如将这些组件移出商务管理引擎136并移入电子商务平台100内的它们自己的基础设施中。
在一些实施例中,电子商务平台100可以提供平台支付设施120,该平台支付设施是使用来自商务管理引擎136的数据但可能位于外部以便不违反隔离原则的组件的另一个示例。平台支付设施120可以允许与在线商店138交互的客户将其支付信息由商务管理引擎136安全地存储,使得客户只需输入支付信息一次。当客户访问不同的在线商店138时,即使他们以前从未到访,平台支付设施120也可以调用他们的信息以实现更快速和正确的结账。这可以提供跨平台网络效果,在这种情况下,电子商务平台100随着更多商家加入而变得对其商家更有用,比如因为有更多的客户因为客户购买方面的易用性而更频繁地结账。为了最大化该网络的效果,可以从在线商店的结账处取得给定客户的支付信息,从而允许信息跨在线商店138全局可用。使每个在线商店138能够连接到任何其他在线商店138以取得存储在那里的支付信息将是困难且容易出错的。因此,可以在商务管理引擎136的外部实施平台支付设施。
对于未包括在商务管理引擎136内的那些功能,应用程序142A-B提供了一种向电子商务平台100添加特征的方式。应用程序142A-B可能能够访问和修改商家在线商店138上的数据,通过管理员114执行任务,通过用户界面(其例如通过扩展/API呈现)为商家创建新流程等。可以使商家能够通过应用搜索、推荐和支持128来发现和安装应用程序142A-B。在一些实施例中,可以开发核心产品、核心扩展点、应用程序和管理员114以便一起工作。例如,可以在管理员114内部构建应用程序扩展点,使得可以通过应用程序来扩展核心特征,从而可以通过该扩展向商家提供功能。
在一些实施例中,应用程序142A-B可以通过接口140A-B向商家提供功能,比如应用程序142A-B能够向商家呈现交易数据(例如,App:“引擎,使用嵌入式app SDK在移动和web管理中呈现我的app数据”),和/或商务管理引擎136能够要求应用程序根据需求执行工作(引擎:“App,给我这次结账的本地税费计算”)。
应用程序142A-B可以支持在线商店138和渠道110A-B,提供商家支持,与其他服务集成等。在商务管理引擎136可以为在线商店138提供服务基础的情况下,应用程序142A-B可以为商家提供一种满足特定的、有时是独特的需求的方式。不同的商家将会有不同的需求,并且因此可以受益于不同的应用程序142A-B。可以通过电子商务平台100借助以下方式来更好地发现应用程序142A-B:通过应用程序分类法(类别)的开发来标记应用程序,该分类法使得能够根据应用程序为商家执行的功能类型;通过支持搜索、排名和推荐模型的应用程序数据服务;通过比如应用程序商店、主页信息卡、应用程序设置页面等应用程序发现界面等。
应用程序142A-B可以通过接口140A-B而连接到商务管理引擎136,比如使用API将通过商务管理引擎136可获得和在该商务管理引擎内可获得的功能和数据暴露于应用程序的功能(例如,通过REST、GraphQL等)。例如,电子商务平台100可以向商家和面向合作伙伴的产品和服务(比如包括应用程序扩展、过程流服务、面向开发者的资源等)提供API接口140A-B。随着客户更频繁地使用移动设备购物,与移动使用相关的应用程序142A-B可以受益于API的更广泛使用以支持相关增长的商务流量。通过应用程序和API的使用而提供的灵活性(其例如是为应用程序开发而提供的)使电子商务平台100能够更好地适应商家(以及通过内部API的内部开发者)的新的和独特的需求,而无需不断改变商务管理引擎136,从而在商家需要时提供他们所需之物。例如,运输服务122可以通过运输或承运商服务API与商务管理引擎136集成,从而使电子商务平台100能够提供运输服务功能而不直接影响在商务管理引擎136中运行的代码。
许多商家问题可以通过让合作伙伴通过应用程序开发改进和扩展商家工作流程来解决,比如与后台操作相关联的问题(面向商家的应用程序142A-B)和在线商店138中的问题(面向客户的应用程序142A-B)。作为开展业务的一部分,许多商家每天都会使用移动和网络相关应用程序来进行后台任务(例如,展销、库存、折扣、履行等)和在线商店任务(例如,与他们的在线商店相关的用于限时抢购、新产品供应等的应用程序),其中,应用程序142A-B通过扩展/API140A-B帮助使产品在快速增长的市场中易于查看和购买。在一些实施例中,可以向合作伙伴、应用程序开发者、内部应用程序设施等提供软件开发套件(SDK),比如通过在管理员114内创建为应用程序接口提供沙盒的框架。在一些实施例中,管理员114可能无法控制框架,也不知道框架内发生了什么。SDK可以与用户界面套件结合使用以产生模仿电子商务平台100的外观和感觉的界面,比如充当商务管理引擎136的扩展。
使用API的应用程序142A-B可以根据需求拉取数据,但通常应用程序还需要在发生更新时推送数据。更新事件可以在订阅模型中实施,例如客户创建、产品改变或订单取消。更新事件可以向商家提供关于商务管理引擎136的改变后的状态所需的更新,比如用于同步本地数据库、通知外部集成合作伙伴等。更新事件可以比如通过更新事件订阅来实现该功能,而不必一直轮询商务管理引擎136以检查更新。在一些实施例中,当与更新事件订阅相关的改变发生时,商务管理引擎136可以发布请求,比如发布到预定义的回调URL。该请求的主体可以包含对象的新状态和动作或事件的描述。更新事件订阅可以在管理员设施114中手动创建,或(例如,经由API 140A-B)自动创建。在一些实施例中,更新事件可以排队并与触发更新事件的状态改变异步地处理,这可以产生非实时分发的更新事件通知。
在一些实施例中,电子商务平台100可以提供应用程序搜索、推荐和支持128。应用程序搜索、推荐和支持128可以包括:用于帮助应用程序的开发的开发者产品和工具、应用程序数据面板(例如,向开发者提供开发界面、向管理员提供应用程序管理、向商家提供应用程序定制等)、用于安装和提供关于提供对应用程序142A-B的访问权限的设施(例如,用于公共访问,比如在安装之前必须满足标准的情况,或供商家私用),为了使商家易于搜索满足其在线商店138需求的应用程序142A-B的应用程序搜索、用于向商家提供关于他们可以如何通过其在线商店138改善用户体验的建议的应用程序推荐、对商务管理引擎136内的核心应用程序能力的描述等。这些支持设施可以被任何实体执行的应用程序开发使用,包括商家开发他们自己的应用程序142A-B、第三方开发者开发应用程序142A-B(例如,由商家签约、自行开发以提供给公众、签约以与电子商务平台100相关联地使用等)、或与电子商务平台100相关联的内部个人资源开发应用程序142A或142B。在一些实施例中,应用程序142A-B可以被分配应用程序标识符(ID),比如用于链接到应用程序(例如,通过API)、搜索应用程序、进行应用程序推荐等。
商务管理引擎136可以包括电子商务平台100的基本功能并且通过API 140A-B将这些功能暴露于应用程序142A-B。API 140A-B可以启用通过应用程序开发构建的不同类型的应用程序。应用程序142A-B可能能够满足商家的多种多样的需求,但可以大致分组为三类:面向客户的应用程序、面向商家的应用程序、集成应用程序等。面向客户的应用程序142A-B可以包括在线商店138或渠道110A-B,其是商家可以列出产品以供购买的地方(例如,在线商店、用于限时抢购的应用程序(例如,商家产品或来自第三方来源的机会性销售机会)、移动商店应用程序、社交媒体渠道、用于提供批发购买的应用程序等)。面向商家的应用程序142A-B可以包括允许商家管理其在线商店138(例如,通过与网络或网站相关或与移动设备相关的应用程序)、经营其业务(例如,通过与POS设备相关的应用程序)、发展其业务(例如,通过与运输(例如,代发货)相关的应用程序、使用自动化代理、使用过程流开发和改进)等的应用程序。集成应用程序可以包括提供参与业务经营的有用集成的应用程序,比如运输提供商112和支付网关。
在一些实施例中,应用程序开发者可以使用应用程序代理从外部位置获取数据并将数据显示于在线商店138的页面上。这些代理页面上的内容可以是动态的、可更新的等等。应用程序代理对于显示图像库、统计数据、定制表单和其他种类的动态内容可以很有用。电子商务平台100的核心应用程序结构可以允许在应用程序142A-B中构建越来越多的商家体验,使得商务管理引擎136可以保持专注于更常用的商务业务逻辑。
电子商务平台100通过精心策划的系统架构提供在线购物体验,该系统架构使商家能够以灵活且透明的方式与客户连接。通过实施例的示例购买工作流程可以更好地理解典型的客户体验,在示例购买工作流程中,客户在渠道110A-B上浏览商家的产品,将打算购买的产品添加到购物车,进行结账,并且为购物车的内容付款,从而为商家创建订单。然后,商家可以审查和履行(或取消)订单。然后将产品配送给客户。如果客户不满意,他们可能会将产品退回给商家。
在示例实施例中,客户可以在渠道110A-B上浏览商家的产品。渠道110A-B是客户可以查看和购买产品的地方。在一些实施例中,渠道110A-B可以被建模为应用程序142A-B(一中可能的例外情况是在线商店138,其被集成在商务管理引擎136中)。展销组件可以允许商家描述他们想要销售什么以及他们在哪里进行销售。产品与渠道之间的关联可以被建模为产品公布,并通过渠道应用程序(比如经由产品列举API)访问。产品可以具有许多选项(如尺寸和颜色)以及许多变型,这些变型将可用选项扩充为所有选项的特定组合,例如超小号绿色变型或大号蓝色变型。产品可能具有至少一个变型(例如,为没有任何选项的产品创建“默认变型”)。为了促进浏览和管理,可以将产品分组为集合、为产品提供产品标识符(例如,货号(SKU))等。产品的集合可以通过将产品手动分类为一种(例如,定制集合)、通过构建用于自动分类的规则集(例如,智能集合)等来构建。产品可以作为2D图像、3D图像、旋转视图图像通过虚拟现实或增强现实接口等进行查看。
在一些实施例中,客户可以将他们打算购买的东西添加到其购物车中(在替代实施例中,可以比如通过本文描述的购买按钮直接购买产品)。客户可以将产品变型添加到其购物车中。购物车模型可能是渠道特定的。在线商店138的购物车可以由多个购物车订单项组成,其中每个购物车订单项跟踪产品变型的数量。商家可以使用购物车脚本基于其购物车的内容向客户提供特别促销。由于将产品添加到购物车并不意味着来自客户或商家的任何承诺,并且购物车的预期有效期可能是几分钟(而不是几天)的数量级上,因此购物车可以被持久化到临时数据存储中。
然后客户进行结账。结账组件可以实施网络结账,作为面向客户的订单创建过程。结账API可以被提供为面向计算机的订单创建过程,某些渠道应用程序使用该过程来代表客户创建订单(例如,在销售点的情况)。结账可以从购物车创建并记录客户的信息,比如电子邮件地址、账单和运输详细信息。在结账时,商家会承诺定价。如果客户输入他们的联系信息但并未进行支付,则电子商务平台100可以提供让客户重新进行支付的机会(例如,在弃单功能中)。由于这些原因,结账的有效期可能比购物车长得多(数小时或甚至数天),并且因此会持续存在。结账可以基于客户的收货地址计算税费和运费。结账可以将税费的计算委托给税费组件,并将运费的计算委托给交付组件。定价组件可以使商家能够创建折扣代码(例如,在结账时输入会将新价格应用于结账中的货品的“秘密”字符串)。商家可以使用折扣来吸引客户并评估营销活动的表现。折扣和其他定制价格系统可以在同一平台部分之上实施,比如通过价格规则(例如,当满足时意味着一组权利的一组先决条件)来实施。例如,先决条件可以是比如“订单小计大于$100”或“运费低于$10”等项目,而权利可以是比如“整个订单打八折”或“产品X、Y和Z减$10”等项目。
然后,客户为其购物车中的内容付款,从而为商家创建订单。渠道110A-B可以使用商务管理引擎136在客户与商家之间转移钱款、货币或价值储存物(比如美元或加密货币)。可以在支付处理组件内实施与各种支付提供商(例如,在线支付系统、移动支付系统、数字钱包、信用卡网关等)的通信。可以通过卡服务器环境提供与支付网关106的实际交互。在一些实施例中,支付网关106可以接受国际支付,比如与领先的国际信用卡处理器集成。卡服务器环境可以包括卡服务器应用程序、卡接收器、托管字段等。这种环境可以充当敏感信用卡信息的安全门卫。在一些实施例中,大部分过程可以由支付处理作业来编排。商务管理引擎136可以支持许多其他支付方法,例如通过异地支付网关106(例如,客户被重定向到另一个网站)、手动方式(例如,现金)、在线支付方法(例如在线支付系统、移动支付系统、数字钱包、信用卡网关等)、礼品卡等支付。在结账过程结束时会创建订单。订单是商家与客户之间的销售合同,其中商家同意提供订单上列出的商品和服务(例如,订单订单项、运输订单项等)并且客户同意提供支付款项(含税)。该过程可以在销售组件中建模。不依赖商务管理引擎136结账的渠道110A-B可以使用订单API来创建订单。一旦创建了订单,就可以向客户发送订单确认通知,并且经由通知组件向商家发送订单下达通知。当支付处理作业开始时,可以保留库存以避免过度销售(例如,商家可以根据每种变型的库存策略来控制这种行为)。库存保留可能具有很短的时间跨度(几分钟),并且可能需要非常快速且可扩展以支持限时抢购(例如,比如以冲动购买为目标在短时间内提供折扣或促销)。如果支付失败,则取消保留。在支付成功并创建订单后,保留将被转换为分配到特定位置的长期库存承诺。库存组件可以记录变型的贮存位置,并跟踪启用了库存跟踪的变型的数量。该组件可以将产品变型(表示产品列举模板的面向客户的概念)与库存项目(表示数量和位置受到管理的项目的面向商家的概念)分离。库存水平组件可以跟踪可用于销售、对订单承诺或从库存转移组件(例如,供应商)传入的数量。
然后,商家可以审查和履行(或取消)订单。审查组件可以实施商家用于在实际履行订单之前确保订单是适合于履行的业务过程。订单可能是欺诈性的,可能需要验证(例如,ID检查),可能具有需要商家等待以确保他们将接收到其款项的支付方法等。订单风险模型中可以持续存在风险和推荐。订单风险可以由欺诈检测工具生成、由第三方通过订单风险API提交等。在进行履行之前,商家可能需要捕获支付信息(例如,信用卡信息)或等待接收支付信息(例如,经由银行转账、支票等)并将订单标记为已支付。现在,商家可以准备要交付的产品。在一些实施例中,该业务过程可以由履行组件来实施。履行组件可以基于库存位置和履行服务将订单的订单项分组形成逻辑履行工作单元。商家可以审查、调整工作单元并触发相关的履行服务,比如在商家拣选产品并将其打包到箱子中、购买运输标签并输入其跟踪编号时(例如,在商家所管理的位置)使用的手动履行服务,或是仅将项目标记为已履行。定制履行服务可以发送电子邮件(例如,不提供API连接的位置)。API履行服务可以触发第三方,其中第三方应用程序创建履行记录。传统履行服务可以触发从商务管理引擎136到第三方的定制API调用(例如,由亚马逊进行的履行)。礼品卡履行服务可以提供(例如,生成号码)并激活礼品卡。商家可以使用订单打印机应用程序来打印装箱单。履行过程可以在货品被打包到箱子中并且准备好运输时、运输时、跟踪时、交付时、验证为被客户接收到时等执行。
如果客户不满意,他们可以将(多个)产品退回给商家。商家“取消销售”货品的业务过程可以通过退货组件来实施。退货可以包括各种不同的动作,比如:重新入库,此时曾被售出的产品实际上返回企业并可再次销售;退款,部分或全部退还从客户处收取的钱款;核算调整,记录退款金额(例如,包括是否存在任何重新入库的费用、或商品是否未被退回并留在客户手中);等。退货可以表示对销售合同(例如,订单)的改变,并且在这种情况下,电子商务平台100可以使商家意识到关于法律义务(例如,关于税费)的合规问题。在一些实施例中,电子商务平台100可以使商家能够随时间的推移跟踪销售合同,比如通过销售模型组件(比如,记录发生在货品上的销售相关事件的基于日期的仅追加分类账)来实施。
第三方账户权限
电子商务平台100以及提供软件即服务(SaaS)的其他计算系统可以允许第三方开发者增强和/或补充可供用户使用的服务。例如,第三方开发者可以提供可供计算系统的用户使用的软件应用程序(其也被称为“外部应用程序”和“第三方应用程序”)。第三方开发者通常独立于计算系统,并且可以被称为计算系统的“合作伙伴”或“合作者”。
如上所述,图1的应用程序142B是可以增强和/或补充电子商务平台100的功能的外部应用程序的示例。例如,商家可以使用应用程序142B来帮助定制由电子商务平台100提供的服务,以满足他们的个体需求。例如,一些外部应用程序可以提供增强商家店面(比如在线商店138)的功能的面向客户的特征。可替代地或另外,外部应用程序可以提供帮助商家更高效地管理其业务的面向商家的特征。例如,这些外部应用程序可以提供增强图1的管理员114的功能的高级分析。
当商家需要对外部应用程序的支持时,在电子商务平台处实施的外部应用程序可能出现潜在问题。因为电子商务平台通常不是外部应用程序的开发者,所以电子商务平台可能无法提供解决商家在利用外部应用程序时可能遇到的所有问题的支持。对外部应用程序的支持的非限制性示例包括技术支持和面向业务的支持。然而,外部应用程序的第三方开发者可能能够向商家提供与其应用程序相关的支持。进一步地,商家可以与独立于电子商务平台并且独立于外部应用程序的开发者的其他第三方支持服务互动,以帮助解决外部应用程序的问题。这些第三方支持服务可以由商家通过技术支持市场找到。例如,第三方支持服务可以通过电子商务平台100的应用程序搜索、推荐和支持128获得。
一般而言,当本文在电子商务平台和其他计算系统的上下文中使用时,“第三方”是指独立于计算系统并且不是该计算系统的终端用户的任何个人、公司、企业等。第三方应用程序开发者和第三方支持服务是第三方的示例,但也可设想其他示例。
当商家从第三方接收到对外部应用程序的支持时,无论第三方是第三方应用程序开发者还是第三方支持服务,第三方可能都需要对与电子商务平台上的商家相关联的软件实例进行至少部分访问。例如,该软件实例可以对应于商家的在线商店。第三方对与商家相关联的软件实例的访问可以包括对商家管理员的资源的访问,这可以帮助第三方评估商家的问题并为商家提供合适的解决方案。例如,第三方可能能够看到(在外部应用程序本身上或在电子商务平台上)哪些商家配置已被启用,这可能影响外部应用程序的行为。对与电子商务平台上的商家相关联的软件实例的第三方访问可以被称为“合作者访问”。
如果没有谨慎地管理与电子商务平台上的商家相关联的软件实例的第三方访问,则第三方可能会滥用这种访问权。这种滥用的可能示例是第三方从商家的在线商店复制资产,包括产品信息(例如,用于帮助第三方开设竞争商店)和/或客户信息(例如,第三方可能出售的个人可识别信息(PII))。为了减少滥用,应该谨慎选择和实施限定第三方对软件实例的访问的账户权限。
手动选择第三方账户权限可能有显著的缺点。考虑这样的示例,即商家手动选择限定第三方对其电子商务平台上的软件实例的访问的账户权限。商家可能没有充分认识到授予第三方过于广泛的访问权所带来的风险,并且因此在选择账户权限时可能过于宽松。可替代地,商家在选择账户权限时可能过于谨慎,以至于第三方无法有效地提供支持。在另一示例中,电子商务平台的员工可能负责手动选择限定第三方对软件实例的访问的账户权限。虽然员工可能了解授予第三方过多或过少的访问权的风险,但员工可能对技术问题的理解不够透彻,无法就适当的权限范围做出明智的决策。这样,员工可能会过于信赖由第三方提出的请求。在第三示例中,第三方开发者可以直接请求一组特定的账户权限,可选地需要得到商家或电子商务平台的员工的批准。虽然第三方开发者最能理解问题并且因此理解解决该问题所需的访问级别,但是这并不能解决滥用问题,因为第三方开发者可能会故意请求过多的访问权以执行无关的恶意动作。第三方也可能并非恶意地请求过多的访问权。例如,第三方可能会无意中请求过多的访问权。
手动选择第三方账户权限时还存在额外的问题。在一些情况下,外部应用程序的范围和功能可能会随时间的推移而发生显著变化,这会导致第三方为外部应用程序提供支持可能需要的账户权限发生显著变化。每次更新应用程序时手动审查和更改与外部应用程序相关联的权限可能是一个艰巨且耗时的过程。此外,手动选择账户权限可能是一个缓慢的过程,这最终可能会延迟商家对第三方提供的有效支持和/或功能的访问。
虽然在上文中关于电子商务平台大体上描述了与生成第三方账户权限相关联的挑战,但是应当注意,其他计算机系统(例如,包括社交媒体平台、金融平台和医疗保健平台)可能会面临类似的挑战。需要系统和方法来使生成账户权限的过程自动化,以便高效地使第三方能够访问计算系统上的软件实例,同时确保账户权限的范围是适当的。
图3展示了图1的电子商务平台100,但包括账户权限引擎300。账户权限引擎300是用于生成第三方(例如,第三方应用程序开发者和/或第三方支持服务)的账户权限的计算机实施的系统的示例。在一些实施方式中,账户权限引擎300自动生成账户权限以使得第三方能够访问与电子商务平台100上的商家相关联的软件实例。这样,账户权限引擎300可以减少或消除手动选择第三方账户权限的需求。关于账户权限引擎的更多细节可以在本文其他地方找到。
虽然账户权限引擎300在图3中被展示为电子商务平台100的独立组件,但这仅是示例。账户权限引擎也可以或替代地由电子商务平台100的另一个组件提供,或者在平台100外部作为独立组件或服务提供。在一些实施例中,商务管理引擎136提供账户权限引擎。电子商务平台100可以包括由一方或多方提供的多个账户权限引擎。该多个账户权限引擎可以以相同的方式、以类似的方式和/或以不同的方式实施。
账户权限引擎300可以实施本文描述的功能中的至少一些。虽然下面描述的实施例可以与电子商务平台(比如(但不限于)电子商务平台100)相关联地实施,但是下面描述的实施例不限于图1至图3的特定电子商务平台100。进一步地,本文描述的实施例不一定需要与电子商务平台相关联地实施,或完全不需要涉及电子商务平台。其他计算系统可以实施本文披露的实施例。这种计算系统的示例包括社交媒体平台、金融平台和医疗保健平台等等。
基于API范围的账户权限
如本文其他地方所述,外部应用程序可以经由接口与计算系统交互。通过示例的方式,图1的接口140B可以使得应用程序142B能够与电子商务平台100交互。应用程序编程接口(API)是可以由计算系统实施的接口的示例。通过API,外部应用程序可以访问和修改计算系统上的数据,并且可以与计算系统一起执行任务。
API参考、API指南和/或API文档可以用于限定外部应用程序可以如何经由API与计算系统交互。例如,API参考可以限定外部应用程序可以调用或请求的API的功能(其也可以被称为“API功能”或“API方法”)、以及计算系统将提供的响应的格式。在一些实施例中,计算系统可以实施多个API,每个API具有不同的一组API功能。在电子商务平台的情况下,可能的API功能的非限制性示例包括:
·分析功能,其可以用于提供详细报告以帮助商家分析其业务的实行情况;
·客户功能,其可以帮助管理商家的客户数据;
·折扣功能,其可以帮助提供灵活的折扣;
·事件功能,其可以帮助获取事件数据以使外部应用程序与商家的在线商店保持同步;
·库存功能,其可以帮助管理商家跨多个位置的库存水平;
·在线商店功能,其可以帮助更新商家的在线店面及其内容;
·订单功能,其可以帮助提供接收、处理和管理订单的新方式;
·产品功能,其可以帮助访问和操纵商家的产品目录;以及
·运输和履行功能,其可以帮助在结账时示出自定义运费并管理商家的履行。
本披露内容的一方面涉及使用外部应用程序的API权限和/或API交互来确定账户权限。这些账户权限可以是例如通过为外部应用程序提供支持来为与外部应用程序相关联的第三方账户生成的。API权限涉及准许外部应用程序调用的API功能,而API交互涉及由外部应用程序进行的实际API调用。与外部应用程序相关联的API交互和/或API权限可以用于确定外部应用程序的“API范围”。API范围可以指示计算系统的与外部应用程序相关的资源(包括计算系统上的一个或多个软件实例的资源)。这样,在一些实施例中,API范围用于帮助确定与外部应用程序相关联的第三方账户的账户权限的适当范围。
基于API范围的第三方账户权限可能使得能够访问计算系统的与API范围相对应的资源,同时限制访问与API范围不对应的资源。通过示例的方式,考虑支持电子商务平台的外部应用程序的第三方生成账户权限的情况。如果外部应用程序不使用和/或没有对由电子商务平台实施的API的任何客户功能的访问权,则外部应用程序可能无法访问电子商务平台上的任何客户信息。这样,第三方可能不需要访问商家的客户信息来为外部应用程序提供有效的支持,并且第三方的账户权限可能不包括对客户信息的访问权。相反,如果外部应用程序使用或被准许使用API的一个或多个产品功能,则第三方可以被提供对商家的产品信息的访问权,以便为外部应用程序提供有效的支持。从第三方的角度来看,他们可以被提供合作者账户,该合作者账户具有对与商家管理员的“产品”部分看起来相似的屏幕页面的访问权。但是,可以为第三方禁用到商家管理员的“客户”部分的任何链接。此外,可以省略或模糊处理通常会出现在“产品”部分内的任何客户数据(例如,最近购买产品的客户列表)。
示例系统和方法
图4是展示了根据实施例的用于基于API范围生成账户权限的系统400的框图。系统400包括账户权限引擎402、计算系统420、另一个计算系统430、用户设备440、第三方设备450和网络460。
计算系统420支持、托管或以其他方式实施API 422和至少一个软件实例424。API422是允许外部应用程序与计算系统420交互的接口的示例。API 422实际上可能是由计算系统420实施的一组多个API,其中,这些API中的每一个都可以对应于不同的一组API功能。在其他实施例中,API 422可以用不同类型的接口来代替。软件实例424是与计算系统420的一个或多个用户相关联的服务实例的示例。通常,计算系统420可以实施可以与不同用户相关联的任何数量的软件实例。
在一些实施方式中,计算系统420是或包括电子商务平台。在这些实施方式中,软件实例424可以是由计算系统420支持的在线商店,并且用户设备440可以与拥有该在线商店的商家相关联。例如,计算系统420可以类似于电子商务平台100,软件实例424可以类似于在线商店138,并且用户设备440可以类似于商家设备102。
计算系统430独立于计算系统420,但支持、托管或以其他方式实施增强和/或补充计算系统420的功能的至少一个外部应用程序432。外部应用程序432是经由API 422与计算系统420交互的软件应用程序的示例。在一些情况下,外部应用程序432可以由软件实例424安装和实施。例如,在软件实例424是在线商店的情况下,外部应用程序432可以被实施为提供在线商店的新的和/或改进的特征。通常,计算系统430可以实施可以与不同的多方相关联的任何数量的软件应用程序。
外部应用程序432可以以某种方式与第三方设备450相关联。例如,第三方设备450可以由外部应用程序432的开发者拥有和/或操作。可替代地或另外,第三方设备450可以由为外部应用程序432提供支持服务的支持人员拥有和/或操作。
计算系统420、430的结构是特定于实施方式的。例如,计算系统420、430可以包括或实施处理器、存储器、服务器、客户端、网络接口、网络基础设施、移动计算平台、云计算平台、和/或固定计算平台。
设备440、450中的任一者或两者可以是移动电话、平板计算机、膝上型计算机、或计算机。如所展示的,用户设备440包括处理器442、存储器444、用户接口446和网络接口448。第三方设备450也包括处理器452、存储器454、用户接口456和网络接口458。下面将通过示例的方式来描述用户设备440。然而,应当注意,第三方设备450可以以相同或相似的方式实施。
用户接口446的示例是显示屏(其可以是触摸屏)、手势识别系统、键盘和/或鼠标。网络接口448被提供用于通过网络460进行通信。网络接口448的结构将取决于用户设备440如何与网络460进行接口连接。例如,如果用户设备440是移动电话或平板计算机,则网络接口448可以包括具有天线的发射器/接收器以便向/从网络460发送和接收无线传输。如果用户设备440是利用网络电缆连接到网络的个人计算机,则网络接口448可以包括例如网络接口卡(NIC)、计算机端口(例如,插头或电缆所连接的实体插座)、和/或网络套接字。处理器442直接执行或指示由用户设备440执行的所有操作。这些操作的示例包括处理从用户接口446接收的用户输入、准备要通过网络460进行传输的信息、处理通过网络460接收的数据、以及指示显示屏显示信息。处理器442可以由执行存储在存储器444中的指令的一个或多个处理器来实施。可替代地,处理器442中的一些或全部可以使用专用的电路系统(比如专用集成电路(ASIC)、图形处理单元(GPU)或经编程的现场可编程门阵列(FPGA))来实施。
在图4中,通过示例的方式示出了用户设备和第三方设备的数量。在系统400中可以实施任何数量的这样的设备。
网络460可以是在不同设备之间实施有线和/或无线连接的计算机网络,这些不同设备例如包括账户权限引擎402、计算系统420、430、用户设备440和第三方设备450中的任何两者或更多者。网络460可以实施本领域已知的任何通信协议。通信协议的非限制性示例包括局域网(LAN)、无线LAN、互联网协议(IP)网络和蜂窝网络。
账户权限引擎402被配置为为计算系统420上的一个或多个账户生成账户权限。这些账户权限可以包括但不限于第三方账户权限。第三方账户权限可以使得第三方能够访问计算系统420的至少一些资源。在一些情况下,第三方可以使用第三方账户权限为计算系统420的用户提供对外部应用程序432的支持。例如,第三方账户权限可以允许第三方设备450访问软件实例424,以帮助向软件实例424提供定制的支持。如下文进一步详细讨论的,第三方账户权限可以由账户权限引擎402基于外部应用程序432的API范围而生成。
如所展示的,账户权限引擎402包括处理器404、存储器406和网络接口408。处理器404可以由执行存储在存储器406或另一计算机可读介质中的指令的一个或多个处理器来实施。这些指令可以实施本文描述的任何方法。可替代地,处理器404中的一些或全部可以使用专用的电路系统(比如ASIC、GPU或经编程的FPGA)来实施。
网络接口408被提供用于通过网络460进行通信。网络接口408的结构是特定于实施方式的。例如,网络接口408可以包括NIC、计算机端口和/或网络套接字。
存储器406存储API记录410、API映射416和账户权限记录418。API记录410包括API权限记录412和API交互记录414两者。
API权限记录412存储与计算系统420相关联的一个或多个外部应用程序的API权限列表。例如,这些外部应用程序可以包括由计算系统420上的软件实例(比如由软件实例424)来实施的应用程序。与外部应用程序相关联的API权限(其也可以称为“API访问权”或“API访问范围”)限定了外部应用程序被授权访问或调用的API 422的功能。
API权限记录412包括外部应用程序432的API权限。这些权限可以由计算系统420在审查外部应用程序432期间授予。例如,在准许外部应用程序432访问API 422的功能之前,计算系统420可以先审查外部应用程序432以确保其满足特定要求。在审查期间,计算系统420可以基于外部应用程序432需要或打算使用的API 422的功能向外部应用程序432授予一组API权限。可替代地或另外,计算系统420的用户可以在购买和/或实施外部应用程序432时授予API权限。例如,与软件实例424相关联的用户可以授权外部应用程序432对软件实例424的特定资源的访问权,以便使用外部应用程序432。
例如,考虑计算系统420是电子商务平台并且外部应用程序432为商家执行销售分析的情况。在审查外部应用程序432期间,计算系统420可以确定外部应用程序432实施其销售分析所需的API权限。例如,API权限可以包括对API 422的销售功能和分析功能的访问权,该访问权允许外部应用程序432对计算系统420上的销售信息进行读取和/或写入。
可以在任一粒度级别上限定API权限。在一些情况下,外部应用程序432的第三方开发者可以单独请求对API 422的每个期望的功能的访问权。在其他情况下,第三方开发者可以请求对API 422中的所有功能的访问权,这些功能可以包括外部应用程序432实际上没有调用的一些功能。
可替代地,也可以使用基于工作流(或基于任务流)的方法来授予API权限。在基于工作流的方法中,可以在计算系统420处针对不同类型的工作流限定一组API功能。再一次考虑计算系统420是电子商务平台并且外部应用程序432为商家执行销售分析的情况。计算系统420可以限定用于进行销售分析的一组API功能。外部应用程序432的第三方开发者可以请求对该组API功能的访问权,这向外部应用程序432提供了对执行销售分析工作流可能需要的API 422的大部分或全部功能的访问权。
虽然API权限可以指示准许外部应用程序调用的API功能,但API权限可能不会直接对应于外部应用程序实际上调用的实际API功能。另一方面,API交互可以提供由外部应用程序调用的实际API功能的指示。
API交互记录414存储有涉及API 422和外部应用程序(包括但不限于外部应用程序432)的API交互的列表。API交互可以通过监测或跟踪由API 422从执行外部应用程序的设备接收的API调用来确定。这可以包括跟踪在API调用中访问的API 422的功能、跟踪API调用的定时或顺序、跟踪API调用中包括的内容、和/或跟踪来自计算系统420的响应的内容。API交互记录414可以存储通过跟踪API调用获得的任何、部分或全部信息。以这种方式,API交互记录414指示由外部应用程序生成的实际API调用。
在一些实施方式中,API交互记录414可以使用基于工作流的方法来存储API交互。可以在计算系统420处针对不同类型的工作流限定API调用的顺序。可以考虑以与给定工作流相同或相似的顺序发送API调用的外部应用程序实施该工作流。记录和分析由外部应用程序进行的API调用的内容可以提供正在由该外部应用程序实施的工作流的指示。例如,如果软件实例424是在线商店并且API 422的订单功能由外部应用程序432用于修改在线商店中的订单状态(例如,将订单状态从“未履行”改变为“已履行”),则外部应用程序432可能正在实施基于履行的工作流而不是与订单功能的其他方面相关的工作流。
在一些实施方式中,API交互记录414是按照计算系统420的不同软件实例来组织的。例如,由一个或多个外部应用程序进行的、与软件实例424的资源有关的API调用可以被组织在特定于软件实例424的记录中。这样,API交互记录414可以包括针对不同软件实例的不同API交互记录,这可以帮助针对软件实例定制第三方账户权限。例如,一些外部应用程序可以执行多个工作流,这些工作流并非全部都会被计算系统420上的每个软件实例使用。一些软件实例可能仅使用工作流的子集。由软件实例使用的工作流子集可以从与该软件实例相关的API交互中明显看出或推断出来。以这种方式,特定于特定软件实例的API交互的记录可以指示该软件实例所使用的外部应用程序的实际工作流,而与外部应用程序的其他能力和/或其他软件实例可能使用的特征无关。
考虑计算系统420是电子商务平台并且外部应用程序432为商家执行销售分析工作流的情况。外部应用程序432可能也执行与客户分析相关的工作流,但是软件实例424可能仅利用用于进行销售分析的工作流(这例如凭借通过外部应用程序432而对软件实例424的用户可用的启用设置来实现)。这里,与软件实例424相关的API交互可以指示外部应用程序432仅由软件实例424为进行销售分析工作流而实施。
虽然API权限记录412和API交互记录414在图4中分开示出,但是应当注意,这些记录可能替代地被组合在单个记录中。例如,API权限和API交互可以一起存储在单个记录中,该单个记录可选地特定于单个外部应用程序和/或单个软件实例。
例如,API记录410可以用于确定计算系统420的外部应用程序(比如外部应用程序432)的API范围。API范围可以基于API权限记录412和API交互记录414中的一者或两者来确定。
API映射416限定了将API范围与计算系统420上的账户权限相关联的一种或多种关系。在一些实施方式中,API映射416包括用于限定这些关系的一个或多个功能、模型和/或查找表。一旦确定了外部应用程序的API范围,API映射416就可以用于帮助获得与外部应用程序相关联的第三方的对应的一组账户权限。
在一些实施方式中,API映射416包括(或至少基于)API 422的部分(其也可以被称为“API表面积”)与计算系统420的资源之间的映射。该映射可以指示计算系统420的与API422的不同功能相对应的资源。例如,API 422的每个功能可以使得能够访问由计算系统420提供的一个或多个资源。API 422的每个功能提供对哪些资源的访问权可以由API映射416来指定。
API映射416还或替代地可以包括API 422的部分与计算系统420上的工作流的映射。例如,可以将API功能的组或序列映射到计算系统420上的工作流。然后,可以将该工作流映射到计算系统420上的启用该工作流的一组资源。
考虑计算系统420是电子商务平台的示例。API 422的产品功能可以与计算系统420上商家管理员的“展销”部分和“产品”部分交互,从而允许创建新产品和产品变型并允许调整库存的数量和位置。以这种方式,商家管理员的“展销”部分和“产品”部分成为可以映射到API 422的产品功能的资源。在一些情况下,商家管理员的“展销”部分和“产品”部分可以映射到API 422的不同产品功能。例如,API 422的用于调整库存的功能可以仅映射到“展销”部分,而API 422的用于创建新产品的功能可以仅映射到“产品”部分。在另一示例中,API 422的客户功能可以映射到计算系统420上商家管理员的“客户”部分。
除了将外部应用程序的API范围映射到计算系统420的一组资源和/或工作流之外,API映射416还可以将该组资源和/或工作流与计算系统420上的账户的账户权限关联。以这种方式,支持外部应用程序的第三方的账户权限可以基于外部应用程序的API范围而生成。这些账户权限可以为第三方提供对与外部应用程序的API范围相对应的一组资源的访问权。例如,当计算系统420是电子商务平台并且外部应用程序432的API范围包括API422的客户功能时,为外部应用程序432提供支持的第三方的账户权限可以使得能够访问商家管理员的“客户”部分。
在一些实施方式中,API映射416可以包括多个不同的映射。一个映射可以将API422的部分与计算系统420上的资源和/或工作流关联,而另一个映射可以将计算系统420上的资源和/或工作流与账户权限关联。
API映射416中包括的一个或多个映射可以手动生成。可替代地或另外,可以使用算法。在一些实施方式中,该算法是枚举算法,其生成与给定API功能相对应的一组可能的资源。在一些实施方式中,该算法可以是机器学习(ML)模型或可以从先前手动生成的账户权限中学习的其他形式的人工智能(AI)。例如,可以使用训练数据集训练ML模型,该训练数据集包括与多个外部应用程序相关联的API交互和/或API权限、以及手动生成的支持外部应用程序的第三方的账户权限。然后,经过训练的ML模型可以使用API交互和/或API权限作为输入来生成账户权限。ML模型结构的非限制性示例包括人工神经网络、决策树、支持向量机、贝叶斯网络和遗传算法。用于ML模型的训练方法的非限制性示例包括监督学习、无监督学习、强化学习、自学习、特征学习和稀疏字典学习。
账户权限记录418包括计算系统420上的一个或多个账户的账户权限的列表。例如,这些账户权限中的至少一些可以由账户权限引擎402使用API记录410和/或API映射416来生成。
在一些实施方式中,第三方账户权限存储在账户权限记录418中。这些第三方账户权限可以基于对应的外部应用程序的API范围来确定。例如,如果第三方账户用于为外部应用程序432提供支持,则可以基于外部应用程序432的API范围来获得该第三方账户的账户权限。
在一些实施方式中,第三方账户权限可以以特定于软件实例的方式来生成。例如,与外部应用程序432相关联的第三方账户权限可以仅基于涉及外部应用程序432和软件实例424的API交互来生成。涉及其他软件实例的API交互可以忽略不计。
如上所述,API交互可以以特定于工作流的方式来确定,并且因此,第三方账户权限也可以基于已观察到的外部应用程序所使用的工作流来生成。基于工作流的第三方权限可以基于跨计算系统420上的所有软件实例观察到的交互来确定。可替代地,基于工作流的第三方权限可以以如上所述的特定于软件实例的方式来确定。考虑计算系统420是电子商务平台并且软件实例424是商家在线商店的情况。如果商家仅利用外部应用程序432的一些工作流,则为外部应用程序432提供支持的第三方可能仅需要对在线商店的与商家实际使用的工作流相对应的部分的访问权。第三方可能被限制访问在线商店的其他部分,即使外部应用程序432确实访问电子商务平台上其他在线商店的这些部分。
基于API范围的第三方账户权限可以规定第三方是否具有对计算系统420上的特定数据的访问权。考虑计算系统420是电子商务平台并且软件实例424是商家在线商店的情况。即使第三方能够访问商家在线商店的“客户”部分,第三方可能也无法访问该部分中包含的所有客户信息。任何、部分或全部客户信息可能被掩藏、加扰或替换为虚假信息。客户信息可以在各种不同粒度级别中的任一级别上受到保护。例如,第三方可能能够访问“客户”部分上的客户发货信息,而所有其他客户信息均被掩藏。
第三方对计算系统420中的个人可识别信息(PII)和/或其他个人信息的访问权可以基于API范围来确定。在一些情况下,只有在对应的外部应用程序的API范围包括API 422的特定功能时,第三方账户权限才可能包括对PII的访问权。例如,在计算系统420是电子商务平台并且软件实例424是商家在线商店的情况下,外部应用程序432的API范围可以包括API 422的订单功能,这些订单功能提供对商家在线商店的“订单”页面的访问权。然而,如果API范围不包括API 422的客户功能,则“订单”页面可能不会显示“订单”页面中通常包括的任何客户PII。
在一些实施方式中,第三方对计算系统420上的数据的访问权可能限于某个时间段。例如,第三方账户权限可能仅允许访问在过去30天的时间段内收集的数据,以避免授予第三方对完整数据集的访问权。第三方数据访问权的时间段可以基于外部应用程序的API权限来确定。例如,外部应用程序432的API权限可以指示仅准许外部应用程序432在一年之内调用API 422的特定功能。在该示例中,支持外部应用程序432的第三方账户权限可能仅使得能够访问在该年中收集的与API 422的特定功能相关联的数据。
与外部应用程序相关联的API交互还或替代地可以用于确定访问数据的一个或多个时间段。例如,API交互可以指示外部应用程序432实际上使用API 422的特定功能访问数据的时间段。然后,第三方账户权限可能将对与API 422的该特定功能相关联的数据的访问权限制在同一时间段内。
可替代地或另外,用于限制数据访问的时间段可以基于外部应用程序安装的日期、和/或外部应用程序向计算系统420注册的日期、或外部应用程序向计算系统420上的特定软件实例注册的日期来确定。例如,如果外部应用程序432是由软件实例424在仅一周前安装的,则与外部应用程序432相关联的第三方账户权限可能仅使得能够访问在该周内收集的软件实例数据。
有利地,API记录410可以提供对合适的第三方账户权限的客观指示。使用从API记录410得出的API范围可能减少或甚至消除对凭借人为判断生成账户权限的依赖性,并且因此可能不容易提供过于广泛或过于狭隘的账户权限。此外,API范围可以允许使用API映射416自动生成第三方账户权限。例如,在第三方请求用于为外部应用程序432提供技术支持的账户的情况下,可以访问API权限记录412、API交互记录414和/或API映射416并将这些用于确定第三方的账户权限,只需很少的人工干预或甚至无需人工干预。随着外部应用程序432被授予调用API 422的其他功能的权限和/或随着从外部应用程序432接收到新的API调用,API权限记录412和/或API交互记录414可以随时间的推移而进行更新。然后,第三方账户权限可以随着API权限记录412和/或API交互记录414的改变而自动更新。
还设想了账户权限引擎402的其他实施方式。在一些实施方式中,账户权限引擎402至少部分地由计算系统420提供,要么作为计算系统420的核心功能,要么作为由计算系统420支持的应用程序或服务。在一些实施方式中,例如,账户权限引擎402至少部分地由用户设备(比如,用户设备440)实施。在一些实施方式中,账户权限引擎402被实施为用于生成和管理账户权限的独立服务。虽然账户权限引擎402被示出为单个组件,但是账户权限引擎可以替代地由经由网络通信的多个不同组件来提供。
图5是展示了根据实施例的用于基于API范围生成账户权限的方法500的流程图。方法500将被描述为由账户权限引擎402执行,以便为计算系统420上的账户生成一组账户权限。然而,应当注意,这仅是方法500的一个示例实施方式。
计算系统420上的账户可以允许第三方或其他用户访问计算系统420的至少一些资源。例如,该账户可以是计算系统420的合作者账户。在一些实施方式中,第三方设备450可以登录该账户以访问计算系统420。该组账户权限可以限定在计算系统420上的用户账户会话期间用户访问的程度。
在一些实施方式中,使用方法500生成的一组账户权限可能至少部分地与计算系统420上的软件实例424相关。例如,该组账户权限可以允许该账户访问软件实例424的至少一部分。在生成使得能够访问软件实例424的该组账户权限之前,账户权限引擎402可以执行可选步骤502以确定软件实例424与账户之间是否存在关系。这种关系的示例是账户被用于为软件实例424提供对外部应用程序432的支持。在该示例中,软件实例424(或与软件实例424相关联的用户)可以安装和/或实施外部应用程序432并且可能遭遇外部应用程序432的问题。
步骤502可以包括处理器404确定软件实例424实施外部应用程序432并且账户对应于外部应用程序432的开发者。可替代地或另外,步骤502可以包括处理器404确定账户与外部应用程序432的支持服务相关联。可以分析该账户与软件实例424之间的消息和/或其他在线活动,以确定软件实例424已经与该账户(或与该账户相关联的第三方)互动以获得对外部应用程序432的支持。可替代地或另外,步骤502可以包括处理器404接收软件实例424与该账户之间存在关系的明确确认。例如,可以使用用户设备440来生成该确认和/或将该确认传输到账户权限引擎402。
应当注意,步骤502可能不会在方法500的所有实施方式中都被执行。例如,该组账户权限可能与计算系统420上的所有软件实例相关,或者不与任何特定软件实例相关。这样,可能不需要确定外部应用程序432与各个软件实例之间是否存在任何关系。
步骤504包括处理器404获得API交互记录,该API交互记录涉及外部应用程序432访问计算系统420的第一组资源。例如,该API交互记录可以从API交互记录414获得。应当注意,第一组资源可能并不是计算系统420的全部资源,而可能替代地是计算系统420的全部资源的子集。例如,第一组资源可以包括可经由API交互记录中的API调用而访问的数据,但无法包括不可经由API交互记录中的API调用而访问的数据。第一组资源可以与计算系统420上的一个或多个软件实例有关。
在一些实施方式中,API交互记录是通过监测由计算系统420从正在执行外部应用程序432的计算系统430(和/或另一个外部设备)接收的API调用来获得的。监测API调用可以包括监测在API调用中访问的API 422的功能、监测API调用的时间段或顺序、监测API调用中包括的内容、和/或监测来自计算系统420的响应的内容。
步骤506包括处理器404获得外部应用程序432的API权限记录。例如,该API权限记录可以从API权限记录412获得。在一些实施方式中,API权限记录可以指示外部应用程序432可以经由API 422访问的计算系统420的第二组资源,该第二组资源可以是计算系统420的全部资源的子集。应当注意,第一组资源与第二组资源之间可以存在至少部分重叠。
步骤508包括处理器404基于在步骤504中获得的API交互记录和/或基于在步骤506中获得的API权限记录为账户生成一组账户权限。当步骤508是基于API交互记录时,该组账户权限可以允许账户访问计算系统420的第一组资源。该组账户权限还或替代地可以限制账户访问计算系统420的与API交互记录不对应的其他资源。类似地,当步骤508是基于API权限记录时,该组账户权限可以允许账户访问计算系统420的第二组资源,和/或可以限制账户访问计算系统420的与API权限记录不对应的其他资源。
应当注意,步骤508可以仅基于在步骤504中获得的API交互记录或仅基于根据步骤506的API权限记录来执行,并且因此在方法500中可能仅执行步骤504、506之一。
在一些实施方式中,步骤508包括将API交互记录映射到第一组资源。该映射可以基于API映射416和/或所存储的API 422的部分与计算系统420的资源之间的其他映射来执行。API 422的这些部分可以包括但不限于API 422的不同功能。根据一个示例,步骤508可以包括将API交互记录中的特定API交互映射到第一组资源中的特定资源,并将使得账户能够访问该特定资源的至少一个权限添加到该组账户权限中。可以针对API交互记录中的每个API交互执行该操作以形成该组账户权限。然而,应当注意,一些API交互可能未映射到计算系统420上的资源,和/或一些API交互可能映射到计算系统420上的相同资源。因此,API交互记录中的一些API交互可能对该组账户权限没有贡献。
步骤508不限于将各个API交互映射到计算系统420的资源。例如,在一些情况下,步骤508可以包括将API交互记录中的一组API交互映射到计算系统420的工作流,并将使得账户能够执行该工作流的至少一个权限添加到该组账户权限中。该映射可以基于API映射416和/或所存储的API 422的部分与计算系统420的工作流之间的其他映射来执行。
在一些实施方式中,API交互记录中的一个特定API交互(或一组API交互)对应于使得能够访问计算系统420上的数据集的资源。特定API交互还可以具有相关联的时间段。例如,API交互记录可以指示外部应用程序432仅在几天、几周、几个月或几年的时间段内使用特定API交互来访问数据集。于是,该组账户权限则可能仅使得能够访问数据集中的与该时间段相对应的部分。例如,该组账户权限中的至少一个账户权限可以使得能够访问数据集,但将账户的访问权限制为数据集中的与该时间段相对应的部分。以这种方式,该至少一个账户权限可能仅允许账户访问外部应用程序432也能够经由API 422访问的数据。这可以避免披露比先前已经披露的更多的数据。
在一些实施方式中,步骤508包括将API权限记录映射到计算系统420上的第二组资源和/或工作流。该映射可以使用API映射416和/或使用所存储的API 422的部分与计算系统420上的资源和/或工作流之间的其他映射来执行。例如,步骤508可以包括将API权限记录中的特定API权限映射到第二组资源中的特定资源,并将使得账户能够访问该特定资源的至少一个权限添加到组账户权限中。可替代地或另外,步骤508可以包括将API权限记录中的一组API权限映射到计算系统420的工作流,并将使得账户能够执行该工作流的至少一个权限添加到该组账户权限中。
在一些实施方式中,API权限记录包括使得能够访问计算系统420上的数据集的特定API权限。如果API权限记录还包括针对该特定API权限的时间段,则账户权限记录中的至少一个权限可以将账户的访问权限制为数据集中的与该时间段相对应的部分。
如上所述,在步骤508中生成的该组账户权限可以允许账户访问软件实例424。在一些实施方式中,该组账户权限可以特定于或限于软件实例424。例如,第一组资源和/或第二组资源可以特定于软件实例424。这样,该组账户权限可能不允许访问计算系统420上的其他软件实例。
在一些实施方式中,在步骤508中确定的该组账户权限可以仅形成账户的全部账户权限的一部分。例如,如果账户与特定用户相关联,则可以将特定于用户的账户权限层叠到该组账户权限上。特定于用户的账户权限可以补充和/或限制该组账户权限中的账户权限。
在生成一组账户权限以允许账户为软件实例424提供对外部应用程序432的支持的情况下,该组账户权限可以在一段时间之后终止。例如,在已经解决了用户遭遇的外部应用程序432的问题之后,账户权限引擎402可以终止账户的该组账户权限。
有利地,方法500可以使得账户权限能够由账户权限引擎402自动生成,而无需人为干预。这可以提高可以生成账户权限的速度,并且还可以消除可能对账户权限的生成产生负面影响的人为偏见。进一步地,API交互和/或API权限的使用可以为该组账户权限提供合适的范围。
进一步示例
图6是展示了根据实施例的外部应用程序600和第三方602与电子商务平台610交互的框图。在所展示的示例中,外部应用程序600为电子商务平台610上的在线商店(包括在线商店630)提供销售分析工作流。为了执行销售分析工作流,外部应用程序600调用由电子商务平台610提供的API 620的分析功能622和产品功能624。分析功能622和产品功能624使得能够访问在线商店630的分析资源632、产品资源634和订单资源636。外部应用程序600在执行其销售分析工作流时可以对在线商店630的资源632、634、636进行写入和/或读取。
第三方602也可以经由合作者账户626来访问在线商店630的分析资源632、产品资源634和订单资源636。例如,第三方602可以使用设备登录到合作者账户626并访问资源632、634、636。在一些实施方式中,第三方602为外部应用程序600提供支持,并且被提供合作者账户626以便更有效地提供这种支持。例如,访问资源632、634、636可以允许第三方602更好地理解与在线商店630相关联的商家在使用外部应用程序600时所面临的问题,和/或帮助商家纠正该问题。
在一些实施方式中,合作者账户626的账户权限是使用图5的方法500生成的。例如,可以在方法500的步骤504中获得涉及外部应用程序600和电子商务平台610的API交互记录。可替代地或另外,可以在方法500的步骤506中获得授予外部应用程序600的API权限的记录。API交互记录和/或API权限记录可以用于确定外部应用程序600的API范围。如所展示的,外部应用程序600具有对API 620的分析功能622和产品功能624的访问权,并调用这些功能来实施其销售分析工作流。这样,外部应用程序600的API范围可能包括分析功能622和产品功能624。在方法500的步骤508中,可以将该API范围映射到在线商店630的分析资源632、产品资源634和订单资源636。然后,可能生成合作者账户626的账户权限以包括对在线商店630的资源632、634、636的访问权,并且可能限制对在线商店630的其他资源的访问权。
在一些实施方式中,使用方法500生成的账户权限可能特定于在线商店630。例如,合作者账户626可能没有对其他在线商店的分析资源、产品资源和订单资源的访问权。
在一些实施方式中,外部应用程序600的API范围可能仅包括在线商店630的资源632、634、636的子集,而不是资源632、634、636的全部。类似地,合作者账户626的账户权限可能仅使得能够访问资源632、634、636的相同子集。
在一些实施方式中,在为合作者账户626生成账户权限之前,执行方法500的步骤502以确认合作者账户626与在线商店630之间存在关系。步骤502可以包括确定合作者账户626被第三方602用来为在线商店630提供对外部应用程序600的支持。在一个示例中,外部应用程序600可能已经由第三方602开发。然后,可以基于以下认识建立合作者账户626与在线商店630之间的关系:在线商店630正在使用由第三方602开发的外部应用程序600,并且合作者账户626与第三方602相关联。在另一示例中,第三方602为外部应用程序600提供支持服务。合作者账户626与在线商店630之间的关系可以通过在线商店630的商家与第三方602互动以获得支持服务来证明。例如,该关系可以基于在电子商务平台610中商家为获得应用程序支持而在市场上进行的活动、和/或通过商家与第三方602之间的消息来建立。如果无法自动确定在线商店630与第三方602之间的关系,则可以要求在线商店630的商家提供对于应当授予第三方602对在线商店630的访问权的明确确认。
图7和图8展示了可由第三方602使用合作者账户626在电子商务平台610上访问的示例屏幕页面。这些屏幕页面提供对在线商店630的分析资源632、产品资源634和订单资源636中的至少一些资源的访问。
图7展示了使用合作者账户626访问的在线商店630的管理员的主页700的示例。主页700包括用于访问主页700的选项702、用于访问订单页面的选项704、用于访问产品页面的选项706、用于访问客户页面的选项708、用于访问分析页面的选项710、用于访问营销页面的选项712、用于访问折扣页面的选项714、用于访问应用程序页面的选项716、以及用于访问设置页面的选项718。
在所展示的示例中,选项702、704、706、710、714、716在主页700上已启用。因此,除了主页700之外,合作者账户626还具有对在线商店630的管理员的订单页面、产品页面、分析页面、折扣页面、应用程序页面和设置页面的访问权。该访问权被提供是因为选项702、704、706、710、714、716包括在线商店630的分析资源632、产品资源634和订单资源636或以其他方式与之相关。
选项708、712在主页700上禁用,这是通过在选项708、712上划阴影线来展示的。这样,合作者账户626没有对管理员的客户页面和营销页面的访问权。这可能是因为在线商店630的分析资源632、产品资源634和订单资源636未映射到客户页面或营销页面,并且因此合作者账户626的账户权限被生成为不包括对这些页面的访问权。
虽然合作者账户626具有对管理员的主页700、订单页面、产品页面、分析页面、折扣页面、应用程序页面和设置页面的访问权,但是这些页面可能不包括这些页面上通常包括的所有数据或其他内容。可以向在线商店630的商家示出不同的主页,该主页可能包括未在主页700上示出的附加内容。图2中展示了向商家示出的主页的示例。
图8展示了使用合作者账户626访问的在线商店630的管理员的订单页面800的示例。例如,可能使用了选项704从主页700导航到订单页面800。订单页面800包括由在线商店630接收的多个订单802、804、806、808、810、812的记录,该记录是在线商店630的订单资源636的示例。订单页面800还包括用于创建新订单的选项814,该选项针对合作者账户626禁用。例如,合作者账户626的账户权限可能不包括创建新订单的权限。
订单页面800仅提供与订单802、804、806、808、810、812有关的部分信息。例如,订单802、804、806、808、810、812中的每个订单的客户信息被掩藏。客户信息被掩藏可能是因为外部应用程序600的API范围未映射到在线商店630的客户资源,并且因此合作者账户626的账户权限无法使得能够访问客户资源。
进一步地,订单页面800仅显示特定时间段内的一些类型的数据。如所展示的,订单页面800上显示有订单802、804、806的总成本、付款状态、履行状态和货品数量。然而,订单808、810、812的同种信息被掩藏。订单808、810、812的总成本、付款状态、履行状态和货品数量被掩藏是因为外部应用程序600的API范围被限制在7天的时段内。例如,外部应用程序600被在线商店630安装可能仅过去7天。因此,合作者账户626的账户权限可能无法使得能够访问在7天时间段之外获得的一些数据。
结论
尽管已经参考本发明的特定特征和实施例描述了本发明,但是在不脱离本发明的情况下可以对其进行各种修改和组合。因此,说明书和附图被简单地视为如由所附权利要求限定的本发明的一些实施例的说明,并且设想到该说明书和附图涵盖落入本发明范围内的任何和所有修改、变化、组合或等效物。因此,尽管已经详细描述了本发明及其优点,但是在不脱离如由所附权利要求限定的本发明的情况下,可以在本文中进行各种改变、替换和更改。此外,本申请的范围不旨在限于说明书中描述的过程、机器、制品、物质组成、装置、方法和步骤的特定实施例。如本领域普通技术人员从本发明的披露内容中将容易理解的那样,根据本发明,可以利用目前已有的或以后要开发的、执行与本文所述的相应实施例基本相同的功能或实现与之基本相同的结果的过程、机器、制品、物质组成、装置、方法或步骤。因此,所附权利要求旨在将这样的过程、机器、制品、物质组成、装置、方法或步骤包括在其范围内。
此外,本文中所例示的执行指令的任何模块、组件或设备可以包括用于存储信息(比如计算机/处理器可读指令、数据结构、程序模块、和/或其他数据)的一个或多个非暂态计算机/处理器可读存储介质,或以其他方式具有对该存储介质的访问权,。非暂态计算机/处理器可读存储介质的示例的非穷尽列表包括磁带盒、磁带、磁盘存储设备或其他磁存储设备、光盘(比如压缩盘只读存储器(CD-ROM)、数字视频光盘或数字通用光盘(DVD)、Blu-ray DiscTM、或以任何方法或技术实施的其他光学存储、易失性和非易失性、可移动和不可移动介质)、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存、或其他存储器技术。任何这种非暂态计算机/处理器存储介质都可以是设备的一部分,或者可由该设备访问或可与该设备连接。本文描述的任何应用程序或模块都可以使用计算机/处理器可读/可执行指令来实施,这些指令可以由这种非暂态计算机/处理器可读存储介质存储或以其他方式保持。
本教导还可以扩展至以下编号条款中的一个或多个的特征:
1.一种计算机实施的方法,该方法包括:
获得涉及软件应用程序访问计算系统的一组资源的应用程序编程接口(API)交互记录;以及
基于该API交互记录为账户生成一组账户权限,该组账户权限允许该账户访问该计算系统的该组资源。
2.如条款1所述的计算机实施的方法,其中,为该账户生成该组账户权限包括:
将该API交互记录中的特定API交互映射到该计算系统的该组资源中的特定资源;以及
将使得该账户能够访问该特定资源的至少一个权限添加到该组账户权限中。
3.如条款2所述的计算机实施的方法,其中,将该特定API交互映射到该特定资源是基于API的部分与该计算系统的资源之间的所存储的映射。
4.如条款2所述的计算机实施的方法,其中:
获得该API交互记录包括获得该特定API交互的时间段;
该特定资源使得能够访问该计算系统上的数据集;并且
该至少一个账户权限将该账户的访问权限制为该数据集中的与该时间段相对应的部分。
5.如条款1所述的计算机实施的方法,其中,为该账户生成该组账户权限包括:
将该API交互记录中的一组API交互映射到该计算系统的工作流;以及
将使得该账户能够执行该工作流的至少一个权限添加到该组账户权限中。
6.如条款5所述的计算机实施的方法,其中,将该组API交互映射到该工作流是基于API的部分与该计算系统的工作流之间的所存储的映射。
7.如条款1所述的计算机实施的方法,其中,该组账户权限限制该账户访问该计算系统的与该API交互记录不对应的其他资源。
8.如条款1所述的计算机实施的方法,其中,该组资源包括能够经由该API交互记录中的API调用而访问的数据。
9.如条款1所述的计算机实施的方法,其中,该账户允许用户访问该计算系统。
10.如条款1所述的计算机实施的方法,其中,该组账户权限允许该账户访问该计算系统上的与该软件应用程序相关联的软件实例。
11.如条款10所述的计算机实施的方法,进一步包括:
在生成该组账户权限之前,确定该软件实例与该账户之间存在关系。
12.如条款10所述的计算机实施的方法,其中:
该组资源特定于该软件实例;并且
该组账户权限仅限于该软件实例。
13.如条款1所述的计算机实施的方法,其中,获得该API交互记录包括监测由该计算系统从执行该软件应用程序的外部设备接收的API调用。
14.如条款1所述的计算机实施的方法,进一步包括:
获得针对该软件应用程序的API权限记录,
其中,为该账户生成该组账户权限进一步基于该API权限记录。
15.一种系统,包括:
存储器,该存储器用于存储涉及软件应用程序访问计算系统的一组资源的应用程序编程接口(API)交互记录;以及
至少一个处理器,该至少一个处理器用于基于该API交互记录为账户生成一组账户权限,该组账户权限允许该账户访问该计算系统的该组资源。
16.如条款15所述的系统,其中,该至少一个处理器用于:
将该API交互记录中的特定API交互映射到该计算系统的该组资源中的特定资源;以及
将使得该账户能够访问该特定资源的至少一个权限添加到该组账户权限中。
17.如条款16所述的系统,其中:
该存储器进一步用于存储API的部分与该计算系统的资源之间的映射;并且
该映射被该至少一个处理器用来将该特定API交互映射到该特定资源。
18.如条款16所述的系统,其中:
该API交互记录包括该特定API交互的时间段;
该特定资源使得能够访问该计算系统上的数据集;并且
该至少一个账户权限将该账户的访问权限制为该数据集中的与该时间段相对应的部分。
19.如条款15所述的系统,其中,该至少一个处理器用于:
将该API交互记录中的一组API交互映射到该计算系统的工作流;以及
将使得该账户能够执行该工作流的至少一个权限添加到该组账户权限中。
20.如条款19所述的系统,其中:
该存储器进一步用于存储API的部分与该计算系统的工作流之间的映射;并且
该映射被该至少一个处理器用来将该组API交互映射到该工作流。
21.如条款15所述的系统,其中,该组账户权限允许该账户访问该计算系统上的与该软件应用程序相关联的软件实例。
22.如条款21所述的系统,其中,在生成该组账户权限之前,该至少一个处理器进一步用于确定该软件实例与该账户之间存在关系。
23.如条款21所述的系统,其中:
该组资源特定于该软件实例;并且
该组账户权限仅限于该软件实例。
24.如条款15所述的系统,其中,该API交互记录是基于由该计算系统从执行该软件应用程序的外部设备接收的API调用。
25.一种存储有计算机可执行指令的非暂态计算机可读介质,这些可执行指令在被计算机执行时使该计算机:
获得涉及软件应用程序访问计算系统的一组资源的应用程序编程接口(API)交互记录;以及
基于该API交互记录为账户生成一组账户权限,该组账户权限允许该账户访问该计算系统的该组资源。

Claims (15)

1.一种计算机实施的方法,该方法包括:
获得涉及软件应用程序访问计算系统的一组资源的应用程序编程接口(API)交互记录;以及
基于该API交互记录为账户生成一组账户权限,该组账户权限允许该账户访问该计算系统的该组资源,其中,该组账户权限允许该账户访问该计算系统上的与该软件应用程序相关联的软件实例。
2.如权利要求1所述的计算机实施的方法,其中,为该账户生成该组账户权限包括:
将该API交互记录中的特定API交互映射到该计算系统的该组资源中的特定资源;以及
将使得该账户能够访问该特定资源的至少一个权限添加到该组账户权限中。
3.如权利要求2所述的计算机实施的方法,其中,将该特定API交互映射到该特定资源是基于API的部分与该计算系统的资源之间的所存储的映射。
4.如权利要求2或3所述的计算机实施的方法,其中:
获得该API交互记录包括获得该特定API交互的时间段;
该特定资源使得能够访问该计算系统上的数据集;并且
该至少一个账户权限将该账户的访问权限制为该数据集中的与该时间段相对应的部分。
5.如前述权利要求中任一项所述的计算机实施的方法,其中,为该账户生成该组账户权限包括:
将该API交互记录中的一组API交互映射到该计算系统的工作流;以及
将使得该账户能够执行该工作流的至少一个权限添加到该组账户权限中。
6.如权利要求5所述的计算机实施的方法,其中,将该组API交互映射到该工作流是基于API的部分与该计算系统的工作流之间的所存储的映射。
7.如前述权利要求中任一项所述的计算机实施的方法,其中,该组账户权限限制该账户访问该计算系统的与该API交互记录不对应的其他资源。
8.如前述权利要求中任一项所述的计算机实施的方法,其中,该组资源包括能够经由该API交互记录中的API调用而访问的数据。
9.如前述权利要求中任一项所述的计算机实施的方法,其中,该账户允许用户访问该计算系统。
10.如权利要求9所述的计算机实施的方法,进一步包括:
在生成该组账户权限之前,确定该软件实例与该账户之间存在关系。
11.如权利要求9或10所述的计算机实施的方法,其中:
该组资源特定于该软件实例;并且
该组账户权限仅限于该软件实例。
12.如前述权利要求中任一项所述的计算机实施的方法,其中,获得该API交互记录包括监测由该计算系统从执行该软件应用程序的外部设备接收的API调用。
13.如前述权利要求中任一项所述的计算机实施的方法,进一步包括:
获得针对该软件应用程序的API权限记录,其中,为该账户生成该组账户权限进一步基于该API权限记录。
14.一种系统,包括:
存储器,该存储器用于存储API交互记录、API权限记录、和/或API映射;以及
至少一个处理器,该至少一个处理器用于执行如前述权利要求中任一项所述的方法。
15.一种包括指令的计算机程序,这些指令在被计算机执行时使该计算机执行如权利要求1至13中任一项所述的方法。
CN202210100008.XA 2021-02-05 2022-01-27 基于应用程序编程接口交互生成账户权限的系统和方法 Pending CN114880652A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17/168,675 US11729178B2 (en) 2021-02-05 2021-02-05 Systems and methods for generating account permissions based on application programming interface interactions
US17/168675 2021-02-05
EP21207302.7 2021-11-09
EP21207302.7A EP4040317A1 (en) 2021-02-05 2021-11-09 Systems and methods for generating account permissions based on application programming interface interactions

Publications (1)

Publication Number Publication Date
CN114880652A true CN114880652A (zh) 2022-08-09

Family

ID=78592680

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210100008.XA Pending CN114880652A (zh) 2021-02-05 2022-01-27 基于应用程序编程接口交互生成账户权限的系统和方法

Country Status (5)

Country Link
US (2) US11729178B2 (zh)
EP (1) EP4040317A1 (zh)
CN (1) CN114880652A (zh)
AU (1) AU2021286354A1 (zh)
CA (1) CA3141858A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE2050465A1 (en) * 2020-04-23 2021-10-24 Checkin Com Group Ab Method and system for generating a data collection process in a user device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007134784A1 (de) * 2006-05-18 2007-11-29 Giesecke & Devrient Gmbh Authentisierung für entfernte funktionsaufrufe
CN103268438A (zh) * 2013-02-04 2013-08-28 中国科学院信息工程研究所 基于调用链的Android权限管理方法及系统
CN109543411A (zh) * 2018-11-29 2019-03-29 北京元心科技有限公司 应用程序监控方法、装置、电子设备及可读存储介质
CN112181681A (zh) * 2020-09-17 2021-01-05 彩讯科技股份有限公司 一种远程调用方法、装置、计算机设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070289024A1 (en) * 2006-06-09 2007-12-13 Microsoft Corporation Microsoft Patent Group Controlling access to computer resources using conditions specified for user accounts
US9672382B2 (en) * 2014-07-18 2017-06-06 International Business Machines Corporation Managing access of user information by third party applications
US10148701B1 (en) 2018-05-08 2018-12-04 Cyberark Software Ltd. Automatic development and enforcement of least-privilege security policies
US11470122B2 (en) 2018-10-16 2022-10-11 Colorado School Of Mines Assigning privileges in an access control system
US11201871B2 (en) * 2018-12-19 2021-12-14 Uber Technologies, Inc. Dynamically adjusting access policies

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007134784A1 (de) * 2006-05-18 2007-11-29 Giesecke & Devrient Gmbh Authentisierung für entfernte funktionsaufrufe
CN103268438A (zh) * 2013-02-04 2013-08-28 中国科学院信息工程研究所 基于调用链的Android权限管理方法及系统
CN109543411A (zh) * 2018-11-29 2019-03-29 北京元心科技有限公司 应用程序监控方法、装置、电子设备及可读存储介质
CN112181681A (zh) * 2020-09-17 2021-01-05 彩讯科技股份有限公司 一种远程调用方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
KR20220113263A (ko) 2022-08-12
CA3141858A1 (en) 2022-08-05
AU2021286354A1 (en) 2022-08-25
EP4040317A1 (en) 2022-08-10
US11729178B2 (en) 2023-08-15
US20230336560A1 (en) 2023-10-19
US20220255943A1 (en) 2022-08-11

Similar Documents

Publication Publication Date Title
US11201739B2 (en) Systems and methods for tying token validity to a task executed in a computing system
CN112118116B (zh) 基于电子商务平台中的设置来推荐商家讨论组的系统和方法
US11522859B2 (en) Systems and methods for facilitating authentication of emails sent by 3rd parties
US11201738B2 (en) Systems and methods for associating a user with a task executed in a computing system
US11847585B2 (en) Systems and methods for selectively preventing origination of transaction requests
CN115809871A (zh) 基于非同质化代币的商务属性
US20230319155A1 (en) Code monitoring to recommend alternative tracking applications
US20210241351A1 (en) Systems and methods for recommending rules for web traffic control
US20230336560A1 (en) Systems and methods for generating account permissions based on application programming interface interactions
US20220198036A1 (en) Systems and methods for facilitating protecting recipient privacy
US11522862B2 (en) Systems and methods for a trusted entity to facilitate authentication of emails sent by 3rd parties
CN114968418A (zh) 用于在联网环境中管理应用程序访问的方法和装置
US20200349620A1 (en) Email address verification
KR102671275B1 (ko) 애플리케이션 프로그래밍 인터페이스 상호 작용에 기반하여 계정 승인을 생성하기 위한 시스템 및 방법
US12008573B2 (en) Computer-implemented systems and methods for detecting fraudulent activity
US20220164469A1 (en) System and method for processing erasure requests
CA3098007C (en) System and method for merging accounts
US20230097083A1 (en) Methods and systems for cross-web headless transactions
US11487515B2 (en) System and method for automated user interface layout presentation based on task
US20220230178A1 (en) Computer-implemented systems and methods for detecting fraudulent activity
US20230401571A1 (en) Maintaining blockchain state when performing non-blockchain commerce workflow
US20220398568A1 (en) Methods and systems for authorizing devices in multiple domains

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