CN115130132A - 精准撤销权限的访问控制方法、相关装置及*** - Google Patents

精准撤销权限的访问控制方法、相关装置及*** Download PDF

Info

Publication number
CN115130132A
CN115130132A CN202210211570.XA CN202210211570A CN115130132A CN 115130132 A CN115130132 A CN 115130132A CN 202210211570 A CN202210211570 A CN 202210211570A CN 115130132 A CN115130132 A CN 115130132A
Authority
CN
China
Prior art keywords
agent
callee
permission
electronic device
authority
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
CN202210211570.XA
Other languages
English (en)
Inventor
任兵飞
毛哲文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to PCT/CN2022/082869 priority Critical patent/WO2022199672A1/zh
Publication of CN115130132A publication Critical patent/CN115130132A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Storage Device Security (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本申请提供了精准撤销权限的访问控制方法、相关装置及***。在该方法中,主体设备可以客体设备发送访问请求,和,用户授予的该访问请求所需的权限信息,客体设备可以创建第一代理,并将该访问请求所需的权限授予该第一代理。之后,客体设备可以通过第一代理来响应该访问请求,并可以通过撤销授予第一代理的权限或者终止第一代理,来撤销客体设备获取到的权限。该方案可以保证客体设备获取到准确的权限,还可以根据需要精准、灵活地撤销该权限,保护资源调用过程中客体设备的数据安全。

Description

精准撤销权限的访问控制方法、相关装置及***
本申请要求于2021年3月26日提交中国专利局、申请号为202110327079.9、申请名称为“精准撤销权限的访问控制方法、相关装置及***”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机及通信技术领域,尤其涉及精准撤销权限的访问控制方法、相关装置及***。
背景技术
在包含单个设备的单机场景中,该设备中的各个应用程序(application,APP)之间可以相互调用,并可以访问该设备中的各类资源。随着智能终端的发展,用户生活中的设备种类及数量也越来越多,各个设备互通互联的分布式场景正在逐渐实现。在分布式场景中,设备之间互相共享资源,例如共享计算能力、存储资源、网络资源等等,将成为未来的趋势。
为了保护用户隐私,相关技术要求被调用的电子设备必须获取访问敏感信息的权限,并在权限检查通过后,才可以访问该敏感信息。
在调用过程中,如何保证被调用的电子设备获取到准确的权限,并且可以根据需要撤销该权限,从而保护电子设备中的数据安全,保护用户隐私,是当前亟需解决的问题。
发明内容
本申请提供了精准撤销权限的访问控制方法、相关装置及***,可以保证客体设备获取到准确的权限,并且可以根据需要精准地撤销该权限,保护客体设备中的数据安全。
第一方面,本申请实施例提供了一种精准撤销权限的访问控制方法,该方法应用于包含第一设备和第二设备的通信***,第一设备中安装有被调用者,第二设备中安装有第一调用者,被调用者、第一调用者为应用程序APP或功能组件,APP为实现多个功能的程序实体,功能组件为实现单一功能的程序实体。
第一方面的方法包括:第二设备向第一设备发送第一访问请求和第一权限信息,第一访问请求用于第一调用者调用被调用者以访问第一设备中的第一资源,第一权限信息指示第一权限,第一权限包括调用被调用者的权限,和/或,访问第一资源的权限;第一设备响应于第一访问请求,将第一权限授予第一代理,将访问第一代理的权限授予被调用者,第一代理为服务、进程或线程;第一设备运行被调用者,访问第一代理,并通过第一代理具备的第一权限,访问第一资源;第一设备终止第一代理,或者,第一设备撤销第一代理具备的第一权限。
在第一方面的方法中,第一设备可以称为客体设备,第二设备可以称为主体设备。
实施第一方面提供的方法,客体设备通过第一代理来访问第一资源,避免直接将访问请求所需的权限授予给被调用者,即使被调用者将自身获取到的权限二次传递给其他被调用者,执行上述方法,二次传递的权限也将失效,从而达到精准撤销权限的目的。此外,通过第一代理,客体设备无需存储大量的权限委派信息,节约了客体设备的存储资源。
此外,在第一方面提供的方法中,由主体设备来向用户申请访问请求所需的权限,无论客体设备或被调用者是否具备授权条件,只要主体设备或调用者具备授权条件,客体设备就能够获取访问请求所需的权限。从而保障调用者发起的访问请求能够被成功响应,实现设备间的资源调用,满足用户的实际需求。
结合第一方面,在一些实施方式中,第一设备可以在以下任意一种情况下,撤销第二设备传递过来的访问请求所需的权限:
1,如果第一权限信息还指示第一权限的时效,如果时效为一次有效,第一设备在结束访问第一资源后,终止第一代理或者撤销第一代理具备的第一权限;如果时效为在第一时间内有效或者在第一区域内有效,则第一设备在接收到第一权限信息的第一时间后,或者,在位于非第一区域时,终止第一代理或者撤销第一代理具备的第一权限。
2,第一设备在结束访问第一资源后,或者,在结束访问第一资源的第二时间后,终止第一代理或者撤销第一代理具备的第一权限。
通过第2种方式,客体设备可以在成功响应访问请求后撤销权限,无需通过传递时效信息来撤销该权限,也就避免了资源调用未完成时该权限就已经失效的情况,从而实现按照实际的用户需求精准撤销权限的目的。
结合第一方面,在一些实施方式中,第一设备可以将访问第一代理的权限授予被调用者的第一实例,并且运行第一实例,访问第一代理。
在上述实施方式中,通信***还包括第三设备,第三设备中安装有第二调用者,第二调用者为APP或功能组件。第三设备可以向第一设备发送第二访问请求和第二权限信息,第二访问请求用于第二调用者调用被调用者以访问第一资源,第二权限信息指示第二权限,第二权限包括调用被调用者的权限,和/或,访问第一资源的权限;第一设备响应于第二访问请求,将第二权限授予第二代理,将访问第二代理的权限授予被调用者的第二实例,第二代理为服务、进程或线程;第一设备运行第二实例,访问第二代理,并通过第二代理具备的第二权限,访问第一资源;其中,第一实例、第二实例为随机存取存储器RAM中运行的进程或线程,第二实例不同于第一实例,第二实例和第一实例相互隔离。
通过上述实施方式,客体设备以多实例为多个调用者分别提供服务的形式,可以将主体设备获取到的权限,授予给为该调用者创建的被调用者的实例对应的撤销代理。这样,可以保证一个调用者的权限只会给到和该实例对应的撤销代理,可以避免权限混用、权限扩大化问题,从而保证客体设备中的数据安全,防止数据滥用及泄露。
结合第一方面,在一些实施方式中,第一设备将访问第一代理的权限授予被调用者的第一实例之前,还可以响应于第一访问请求,创建第一实例。
结合第一方面,在一些实施方式中,第一代理包括:第一路由代理、第一撤销代理;第一路由代理、第一撤销代理为服务、进程或线程。第一设备可以将第一权限授予第一撤销代理,将访问第一路由代理的权限授予被调用者。并且,第一设备可以运行被调用者,通过第一路由代理访问第一撤销代理,并通过第一撤销代理具备的第一权限,访问第一资源。此外,第一设备可以终止第一路由代理和/或第一撤销代理,或者,第一设备可以撤销第一撤销代理具备的第一权限。
在上一实施方式中,如果第一设备中还包括第二代理,第二代理包括第一路由代理和第一撤销代理,则第一路由代理和第二路由代理可以合成为同一个代理。这样可以减少第一设备中的资源消耗。
结合第一方面,在一些实施方式中,第一设备响应于第一访问请求,将第一权限授予第一代理之前,可以响应于第一访问请求,创建第一代理。
结合第一方面,在一些实施方式中,第一权限具体包括:第二设备调用被调用者的权限,和/或,第二设备访问第一资源的权限;和/或,第一调用者调用被调用者的权限,和/或,第一调用者访问第一资源的权限。
通过上一实施方式,如果访问请求所需的权限包含主体设备和/或调用者的信息时,用户可以获知关于当前客体设备接收到的访问请求所需的权限的更加细致、详细的信息,从而决定是否授予该权限。这样可以保证用户在充分了解访问请求所需的权限的情况下,再执行授权操作,可以避免用户误操作或者误授权,保证客体设备中的数据安全。
结合第一方面,在一些实施方式中,第二设备可以基于能力(capability)的访问控制技术,在向第一设备发送第一访问请求的同时,直接将第一访问请求所需的权限信息发送给第一设备。例如,用户授予的第一访问请求所需的权限信息可以被携带在该第一访问请求中。这样,可以避免集中式权限管理机制中的权限同步带来的时间开销,提高资源调用的效率。
结合第一方面,在一些实施方式中,第二设备向第一设备发送第一权限信息之前,可以输出提示信息,提示信息用于提示第一权限;第二设备可以响应于接收到的用户操作,向第一设备发送第一权限信息。这样,用户可以通过在第二设备上输入用户操作来授予第一权限。
结合上一实施方式,第二设备接收到的操作包括以下一项或多项:作用于显示屏的用户操作、预设的人脸图像、预设的指纹、预设的语音指令,或者,作用于按键的用户操作。
第二方面,本申请实施例提供了一种精准撤销权限的访问控制方法,该方法应用于电子设备,电子设备中安装有被调用者,被调用者为应用程序APP或功能组件,APP为实现多个功能的程序实体,功能组件为实现单一功能的程序实体。
第二方面的方法包括:电子设备接收到第二设备发送的第一访问请求和第一权限信息,第一访问请求用于第二设备中的第一调用者调用被调用者以访问电子设备中的第一资源,第一权限信息指示第一权限,第一权限包括调用被调用者的权限,和/或,访问第一资源的权限;第一调用者为APP或功能组件;电子设备响应于第一访问请求,将第一权限授予第一代理,将访问第一代理的权限授予被调用者,第一代理为服务、进程或线程;电子设备运行被调用者,访问第一代理,并通过第一代理具备的第一权限,访问第一资源;电子设备终止第一代理,或者,电子设备撤销第一代理具备的第一权限。
实施第二方面提供的方法,第一设备通过第一代理来访问第一资源,避免直接将访问请求所需的权限授予给被调用者,即使被调用者将自身获取到的权限二次传递给其他被调用者,执行上述方法,二次传递的权限也将失效,从而达到精准撤销权限的目的。此外,通过第一代理,第一设备无需存储大量的权限委派信息,节约了第一设备的存储资源。
此外,在第二方面提供的方法中,由主体设备来向用户申请访问请求所需的权限,无论客体设备或被调用者是否具备授权条件,只要主体设备或调用者具备授权条件,客体设备就能够获取访问请求所需的权限。从而保障调用者发起的访问请求能够被成功响应,实现设备间的资源调用,满足用户的实际需求。
第二方面提供的方法中,电子设备所执行的各项操作,可参考第一方面提供的方法中关于第一设备侧的相关描述,这里不再赘述。
第三方面,本申请实施例提供了一种精准撤销权限的访问控制方法,该方法应用于电子设备,电子设备中安装有第一调用者和被调用者,第一调用者、被调用者为应用程序APP或功能组件,APP为实现多个功能的程序实体,功能组件为实现单一功能的程序实体。
第三方面的方法包括:电子设备生成第一访问请求,并获取第一权限,第一访问请求用于第一调用者调用被调用者以访问电子设备中的第一资源,第一权限包括调用被调用者的权限,和/或,访问第一资源的权限;电子设备响应于第一访问请求,将第一权限授予第一代理,将访问第一代理的权限授予被调用者;电子设备运行被调用者,访问第一代理,并通过第一代理具备的第一权限,访问第一资源;电子设备终止第一代理,或者,电子设备撤销第一代理具备的第一权限。
实施第三方面提供的方法,电子设备通过第一代理,可以精准、灵活地撤销权限。
第一方面或第二方面或上述任意一种实施方式中,由第一设备或第二设备或第三设备执行的操作,在第三方面提供的方法中,均由同一个电子设备执行,并且,第二设备或第三设备和第三设备之间的交互可以省略,具体可参考前文相关描述,这里不再赘述。
第四方面,本申请实施例提供了一种电子设备,包括:存储器、一个或多个处理器;存储器与一个或多个处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,一个或多个处理器调用计算机指令以使得电子设备执行如第二方面或第二方面任意一种实施方式的方法。
第五方面,本申请实施例提供了一种电子设备,包括:存储器、一个或多个处理器;存储器与一个或多个处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,一个或多个处理器调用计算机指令以使得电子设备执行如第三方面或第三方面任意一种实施方式的方法。
第六方面,本申请实施例提供了通信***,包括第一设备、第二设备,第一设备用于执行如第二方面或第二方面任意一种实施方式的方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当指令在电子设备上运行时,使得电子设备执行如第二方面或第二方面任意一种实施方式的方法。
第八方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行第二方面或第二方面任意一种实施方式的方法。
第九方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当指令在电子设备上运行时,使得电子设备执行如第三方面或第三方面任意一种实施方式的方法。
第十方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行第三方面或第三方面任意一种实施方式的方法。
实施本申请提供的技术方案,主体设备可以向客体设备发送用于调用被调用者的访问请求,并将用户授予的该访问请求所需的权限信息传递给该客体设备,客体设备可以创建第一代理,并将该访问请求所需的权限授予给该第一代理。之后,客体设备可以通过第一代理来响应该访问请求。并且,客体设备可以通过撤销授予给第一代理的权限,或者终止该第一代理,来撤销客体设备获取到的权限。该方案可以保证客体设备获取到准确的权限,并且可以根据需要精准、灵活地撤销该权限,保护客体设备中的数据安全。
附图说明
图1A及图1B分别为一种权限检查方式的示意图;
图2A为本申请实施例提供的通信***10的结构示意图;
图2B为本申请实施例提供的一种分布式场景;
图3A为本申请实施例提供的电子设备的硬件结构图;
图3B为本申请实施例提供的电子设备的软件结构图;
图4为本申请实施例提供的精准撤销权限的访问控制方法的流程图;
图5A-图5C为本申请实施例提供的主体设备200上实现的一组用户界面;
图5D-图5F为本申请实施例提供的主体设备300上实现的一组用户界面;
图6A为本申请实施例提供的一种创建代理及授予权限的示意图;
图6B本申请实施例提供的另一种创建代理及授予权限的示意图;
图7A为本申请实施例提供的主体设备的软件结构图;
图7B为本申请实施例提供的客体设备的软件结构图;
图8为本申请实施例提供的单个电子设备基于binder来实现访问控制方法的流程。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请以下实施例中的术语“用户界面(user interface,UI)”,是应用程序或操作***与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面是通过java、可扩展标记语言(extensible markuplanguage,XML)等特定计算机语言编写的源代码,界面源代码在电子设备上经过解析,渲染,最终呈现为用户可以识别的内容。用户界面常用的表现形式是图形用户界面(graphicuser interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的文本、图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
在包含多个电子设备的分布式***中,如果被访问的电子设备不具备授权条件,或者,被调用的应用不具备授权条件,则该电子设备无法获取用户授予的访问资源的权限,因此不能实现单机设备中或者设备间的资源调用,不能满足用户的实际需求。电子设备具备授权条件是指,电子设备支持一种或多种授权方式以供用户授权。授权方式可包括但不限于:弹框授权、指纹验证授权、人脸验证授权、语音指令授权、按键授权等等,这里不做限制。应用不具备授权条件是指,该应用不能使用电子设备提供的各种授权方式。例如,应用不提供用户界面时,该应用不支持弹框授权。
参考图1A,单机设备或者包含多个电子设备的分布式***中,可以采用集中式的权限管理机制,即由访问控制模块(即权限管理服务)来对资源调用时的访问策略和授权状态进行同一管理。具体的,一个应用程序(例如APP1)调用另一个应用程序(例如APP2)时,APP2会通过访问控制模块校验该APP1是否具备访问对应资源所需的权限,会产生额外的时间开销。此外,在跨设备进行资源调用时,APP1所在设备需要单独将访问策略和用户的授权状态发送给APP2所在设备,时间开销大。
参考图1B,基于云服务平台的资源调用,采用了基于能力(capability)的访问控制技术。具体的,服务调用者请求访问云服务平台提供的服务的同时,直接将访问该服务所需的权限传递给该服务实体,以便提供该服务实体访问对应的资源并返回访问结果。这样可以直接由服务实体进行权限检查,无需通过访问控制模块来进行额外的权限校验,减少了时间开销。此外,服务调用者将权限传递给服务实体后,存在难以撤销的问题。一方面,服务调用者在将权限传递给服务实体时,同时传递时效信息,服务实体在时效之后,该权限自动时效。这种方式可能导致资源调用未完成时该权限就已经失效的情况,因此无效按照实际需求精准地撤销权限。另一方面,云服务平台需要记录大量的权限委派信息,浪费存储资源,并且,服务实体可能将获取到的权限进行二次传递,该云服务平台在根据权限委派信息撤销权限时,并不能精准地撤销所有获取到该权限的服务实体所拥有的该权限。
为了解决上述问题,本申请以下实施例提供了一种精准撤销权限的访问控制方法,该访问控制方法可以应用于单机设备,也可以应用于包含多个电子设备的分布式***。
该方法应用于分布式***时,主体设备向客体设备发送用于调用被调用者的访问请求,并将用户授予的该访问请求所需的权限信息传递给该客体设备,客体设备可以创建代理模块,并将访问代理模块的权限授予给该被调用者,将该访问请求所需的权限授予给该代理模块。客体设备可以创建并运行被调用者的实例,通过该代理模块来响应该主体设备发起的访问请求。之后,在需要撤销该访问请求所需的权限时,客体设备可以撤销授予给代理模块的权限,也可以终止该代理模块。
通过上述方法,由主体设备和调用者来向用户申请访问请求所需的权限,无论客体设备或被调用者是否具备授权条件,只要主体设备或调用者具备授权条件,客体设备就能够获取访问请求所需的权限。从而保障调用者发起的访问请求能够被成功响应,实现设备间的资源调用,满足用户的实际需求。
并且,客体设备通过创建代理模块来响应访问请求,再次过程中直接由被调用者的实例、代理模块各自进行权限检查,无需通过访问控制模块来进行额外的权限校验,减少了时间开销。
此外,客体设备通过创建代理模块,可以精准、灵活地撤销该访问请求所需的权限。客体设备可以在获取到访问结果后,撤销该访问请求所需的权限,无需通过传递时效信息来撤销该权限,也就避免了资源调用未完成时该权限就已经失效的情况。通过代理模块,客体设备无需存储大量的权限委派信息,并且,即使客体设备将获取到的权限进行二次传递,本申请实施例提供的方法也可以收回所有获取到该权限的实例所拥有的该权限,实现精准撤销。
在一些实施例中,主体设备发送访问请求的同时,可以采用基于能力(capability)的访问控制技术,直接将访问请求所需的权限信息发送给客体设备,避免了集中式权限管理机制中的权限同步带来的时间开销。
在本申请以下实施例中,代理模块可以为应用程序、服务,还可以是实例、进程或者线程。进程是应用程序在计算机上的一次执行活动。线程是应用程序执行中一个单一的顺序控制流程。一个进程可以包括多个线程。
在一些实施例中,代理模块具体可以包括路由代理和撤销代理,本申请实施例对此不做限制。具体的,客体设备可以将访问路由代理的权限授予给被调用者,将该访问请求所需的权限授予给该撤销代理。客体设备可以创建并运行被调用者的实例,通过路由代理找到对应的撤销代理,并通过撤销代理来响应该主体设备发起的访问请求。之后,在需要撤销该访问请求所需的权限时,客体设备可以撤销授予给撤销代理的权限,也可以终止该撤销代理和/或路由代理。
客体设备获取到多个访问请求时,可以分别创建不同的路由代理和撤销代理,一对路由代理和撤销代理用于响应一个访问请求。在其他实施方式中,客体设备获取到多个访问请求时,可以创建一个路由代理和多个撤销代理,该路由代理和各个撤销代理分别合作,用于响应各个访问请求。
在一些实施例中,客体设备接收到多个主体设备发送的用于调用同一被调用者的访问请求时,该客体设备可以创建多个该被调用者的实例,一个被调用者的实例用于响应一个调用者发起的访问请求。客体设备可以将主体设备中的调用者获取到的权限,授予给为该调用者创建的被调用者的实例对应的代理模块。这样,客体设备以多实例为多个调用者分别提供服务的形式,可以保证一个调用者的权限只会给到和该实例对应的代理模块,可以避免权限混用、权限扩大化问题,从而保证客体设备中的数据安全,防止数据滥用及泄露。
本申请实施例提供的访问控制方法应用于单机设备时,电子设备在运行调用者的过程中,生成多个用于调用被调用者的访问请求后,可以获取用户授予的该访问请求所需的权限。之后,该电子设备可以创建代理模块,并将访问代理模块的权限授予给该被调用者,将该访问请求所需的权限授予给该代理模块。电子设备可以创建并运行被调用者的实例,通过代理模块来响应访问请求。之后,在需要撤销该访问请求所需的权限时,电子设备可以撤销授予给代理模块的权限,还可以终止该代理模块。
在单机设备中,由电子设备中的调用者来向用户申请访问请求所需的权限,无论被调用者是否具备授权条件,只要调用者具备授权条件,该电子设备就能够获取访问请求所需的权限。从而保障调用者发起的访问请求能够被成功响应,实现单机设备中的资源调用,满足用户的实际需求。
并且,电子设备通过创建代理模块,可以精准、灵活地撤销该访问请求所需的权限。此外,代理模块可以直接进行权限校验,无需额外的访问控制模块,可以避免权限校验带来的时间开销。具体可参考在分布式***中实施该访问控制方法时的相关描述。
在一些实施例中,电子设备获取到多个用于调用同一被调用者的访问请求时,可以创建多个该被调用者的实例,一个被调用者的实例用于响应一个调用者发起的访问请求。电子设备可以将调用者获取到的权限,授予给为该调用者创建的被调用者的实例对应的代理模块。这样,以多实例为多个调用者分别提供服务的形式,可以保证一个调用者的权限只会给到和该实例对应的代理模块,可以避免权限混用、权限扩大化问题,从而保证电子设备中的数据安全,防止数据滥用及泄露。
在本申请以下实施例中,实例是运行态的APP或功能组件。实例可以指进程,也可以指线程。
实例与实例之间相互隔离。电子设备会以进程为单位为不同的实例分配随机存取存储器(random access memory,RAM)中的物理地址。电子设备在需要运行实例时,将根据虚拟地址找到RAM中对应分配给该实例的空间,并在该空间中运行该实例。其中,该虚拟地址与电子设备分配给实例的物理地址相映射,其映射关系存储在电子设备的控制器中。也就是说,实例是通过虚拟地址来实现找到内存数据的实际存储位置的。在这样的机制下,不同的实例之间通过自身的虚拟地址只能访问自身的虚拟地址对应的物理地址,即不能访问对方在RAM中的物理空间,因此实例之间相互隔离。
主体设备、客体设备、调用者、被调用者的定义可参考后文实施例的相关描述。
下面,首先介绍本申请实施例提供的通信***。
如图2A所示,本申请实施例提供了通信***10。通信***10包括:多个电子设备。通信***10也可以称为分布式***10。
分布式***10中包含的多个电子设备均为智能终端设备,可以为各种类型,本申请实施例对该多个电子设备的具体类型不作限制。例如,该多个电子设备包括手机,还可以包括平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、智慧屏、可穿戴式设备、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、车机、智能耳机,游戏机,还可以包括物联网(internet of things,IOT)设备或智能家居设备如智能热水器、智能灯具、智能空调等等。不限于此,分布式***10中的多个设备还可以包括具有触敏表面或触控面板的膝上型计算机(laptop)、具有触敏表面或触控面板的台式计算机等非便携式终端设备等等。
分布式***10中的多个电子设备均为部署在家庭中的设备时,分布式***10也可被称为家庭分布式***。
分布式***10中的多个电子设备之间可以通过登录相同的账号进行连接。例如,多个电子设备可以登录同一华为账号,并通过服务器来远程连接并通信。
分布式***10中的多个电子设备也可以登录不同账号,但通过绑定的方式进行连接。一个电子设备登录账号后,可以在设备管理应用中,绑定登录不同账号或未登录的其他电子设备,之后这些电子设备之间可以通过该设备管理应用通信。
分布式***10中的多个电子设备还可以通过扫描二维码、近场通信(near fieldcommunication,NFC)碰一碰、搜索蓝牙设备等方式建立连接,这里不做限制。
总的来说,分布式***10中的多个电子设备之间建立的通信连接可包括但不限于:有线连接、无线连接例如蓝牙(bluetooth,BT)连接、无线局域网(wireless local areanetworks,WLAN)例如无线保真点对点(wireless fidelity point to point,Wi-Fi P2P)连接、近距离无线通信(near field communication,NFC)连接,红外技术(infrared,IR)连接,以及远程连接(例如通过服务器建立的连接)等等。
此外,分布式***中的多个电子设备也可以结合上述任意几种方式来连接并通信,本申请实施例对此不做限制。
分布式***10中的多个电子设备可以配置不同的软件操作***(operatingsystem,OS),包括但不限于
Figure BDA0003533268950000081
等等。其中,
Figure BDA0003533268950000082
为华为的鸿蒙***。
该多个电子设备也可以都配置相同的软件操作***,例如可以均配置
Figure BDA0003533268950000083
在多个电子设备的软件***均为
Figure BDA0003533268950000084
时,分布式***10可以看作一个超级终端。
在本申请实施例中,分布式***10中的各个设备可以安装传统的应用程序(application,APP),例如相机应用、图库应用、设置应用等等。后续实施例中,传统APP可以简称为APP。
此外,本申请实施例提供的分布式***10可以安装分布式应用(distributedapplication)。该分布式应用可以为***应用,也可以为第三方应用,这里不做限制。***应用是指电子设备的生产商所提供或研发的应用,第三方应用是指非电子设备的生产商所提供或研发的应用。电子设备的生产商可以包括该电子设备的制造商、供应商、提供商或运营商等。制造商可以是指以自制或采购的零件及原料来加工制造电子设备的生产厂商。供应商可以是指提供该电子设备的整机、原料或零件的厂商。运营商可以是指负责该电子设备的经销的厂商。
与包含多种能力(ability)的APP不同,分布式应用支持以单一能力(ability)为单位进行部署。一个分布式应用包括一个或多个功能组件。
功能组件是电子设备中可独立运行的最小能力单元,是对单一能力进行抽象封装的概念。APP将多个功能集合在一起,而功能组件将各个功能作为单独的服务化基础能力,独立存在。即,功能组件是实现单一功能的程序实体。
每个功能组件都可以独立下载、安装并运行。组成同一个分布式应用的多个功能组件,可以部署在分布式***10中的同一个电子设备中,也可以部署在不同电子设备中。
功能组件只是本实施例中所使用的一个词语,其代表的含义在本实施例中已经记载,其名称并不能对本实施例构成任何限制。另外,在本申请其他一些实施例中,功能组件也可以称为***组件、***服务、业务功能等其他名词。本申请后续实施例统一以“功能组件”进行描述。
Figure BDA0003533268950000091
为例,
Figure BDA0003533268950000092
中的功能组件可以包括以下两种类别:
(1)feature ability,FA。
FA是包含一组或若干组UI的功能组件,可以提供与用户交互的能力。例如,地图应用中的导航界面、即时通讯应用中的视频通话界面等,可以实现为FA。
在一些实施例中,FA基于MVVM(model-view-view-model)模式开发,将视图UI和业务逻辑分离,业务逻辑代码和视图UI代码分开部署。例如,一个电子设备可以将业务逻辑代码和其他APP集成在一起安装,而视图UI代码则可以安装到其他电子设备中。视图UI代码所在设备,可以和业务逻辑代码所在设备通信,以获取到展示UI所需要的数据。
FA支持page模板的能力,例如Empty Ability,Login Ability,Setting Ability等。FA采用脚本语言(java script,JS)提供声明式开发模式,采用类HTML和层叠样式表(cascading style sheet,CSS)声明式编程语言作为页面布局和页面样式的开发语言,并支持ECMAScript规范的JS语言提供页面业务逻辑。
FA具有免安装、独立运行、跨设备UI迁移、跨设备二进制迁移等能力。FA还具有多端部署、分布执行的特性。
FA可以调用AA或APP,实现更多、更复杂的功能。
(2)particle ability,PA。
PA是无UI的功能组件,可以为FA提供支持,例如PA可以作为后台服务提供计算能力,或作为数据仓库提供数据访问能力。例如,美颜功能、定位功能、音视频编解码功能等,可以封装为PA。
PA同样具有多端部署、分布式执行等特性。PA仅对***服务有依赖关系,和其他PA之间不存在依赖关系。
PA实际上将远程虚拟化、远程调用、PA管理、跨平台兼容、安全等实现做封装,对开发者开放跨设备的服务使能和唤起,以供其他设备调用本设备的计算能力,协同其他设备完成计算工作。PA支持Service Ability,Data Ability等。Service Ability用于提供后台运行任务的能力。Data Ability用于对外部提供统一的数据访问抽象。
PA可以调用FA或APP,实现更多、更复杂的功能。
可以理解的是,“FA”、“PA”只是本实施例中所使用的一个词语,在本申请其他一些实施例中,其还可以被称为其他名词。例如,“PA”、“FA”也可以被称为例如原子能力(atomicability,AA)、原子应用、元能力、原子化服务、特性能力等其他名词。
组成一个分布式应用的多个功能组件可以由同一个开发者来开发或提供,可以由多个开发者分别开发或提供,这里不做限制。不同开发者共同开发功能组件,可以提高分布式应用的开发效率。
在本申请实施例中,功能组件对外提供标准化的接口,以供调用。APP可调用功能组件。在一些情况下,功能组件也可以调用其他功能组件或APP。此外,被调用的功能组件也可以继续调用另外的功能组件或APP,这样多级调用的方式可称为链式调用。
分布式***10中的各个设备建立通信连接后,各个设备将同步分布式***中其他设备的功能组件信息以及APP信息。具体的,各个设备可以将自身安装的功能组件及APP的名称同步给其他设备,以供后续在分布式***10中调用其他设备的FA、PA等功能组件。在其他一些实施例中,各个设备还可以将自己的设备标识、设备类型等等同步给分布式***中的其他设备。
参考图2B,图2B示例性示出了一种可能的分布式的远程教学业务场景。
如图2B所示,分布式***包含智能手机、平板电脑、智慧屏等电子设备。分布式***中的各个设备两两相互连接。智能手机、平板电脑、智慧屏可以配置不同的软件操作***(operatingsystem,OS),例如智能手机和平板电脑可以配置
Figure BDA0003533268950000101
***,智慧屏可以配置
Figure BDA0003533268950000102
***。
智能手机中安装有“在线课堂”。“在线课堂”是一款安装于电子设备中、为老师和学生提供远程上课所需的各项功能的应用程序,本申请实施例对其名称不做限制。“在线课堂”可以包括以下几个功能组件:黑板功能组件、白板功能组件、音视频编解码功能组件、网络连接功能组件。其中,黑板功能组件、白板功能组件属于FA,音视频编解码功能组件、网络连接功能组件属于PA。黑板功能组件提供远程讲解课程的功能。白板功能组件提供远程回答问题的功能。音视频编解码功能组件提供视频音编解码功能。
在老师侧,老师在智能手机上使用“在线课堂”时,可以将黑板功能组件迁移或切换到智慧屏上,从而在智慧屏上讲解课程。
在学生侧,学生在智能手机上使用“在线课堂”时,可以将白板功能组件迁移或切换到平板电脑上,从而在平板电脑上回答问题。
将功能组件由一个设备A迁移或切换至另一设备B,可以包括以下两种:1,UI迁移。在FA的视图UI和业务逻辑分离时,设备A可以运行业务逻辑代码时,可以触发设备B运行该视图UI的代码,用户看来就好像是将功能组件从设备A迁移到了设备B中。2,整体迁移。整体迁移是指设备B从设备A处或者从网络中下载并安装该功能组件后,运行该功能组件并提供相应的功能。
在该远程教学业务场景中,“在线课堂”为调用者,平板电脑中的白板功能组件、智慧屏中的黑板功能组件为被调用者。
图2B还示出了另一种可能的分布式视频通话业务场景。
如图2B所示,智能手机还可以安装有其他分布式应用,例如即时通讯应用。即时通讯应用可以提供视频通话、语音通话及其他通信功能。即时通信应用可以包括以下功能组件:视频通话功能组件、音视频编解码功能组件、网络连接功能组件。
用户在智能手机上使用即时通讯应用时,可以将该应用的视频通话功能组件迁移或者切换到智慧屏上,从而利用智慧屏的摄像头和显示屏来进行视频通话。
上述“在线课堂”中的黑板功能组件,和,即时通讯应用中的视频通话功能组件,可以是同一个功能组件。也就是说,智慧屏中的该功能组件可以被智能手机上安装的“在线课堂”和即时通讯应用分别调用。
在该视频通话业务场景中,即时通讯应用为调用者,智慧屏中的视频通话功能组件(即视频通话功能组件)为被调用者。
需要说明的是,如图2B所示的业务场景仅用于辅助描述本申请实施例的技术方案。在实际业务场景中,图2B所示的分布式***可以包括更多的终端设备,各个设备中可以部署更多或更少的功能组件,各分布式应用可以包括更多或更少的功能组件。
通过图2A所示的分布式***10,以及,图2B所示的分布式场景,可以整合不同设备的软硬件能力,实现智慧化的全场景体验。
在一些实施例中,分布式***10中的各个设备建立通信连接后,各个设备将同步分布式***中其他设备的功能组件信息以及APP信息。具体的,各个设备可以将自身安装的功能组件及APP的名称同步给其他设备,以供后续在分布式***10中调用其他设备的APP、功能组件等等。
在本申请后续实施例中:发起调用功能组件或APP的一方,可以称为调用者。调用者例如可以为APP、FA或PA。整个调用链的初始发起者,可以称为首调者。首调者例如可以为APP或FA。举例来说,调用链为:APP1调用PA1,PA1调用PA2,PA2调用FA1,则APP1为首调者。再举例来说,调用链为:FA1调用PA1,PA1调用PA2,则FA1为首调者。
在整个调用链中,中间被调用的一方以及最后被调用的一方,都可以称为被调用者。被调用者例如可以为APP、FA或PA。
在本申请一些实施例中,调用者也可以称为主体应用,被调用者还可以称为客体应用。
在调用链中,调用者,以及,被调用者,可以部署在同一个电子设备中,也可以部署在不同的电子设备中。
调用者所在设备称为主体设备,被调用者所在设备称为客体设备。
本申请以下实施例所称的应用,可以包括APP,也可以包括功能组件。
在本申请实施例提供的分布式***10中:
主体设备生成用于调用客体设备中被调用者的访问请求后,可以请求用户授予该访问请求所需的权限,之后可以将该访问请求和用户授予的该访问请求所需的权限信息发送给客体设备。
客体设备接收到主体设备发送的访问请求后,可以创建代理模块,并将该访问请求所需的权限授予给该代理模块,将访问代理模块的权限授予该被调用者。客体设备可以创建并运行被调用者的实例,通过该代理模块来响应该主体设备发起的访问请求。之后,在需要撤销该访问请求所需的权限时,客体设备可以撤销授予给代理模块的权限,也可以终止该代理模块。
在一些实施例中,客体设备接收到多个主体设备发送的用于调用同一被调用者的访问请求时,该客体设备可以创建多个该被调用者的实例,一个被调用者的实例用于响应一个调用者发起的访问请求。
在一些实施例中,主体设备和客体设备为同一个电子设备时,该电子设备在运行调用者的过程中,生成多个用于调用被调用者的访问请求后,可以获取用户授予的该访问请求所需的权限。之后,该电子设备可以创建代理模块,并将访问代理模块的权限授予给该被调用者,将该访问请求所需的权限授予给该代理模块。电子设备可以创建并运行被调用者的实例,通过代理模块来响应访问请求。之后,在需要撤销该访问请求所需的权限时,电子设备可以撤销授予给代理模块的权限,还可以终止该代理模块。
在一些实施例中,主体设备和客体设备为同一个电子设备时,如果该电子设备获取到多个用于调用同一被调用者的访问请求,该电子设备可以创建多个该被调用者的实例,一个被调用者的实例用于响应一个调用者发起的访问请求。
关于分布式***10中的各个电子设备所执行的操作的具体实现,可参考后续方法实施例的相关描述,这里不赘述。
参考图3A,图3A为本申请实施例提供的电子设备的硬件结构示意图。该电子设备可以为图2A所示分布式***10中的任意一个电子设备。该电子设备可以为主体设备,也可以为客体设备,还可以同时为主体设备和客体设备。
如图3A所示,该电子设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号解调以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯***(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位***(global positioning system,GPS),全球导航卫星***(globalnavigation satellite system,GLONASS),北斗卫星导航***(beidou navigationsatellite system,BDS),准天顶卫星***(quasi-zenith satellite system,QZSS)和/或星基增强***(satellite based augmentation systems,SBAS)。
电子设备通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备可以支持一种或多种视频编解码器。这样,电子设备可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。
随机存取存储器可以包括静态随机存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5 SDRAM)等;非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
随机存取存储器可以由处理器110直接进行读写,可以用于存储操作***或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。
非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展电子设备的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。
电子设备可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备可以设置至少一个麦克风170C。在另一些实施例中,电子设备可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
指纹传感器180H用于采集指纹。电子设备可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备可以接收按键输入,产生与电子设备的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备的表面,与显示屏194所处的位置不同。
当图3A所示的电子设备为主体设备时:
移动通信模块150或无线通信模块160,可用于和分布式***10中的其他电子设备(例如客体设备)建立通信连接,建立通信连接的具体方式可参考图2A中的相关描述。
移动通信模块150或无线通信模块160,还可用于在和其他电子设备建立通信连接后,接收其他电子设备同步的功能组件信息以及APP信息。
显示屏194、指纹传感器180H、摄像头193、音频模块170、按键190等模块,可用于提供各类授权方式,以在该主体设备生成用于调用客体设备中被调用者的访问请求之后,请求用户授予该访问请求所需的权限。处理器110可响应于上述几个模块接收到的用户操作,获取用户授予的访问请求所需的权限。
移动通信模块150或无线通信模块160,还可用于向客体设备发送访问请求和用户授予的权限信息。
显示屏194还可用于显示后续实施例提供的在主体设备上显示的用户界面。
内部存储器121可以用于存储分布式***10中其他电子设备同步过来的功能组件信息以及APP信息。
内部存储器121还可用于存储主体设备中调用者和客体设备中被调用者之间的调用关系。该调用关系包括:调用关系ID、调用者的信息,和,被调用者的信息。该调用关系的具体内容可参考后续实施例的相关描述。
当图3A所示的电子设备为客体设备时:
移动通信模块150或无线通信模块160,可用于和分布式***10中的其他电子设备(例如主体设备)建立通信连接,建立通信连接的具体方式可参考图2A相关描述。
移动通信模块150或无线通信模块160,还可用于和其他电子设备建立通信连接后,向其他电子设备同步功能组件信息以及APP信息。
移动通信模块150或无线通信模块160,还可用于接收到一个或多个主体设备发送的用于调用同一被调用者的访问请求,并接收到主体设备发送的用户授予的访问请求所需的权限信息。
处理器110可以用于响应接收到的多个主体设备发送的访问请求,创建多个该被调用者的实例,一个被调用者的实例用于响应一个调用者发起的访问请求。
处理器110可以用于创建代理模块,并将访问代理模块的权限授予给被调用者,将访问请求所需的权限授予给代理模块。处理器110备可以创建并运行被调用者的实例,通过代理模块来响应主体设备发起的访问请求。之后,在需要撤销该访问请求所需的权限时,处理器110可以撤销授予给代理模块的权限,还可以终止该代理模块。
在一些实施例中,处理器110在客体设备接收到多个主体设备发送的用于调用同一被调用者的访问请求时,可以创建多个该被调用者的实例,一个被调用者的实例用于响应一个调用者发起的访问请求。处理器110可以将主体设备中的调用者获取到的权限,授予给为该调用者创建的被调用者的实例。
显示屏194还可用于显示后续实施例提供的在客体设备上显示的用户界面。
内部存储器121可以用于存储各个主体设备发送的访问请求所需的权限信息、时效信息等等。
内部存储器121还可用于存储客体设备中被调用者和主体设备中调用者之间的调用关系。该调用关系包括:调用关系ID、被调用者的实例信息,和,调用该实例的各个调用者信息。该调用关系的具体内容可参考后续实施例的相关描述。
当图3A所示的电子设备同时为主体设备和客体设备时,上述主体设备以及客体设备中各个模块执行的操作均由该电子设备执行,并且,主体设备和客体设备之间的通信步骤可以省略。该电子设备中各个模块所执行的操作,可参考前文相关描述,这里不赘述。
参考图3B,图3B为本申请实施例提供的电子设备的软件结构示意图。该电子设备可以为图2A所示分布式***10中的任意一个电子设备。该电子设备可以为主体设备,也可以为客体设备,还可以同时为主体设备和客体设备。
电子设备的软件***均可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构等。示例性地,电子设备的软件***包括但不限于
Figure BDA0003533268950000161
Figure BDA0003533268950000171
Linux或者其它操作***。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和***库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图3B所示,应用程序包可以包括APP,例如相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。应用程序层还可包括功能组件,例如FA、PA等等。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3B所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓***的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
***库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
基于图2A所示的分布式***10,图3A所示的电子设备的硬件结构,图3B所示的电子设备的软件结构,下面详细介绍本申请实施例提供的精准撤销权限的访问控制方法。
参考图4,图4为本申请实施例提供的精准撤销权限的访问控制方法的流程示意图。图4所示的方法以主体设备调用客体设备中的资源为例进行说明。
如图4所示,该方法可包括如下步骤:
S101,客体设备和主体设备建立连接,主体设备的数量为一个或多个。
客体设备的数量为一个,客体设备可以为分布式***10中的任意一个电子设备。
主体设备的数量可以为一个,也可以为多个。主体设备可以为分布式***10中的任意电子设备。
本申请实施例对客体设备和主体设备建立通信连接的方式不做限定,例如可通过登录相同账号、绑定设备、扫描二维码等方式来建立通信连接等。本申请实施例对主体设备和客体设备之间建立的通信连接的类型不做限定,例如可包括有线连接、无线连接例如蓝牙连接、Wi-Fi P2P连接、NFC连接,IR连接,以及远程连接等等。具体可参考图2A中的相关描述。
在一些实施例中,客体设备和主体设备建立连接后,客体设备可以向主体设备发送自身安装的可供调用的功能组件信息以及APP信息,例如标识等等。可供调用的功能组件或APP由开发者在开发阶段声明或者定义,这里的可供调用仅仅是指功能组件或APP可以被调用者调用,并非是指开放或授权给某个设备调用。
在一些实施例中,客体设备和主体设备建立连接后,客体设备可以向主体设备发送开放给该主体设备的能力信息,该能力信息指示了客体设备开放给主体设备以供调用的APP、功能组件、资源等等。这里,开放给主体设备的能力信息是指对应的APP、功能组件、资源可以被该主体设备调用。客体设备开放给主体设备的能力,可以由该客体设备预先设定,也可以由用户设置。例如,电子设备可以将机密性较低或敏感度较低的APP或功能组件开放给其他设备,如电子设备可以将相机应用、图库应用等开放给其他设备,而不将银行类应用开放给其他设备。客体设备开放给不同主体设备的能力,可以相同,也可以不同,这里不做限制。
S102,主体设备生成访问请求,该访问请求用于主体设备中的调用者调用客体设备中的被调用者,以访问第一资源。
在本申请实施例中,主体设备中安装有调用者,客体设备中安装有被调用者。调用者、被调用者均可以为APP或功能组件。APP、功能组件的定义可参考前文相关描述。
主体设备生成的访问请求可以包括:调用者的标识、被调用者的标识以及第一资源的标识。在一些实施例中,该访问请求还可以包括:主体设备的标识、客体设备的标识。
主体设备或客体设备的标识可以为设备类型、设备型号、设备名称等等,本申请实施例对此不做限制。这里的设备类型可以从设备功能来看,例如可包括手机、平板电脑、智能耳机、IOT设备或智能家居设备等等。
调用者的标识、被调用者的标识,可以为应用标识(APP ID)。
在本申请实施例中,第一资源可以为软件资源或硬件资源。硬件资源例如可包括该设备具备的摄像头、指纹传感器、音频设备、显示屏、马达、闪光灯等等。软件资源例如可包括该设备具备的内存资源、计算能力(例如美颜算法能力、音视频编解码能力)、网络能力、定位功能等等。第一资源可以包括一个或多个资源,这里不做限定。
在一些情况下,被调用者的标识和第一资源的标识可以相同。例如,第一资源为摄像头时,该被调用者的标识也可以是该摄像头的标识,用于指示该被调用者为相机应用。
在本申请实施例中,每一个访问请求,都对应有访问请求的发起设备(即主体设备)、调用者、被调用者以及要求访问的第一资源。不同访问请求对应的被调用者和第一资源均相同,不同访问请求对应的主体设备、调用者可以不同。
在一些实施例中,主体设备可以在运行调用者的过程中,响应于接收到的用户操作,生成访问请求。
下面以主体设备200和主体设备300各自生成针对客体设备100的访问请求为例进行说明。主体设备200可以为平板电脑,主体设备300可以为智慧屏,客体设备100可以为智能手机。
图5A示例性示出了主体设备200中的“图库”提供的用户界面51。“图库”为安装于电子设备上的一款图片管理的应用程序,又可以称为“相册”,本实施例对该应用程序的名称不做限制。“图库”支持用户对存储于电子设备或者云端服务器上的图片进行各种操作,例如浏览、编辑、删除、选择等操作。
如图5A所示,用户界面51中显示有:状态栏501、返回键502、页面指示符503、图片504、一个或多个设备选项505。
其中,状态栏501可包括:Wi-Fi信号的一个或多个信号强度指示符,电池状态指示符、时间指示符等等。
返回键502用于返回“图库”提供的上一级页面。
页面指示符503用于指示当前页面为“图库”提供的页面。页面指示符503可以实现为文本例如文本“图库”、图标或者其他形式。
图片504可以是存储于主体设备200或者云端服务器中的图片。图片504可以主体设备200拍摄得到的,也可以是主体设备200从网络中下载得到的,或者,从其他设备中分享得到的。
一个或多个设备选项505可对应于分布式***10中,可以提供图像处理能力来满足主体设备200的图像处理需求的设备,例如智能手机等等。设备选项505可以实现为图像、图标、文本等等,这里不做限制。
如图5A所示,主体设备200可以检测到作用于设备选项505的用户操作,并响应于该用户操作,生成一个访问请求,该访问请求用于主体设备200中的“图库”应用调用该设备选项505对应的智能手机1(即客体设备100)中的图像处理功能组件(FA)和图像处理资源。
图5D示例性示出了主体设备300中的“图库”提供的用户界面52。如图5D所示,用户界面52中显示有:状态栏、返回键、页面指示符、图片508、一个或多个设备选项509。
状态栏、返回键、页面指示符、图片508、一个或多个设备选项509,可参考图5A中的相关描述。
如图5D所示,主体设备300可以检测到作用于设备选项509的用户操作,例如用户通过遥控器选中该设备选项509的用户操作,并响应于该用户操作,生成一个访问请求,该访问请求用于主体设备300中的“图库”应用调用该设备选项505对应的智能手机1(即客体设备100)中的图像处理功能组件(FA)和图像处理资源。
在另一些实施例中,主体设备也可以在运行调用者的过程中,在一些情况下自主地生成针对客体设备的访问请求。例如,主体设备可以在每次进行视频通话时,都默认生成用于主体设备中的即时通讯应用调用智慧屏(即客体设备100)中的视频通话功能组件和摄像头资源的访问请求。
在一些实施例中,主体设备在生成访问请求之后,还可以查询客体设备是否开放了访问该访问请求中的被调用者和/或第一资源的权限给主体设备。若是,则进一步执行后续步骤。这样,可以保证主体设备在客体设备开放给该主体设备的能力范围内,发起访问请求,而不会在该开放能力范围外发起访问请求,可以提高该访问请求被响应的概率,降低设备之间的无效沟通。
在另一些实施例中,主体设备也可以在生成访问请求之后,直接执行后续步骤。
S103,主体设备请求用户授予该主体设备生成的访问请求所需的权限。
在一些实施例中,主体设备生成访问请求后,可以直接执行S103。
在另一些实施例中,主体设备生成访问请求后,可以在确认被调用者和/或第一资源为敏感资源的前提下,执行S103。这样可以保证客体设备中的敏感资源被访问时,可以获取用户的授权,从而保证用户数据的安全。敏感资源可以是指,被泄露后会对用户隐私造成较大风险的资源,例如隐私程度高于阈值的资源。敏感资源可以包括电子设备中的硬件资源、软件资源以及存储的数据。硬件资源例如可包括摄像头、音频设备、显示屏等等。软件资源例如可包括内存资源、计算能力(例如美颜算法能力、音视频编解码能力)、网络能力、定位功能、高机密性的APP(例如银行类APP)等等。存储的数据例如可包括存储的用户信息、照片、视频、用户登录到应用程序的密码等等。
在本申请其他一些实施例中,主体设备也可以先执行S103,后执行S102,即主体设备可以先请求用户授予权限,并获取到该权限之后再生成访问请求。
当电子设备支持一种或多种授权方式以供用户授权时,该电子设备具备授权条件。当调用者支持一种或多种授权方式以供用户授权时,该调用者具备授权条件。
授权方式可包括但不限于:弹框授权、指纹验证授权、人脸验证授权、语音指令授权、按键授权等等,这里不做限制。
电子设备是否具备授权条件以及支持的授权方式的种类,取决于该电子设备的硬件和/或软件配置。例如,支持弹框授权需要电子设备配置显示屏。支持指纹验证授权,需要电子设备配置指纹传感器。支持人脸验证授权,需要电子设备配置摄像头以及人脸识别算法。支持语音指令授权,需要电子设备配置麦克风或其他拾音设备。支持按键授权,需要电子设备配置物理按键。
调用者是否具备授权条件,取决于该调用者本身的功能。例如,调用者能够提供用户界面时,该调用者可以支持弹框授权。又例如,调用者能够调用指纹传感器时,该调用者可以支持指纹验证授权。
主体设备生成的访问请求所需的权限包括:调用客体设备中的被调用者的权限,和/或,访问客体设备中第一资源的权限。
在一些实施例中,该访问请求所需的权限具体包括:主体设备调用客体设备中被调用者和/或访问第一资源的权限。
在一些实施例中,该访问请求所需的权限具体包括:调用者调用客体设备中被调用者和/或访问第一资源的权限。
在一些实施例中,该访问请求所需的权限具体包括:主体设备中的调用者调用客体设备中被调用者和/或访问第一资源的权限。
在S103中,主体设备可以在运行调用者的过程中,使用主体设备和调用者均支持的授权方式,来请求用户授予自身生成的访问请求所需的权限。下面对不同的授权方式分别进行介绍。
主体设备支持弹框授权时,可以在显示屏上输出提示信息,该提示信息用于提示该访问请求所需的权限。之后,主体设备可以检测到作用于显示屏的用户操作,并响应于该用户操作,获取到该访问请求所需的权限。
参考图5B,图5B示例性示出了主体设备200使用弹框授权的方式来请求用户授权时,所显示的用户界面51。
用户界面51显示有窗口506。窗口506中包括:提示信息506a,控件506b,控件506c。提示信息506a用于提示用户授予主体设备200生成的访问请求所需的权限。提示信息506a例如可以为文本““图库”需要访问您的图像处理资源,授权后,有以下应用将使用该权限:图像处理功能组件(FA)”,其中,“图库”指示了调用者,“图像处理功能组件(FA)”指示了被调用者,“图像处理资源”指示了第一资源为摄像头资源。结合当前用户界面51的提供设备,用户在图5A中选择的设备选项505,用户还可获知主体设备为平板电脑,客体设备为设备选项505对应的智能手机1。在其他一些实施例中,提示信息506a可以包括主体设备和客体设备的信息。
也就是说,提示信息506a用于提示用户授予主体设备200中的“图库”应用调用智能手机1(即客体设备100)中的图像处理功能组件(FA),以访问图像处理资源的权限。
不限于提示信息506a所示的形式,提示信息506a的具体内容取决于访问请求所需的权限,这里不做限制。
控件506b可用于监听用户操作,主体设备200响应于该用户操作,获知当前未能获取到主体设备200生成的访问请求所需的权限。
控件506c可用于监听用户操作,主体设备200响应于该用户操作,成功获取到主体设备200生成的访问请求所需的权限,并且,该权限的时效为一次。即,主体设备200获取到的该访问请求所需的权限一次性有效,在该访问请求被响应之后,主体设备200不再具备该权限。
控件506d可用于监听用户操作,主体设备200响应于该用户操作,成功获取到主体设备200生成的访问请求所需的权限,并且,该权限的时效为永久。即,主体设备200获取到的该访问请求所需的权限永久有效。
如图5B所示,主体设备200接收到作用于控件506c的用户操作,获取到主体设备200中的“图库”调用客体设备100中的图像处理功能组件(FA)并访问图像处理资源的权限,并且该权限的时效为一次有效。
参考图5E,图5E示例性示出了主体设备300使用弹框授权的方式来请求用户授权时,所显示的用户界面52。用户界面52中包含的窗口510可参考图5B所述用户界面51中的窗口506,这里不赘述。
如图5E所示,主体设备300可以接收到作用于控件510a的用户操作,主体设备300响应于该用户操作,成功获取到主体设备300生成的访问请求所需的权限,并且,该权限的时效为永久。
主体设备支持指纹验证授权时,可以通过指纹传感器采集用户的指纹,并将采集到的指纹和预置的指纹进行比对,若两个指纹一致,则主体设备获取到访问请求所需的权限。在一些实施例中,主体设备可以预置多个指纹,并在采集到不同的预置指纹时,获取到具有不同的时效的访问请求所需的权限。
主体设备支持人脸验证授权时,可以通过摄像头采集用户的人脸图像,并将采集到的人脸图像和预置的人脸图像进行比对,若两者一致,则主体设备获取到访问请求所需的权限。
主体设备支持语音指令授权时,可以通过麦克风、受话器或者其他拾音设备来采集用户输入的语音指令,并将采集到的语音指令和预置的语音指令进行比对,若两者一致,则主体设备获取到访问请求所需的权限。在一些实施例中,主体设备可以预置多个语音指令,并在采集到不同的预置语音指令时,获取到具有不同的时效的访问请求所需的权限。
主体设备支持按键授权时,可以通过物理按键采集用户的按压操作,如果在物理按键上采集到了预设的按压操作(例如一次按压操作、长按操作、连续两次按压操作等等),则主体设备获取到访问请求所需的权限。在一些实施例中,主体设备可以预置多个按压操作,并在采集到不同的预置按压操作时,获取到具有不同的时效的访问请求所需的权限。
在本申请实施例中,主体设备请求用户授予该主体设备生成的访问请求所需的权限时,如果访问请求所需的权限包含主体设备和/或调用者的信息时,用户可以获知关于当前客体设备接收到的访问请求所需的权限的更加细致、详细的信息,从而决定是否授予该权限。这样可以保证用户在充分了解访问请求所需的权限的情况下,再执行授权操作,可以避免用户误操作或者误授权,保证客体设备中的数据安全。
可见,在S103中,主体设备可以响应于接收到的用户操作,获取到用户授予的该主体设备生成的访问请求所需的权限,并且用户授予的权限可能具有时效性。该权限的时效可以包括多种,不限于上述图5B或图5E中示出的一次生效、永久有效,还可以有更多的情况,例如一周内有效,一个月内有效,在第一区域内有效等等,这里不做限制。
在一些实施例中,主体设备可以在每次生成访问请求之后执行S103。在另一些实施例中,主体设备可以在生成访问请求之后,首先判断主体设备是否具备该访问请求所需的权限,并在没有的情况下通过S103向用户申请权限,这样可以减少主客体设备之间的交互,提高分布式***中跨设备调用资源的效率。
通过S103,由主体设备和调用者来向用户申请访问请求所需的权限,无论客体设备或被调用者是否具备授权条件,只要主体设备或调用者具备授权条件,客体设备就能够获取访问请求所需的权限。从而保障调用者发起的访问请求能够被成功响应,实现设备间的资源调用,满足用户的实际需求。
S104,主体设备将生成的访问请求、用户授予的该访问请求所需的权限信息,发送给客体设备。
在本申请实施例中,权限信息指示了以下一项或多项:主体设备是否获取到该访问请求所需的权限,主体设备获取到的该访问请求所需的权限,主体设备获取到的权限的时效。
在一些实施例中,主体设备可以基于能力(capability)的访问控制技术,在向客体设备发送访问请求的同时,直接将访问请求所需的权限信息发送给客体设备。例如,用户授予的访问请求所需的权限信息可以被携带在该访问请求中。这样,可以避免集中式权限管理机制中的权限同步带来的时间开销,提高资源调用的效率。
在一些实施例中,主体设备可以向客体设备分别发送访问请求,和,用户授予的该访问请求所需的权限信息。
执行上述S103-S104,可以保证主体设备在获取访问请求所需的权限之后,再发起访问请求,可以保证整个调用过程的安全性。
在本申请另一些实施例中,主体设备可以先向客体设备发送访问请求,客体设备接收到访问请求之后,可以在确认自身没有该访问请求所需的权限后,或者,直接向主体设备发送授权请求,该授权请求用于请求用户申请该访问请求所需的权限。之后,主体设备可以响应于该授权请求,执行S103的操作,并将用户授予的该访问请求所需的权限信息,发送给客体设备。也就是说,主体设备可以在客体设备的触发下向用户申请访问请求所需的权限,而无需自身主动向用户申请访问请求所需的权限。
在一些实施例中,主体设备可以根据存储的调用关系,找到访问请求对应的客体设备,并向该客体设备发送访问请求和获取到的访问请求所需的权限信息。
在一些实施例中,主体设备执行S104之后,还可以记录或者存储客体设备中的被调用者获取到的权限信息。
可选步骤S105,客体设备响应于接收到的访问请求,创建多个被调用者的实例。
具体的,客体设备接收到多个访问请求后,可以根据以下一项或多项来启用不同的实例:调用者、主体设备、调用者的开发者、调用者所属用户或主体设备的账号等等。在上述一项或多项不相同时,客体设备可以启用不同的被调用者实例来为对应的调用者提供服务。
例如,主体设备200中标识为“ID2”的应用、主体设备300中标识为“ID3”的应用,同时调用客体设备100中标识为“ID1”的应用,则客体设备100可以创建两个实例,分别为两个调用者提供服务。
又例如,主体设备300中标识为“ID3”的应用、主体设备400中标识为“ID4”的应用,同时调用客体设备100中标识为“ID1”的应用,由于两个调用者的开发者相同,客体设备100可以创建一个实例,同时为两个调用者提供服务。
在一些实施例中,如果客体设备中存在为主体设备中的调用者提供服务的被调用者的实例,即客体设备之前已经创建过该实例,则客体设备无需执行S105重新创建该实例。如果客体设备中不存在为主体设备中的调用者提供服务的被调用者的实例,则客体设备执行S105以创建该实例。
参考前文图5A及图5D中的示例,客体设备100接收到主体设备200和主体设备300各自发送的访问请求之后,将创建两个图像处理功能组件(FA)的实例,分别为主体设备200和主体设备300提供服务。
在一些实施例中,客体设备中可以提前安装被调用者。在另一些实施例中,客体设备可以在接收到客体设备发送的访问请求之后,从网络中下载并安装该被调用者,或者直接从主体设备处下载并安装该被调用者。
客体设备创建被调用者的实例时,可以为该实例分配用户标识(user ID,UID)和进程标识(process identifier,PID)。在一些实施例中,客体设备可以为被调用者的不同实例分配不同的UID。在一些实施例中,客体设备可以为被调用者的不同实例分配不同的PID。因此,客体设备可以通过UID或者PID来区分同一个被调用者的不同实例。
在一些实施例中,客体设备创建该被调用者的实例后,可以保存调用者和该被调用者的实例组成的调用关系,该调用关系的具体内容可参考后文相关描述。客体设备还可以将该调用关系中的部分内容,例如调用关系ID、为主体设备中的调用者创建的被调用者实例的UID、PID等等,同步给主体设备,便于主体设备存储该调用关系。
在一些实施例中,客体设备接收到主体设备发送的权限信息后,还可以记录或者存储该权限信息。
在一些实施例中,客体设备可以查询访问被调用者和/或访问第一资源的权限是否开放给主体设备,在是的情况下,才会执行后续步骤。这样可以减少主客体设备之间的无效沟通,提高资源调用的效率。
可选步骤S106,客体设备为被调用者的实例,创建路由代理和撤销代理。
在本申请实施例中,路由代理、撤销代理可以为应用程序、服务,还可以是实例、进程或者线程。
在一些实施例中,客体设备可以为每一个被调用者的实例,都对应创建一个路由代理和撤销代理,同时,将该访问该路由代理的权限授予给该被调用者的实例,将访问请求所需的权限授予给该撤销代理。例如,参考图6A,图6A示出了一种客体设备100创建实例以及路由代理和撤销代理,以及,授予实例和各个代理相应权限的情况。如图所示,客体设备100创建了2个图像处理功能组件(FA)的实例,并分别为两个实例各自创建了一个路由代理和撤销代理。
在另一些实施例中,客体设备可以为每一个被调用者的实例,都对应创建一个撤销代理,但两个实例共用一个路由代理。即,路由代理可以复用。这样,可以降低客体设备中的开销,提高资源访问的效率。参考图6B,图6B示出了另一种客体设备100创建实例以及路由代理和撤销代理,以及,授予实例和各个代理相应权限的情况。
在本申请实施例中,路由代理和撤销代理可以由客体设备的***来创建,也可以由客体设备通过被调用者来创建,这里不做限制。并且,客体设备可以沿用调用者的身份来创建该路由代理和撤销代理,例如使用主体设备传递过来的该调用者的UID来创建这两个代理。由客体设备的***来创建路由代理和撤销代理,可以避免被调用者获取到访问请求所需的权限,从而避免权限扩大化或者权限滥用,可以进一步保护电子设备中的数据安全。
在一些实施例中,如果客体设备中存在和被调用者的实例对应的路由代理和撤销代理,则客体设备无需执行S106来重新创建路由代理和撤销代理。如果客体设备中不存在和被调用者的实例对应的路由代理和撤销代理,则客体设备可以执行S106以创建路由代理和撤销代理。
在一些实施例中,同一个被调用者的实例对应的路由代理和撤销代理可以合成为一个代理。
通过S106,客体设备可以创建多个被调用者的实例,并且分别为各个实例创建撤销代理,将各个访问请求所需的权限授予给不同的撤销代理,这样一个撤销代理只能获取到一个访问请求所需的权限,通过相互隔离的撤销代理避免了权限混用、权限扩大化问题,可以保证客体设备中的数据安全,防止数据滥用及泄露。
S107,客体设备将访问路由代理的权限授予给该被调用者的实例,将访问请求所需的权限授予给该撤销代理。
执行S107后,同一个被调用者的实例对应的路由代理,可以访问其对应的撤销代理,同时,该被调用者的实例不能访问该撤销代理。也就是说,本申请实施例中的访问路径只能是被调用者的实例-路由代理-撤销代理-第一资源。
S108,客体设备运行被调用者的实例,访问和该实例对应的路由代理,通过该路由代理找到和该实例对应的撤销代理,并通过该撤销代理来访问第一资源。
具体的,由于被调用者的实例具备访问路由代理的权限,因此,客体设备运行该被调用者的实例可以访问路由代理。之后,客体设备通过该路由代理找到该被调用者的实例对应的撤销代理,由于撤销代理具备访问请求所需的权限,因此客体设备可以通过该撤销代理来访问第一资源。当访问请求所需的权限包括调用被调用者的权限时,可以看做该权限包含调用被调用者执行各种操作的权限,因此也包含访问第一资源的权限。
可见,执行S108时,客体设备赋予被调用者的实例、路由代理、撤销代理各自的权限,并且在响应访问请求时,直接由被调用者的实例、路由代理、撤销代理各自进行权限检查,无需通过访问控制模块来进行额外的权限校验,减少了时间开销。
在本申请实施例中,不同的撤销代理之间相互隔离,因此不会出现撤销代理各自具备的权限出现混用及权限扩大化的情况。
在一些实施例中,客体设备响应访问请求以访问第一资源,具体可包括以下一项或多项:
1,客体设备运行为调用者创建的被调用者的实例,访问第一资源以执行一系列操作,例如通过显示屏显示视频通话界面、通过摄像头采集图像、执行计算操作、图像处理、获取位置信息等等。
2,客体设备将访问第一资源的访问结果发送给主体设备,例如将摄像头采集的图像发送给主体设备,以供主体设备发送给和其进行视频通话的另一端设备,又例如将计算结果、获取到的位置信息发送给主体设备等等。
3,客体设备接收主体设备发送的数据,并利用该数据来访问第一资源,并执行一系列操。例如客体设备可以接收主体设备发送的其进行视频通话的另一端设备采集的图像,将该图像显示在显示屏的视频通话界面中。
这里,客体设备响应访问请求以访问第一资源时所执行的操作,可以由客体设备默认决定,也可以由客体设备侧的用户决定,还可以由主体设备侧发送的访问请求来决定,这里不做限制。
示例性地,参考图5C,图5C为主体设备200接收到客体设备100访问第一资源的访问结果后所显示的用户界面51。主体设备200可以先将图5A中的图片504发送给客体设备100,该图片504可以被携带在访问请求中,然后客体设备100可以运行为主体设备200中的“图库”创建的图像处理功能组件(FA)的实例,并通过S107中的具体操作来访问客体设备100中的图像处理资源,并将图像处理资源对图片504处理后的访问结果发送给主体设备200。如图5C,主体设备200可以在用户界面51中根据该访问结果,显示客体设备100处理后得到的图片506。显然地,对比图5A中的图片504,图片506的清晰度更高。客体设备100对图片504调整清晰度的处理可以是客体设备侧用户在客体设备上选择的,或者是客体设备默认执行的。在一些实施例中,用户界面51中还可显示有提示信息507,用于提示资源调用结果。
类似地,参考图5F,图5F为主体设备300接收到客体设备100访问第一资源的访问结果后所显示的用户界面52。主体设备300可以先将图5D中的图片508发送给客体设备100,该图片508可以被携带在访问请求中,然后客体设备100可以运行为主体设备300中的“图库”创建的图像处理功能组件(FA)的实例,并通过S107中的具体操作来访问客体设备100中的图像处理资源,并将图像处理资源对图片508处理后的访问结果发送给主体设备300。如图5F,主体设备300可以在用户界面52中根据该访问结果,显示客体设备100处理后得到的图片511。显然地,对比图5D中的图片508,图片511中的人物图像进行了瘦身塑形处理。客体设备100对图片508中的人物图像进行的瘦身塑形处理可以是客体设备侧用户在客体设备上选择的,或者是客体设备默认执行的。在一些实施例中,用户界面52中还可显示有提示信息512,用于提示资源调用结果。
S109,客体设备撤销访问请求所需的权限。
在本申请实施例中,客体设备可以在以下任意一种情况下,撤销主体设备传递过来的访问请求所需的权限:
1,如果主体设备传递过来的权限信息中包含时效信息,则客体设备可以根据该时效信息指示的时效来撤销访问请求所需的权限。
例如,如果时效信息指示一次有效,则客体设备可以在成功响应访问请求,即结束访问第一资源之后,撤销该访问请求所需的权限。例如,在图5A-图5C的示例中,客体设备100接收到主体设备200发送的访问请求后,可以在响应该访问请求之后,即刻撤销该访问请求所需的权限。
又例如,如果时效信息指示在第一时间内有效,则客体设备可以在接收到时效信息的第一时间后,撤销该访问请求所需的权限。
又例如,如果时效信息指示在第一区域内有效,则客体设备可以在位于非第一区域时,撤销该访问请求所需的权限。
2,客体设备可以在成功响应访问请求,即结束访问第一资源后,按照自身的权限撤销策略来撤销访问请求所需的权限。
客体设备中的权限撤销策略例如可包括但不限于:即刻撤销该访问请求所需的权限、成功响应访问请求的第二时间后撤销该访问请求所需的权限、被调用者的实例超过预设时长未访问客体设备中的第一资源时撤销该访问请求所需的权限,或者,在满足其他条件下撤销该访问请求所需的权限等等。
通过第2种方式,客体设备可以在成功响应访问请求后撤销权限,无需通过传递时效信息来撤销该权限,也就避免了资源调用未完成时该权限就已经失效的情况,从而实现按照实际的用户需求精准撤销权限的目的。
具体的,本申请实施例中客体设备可以通过以下任意一项或多项,来撤销访问请求所需的权限:
1,客体设备撤销授予给撤销代理的访问请求所需的权限。
客体设备收回授予给撤销代理的访问请求所需的权限后,后续该撤销代理就无法继续访问第一资源,被调用者的实例以及路由代理也无法通过该撤销代理来访问第一资源,因此能够实现收回权限的目的。
2,客体设备终止路由代理和/或撤销代理。
终止路由代理和/或撤销代理,可以是指客体设备完全清空该路由代理和/或撤销代理的相关数据,客体设备中不再存在该路由代理和/或撤销代理。这样后续被调用者的实例也就无法过路由代理和撤销代理来访问第一资源,因此能够实现收回权限的目的。
在本申请实施例中,这样通过路由代理和撤销代理来访问第一资源,避免直接将访问请求所需的权限授予给被调用者的实例,即使被调用者的实例将自身的权限二次传递给其他被调用者,执行上述S108之后,二次传递的权限也将失效,从而达到精准撤销权限的目的。此外,通过路由代理和撤销代理,客体设备无需存储大量的权限委派信息,节约了客体设备的存储资源。
在图4所示的方法中,客体设备还可以管理为主体设备中的调用者创建的被调用者的实例的生命周期。在一些实施例中,客体设备可以在运行该实例并成功响应访问请求后,停止运行或销毁该实例,也可以在经过预设时间后停止运行或销毁该实例,还可以在运行中的实例经过一定时长均未访问客体设备中的资源时,停止运行或销毁该实例。停止运行实例是指客体设备中仍然存在该实例,但该实例并未处于运行状态。销毁实例是指客体设备将该实例相关的所有数据删除,该客体设备中不再存在该实例。
在图4所示的访问控制方法中:
客体设备(例如客体设备100)可以被称为第一设备,一个主体设备(例如主体设备200)可以被称为第二设备,另一个主体设备(例如主体设备300)可以被称为第三设备。
第二设备中的调用者例如主体设备200中的“图库”,可以被称为第一调用者,第三设备中的调用者例如主体设备300中的“图库”,可以被称为第二调用者。
第二设备向第一设备发送的访问请求,可以被称为第一访问请求。第三设备向第一设备发送的访问请求,可以被称为第二访问请求。第一访问请求所需的权限,可以称为第一权限。第二权限信息所需的权限,可以称为第二权限。
第二设备向第一设备发送的权限信息,可以被称为第一权限信息。第三设备向第一设备发送的权限信息,可以被称为第二权限信息。
第一设备响应于第一访问请求所运行的被调用者的实例,可称为第一实例。第一设备响应于第二访问请求所运行的被调用者的实例,可称为第二实例。
第一设备响应于第一访问请求所运行的路由代理和撤销代理,可以分别称为第一路由代理和第一撤销代理。第一路由代理和第一撤销代理合成为一个代理时,该代理可以称为第一代理。
第一设备响应于第二访问请求所运行的路由代理和撤销代理,可以分别称为第二路由代理和第二撤销代理。第二路由代理和第二撤销代理合成为一个代理时,该代理可以称为第二代理。
不限于上述示例性列举的分布式***,图4所示的方法还可以应用于单个电子设备中。例如,该电子设备中安装有一个或多个调用者,和,被调用者,该电子设备既是主体设备,也是客体设备。该电子设备可以生成一个或多个用于调用同一被调用者的访问请求,该访问请求用于调用者调用被调用者以访问该电子设备中的第一资源。该访问请求的生成时机以及方式,可参考图4的S102中主体设备生成访问请求的相关描述。该电子设备生成访问请求之后,可以执行图4所示方法中的S103-S109,不同之处在于图4中客体设备和主体设备之间的通信过程可以省略。
此外,该电子设备可以通过调用者或者***来创建路由代理和撤销代理,这样可以避免被调用者获取到访问请求所需的权限,从而避免权限扩大化或者权限滥用,可以保护电子设备中的数据安全。并且,该电子设备可以沿用调用者的身份来创建该路由代理和撤销代理,例如可以使用调用者的UID来创建这两个代理。
单个电子设备如何执行本申请实施例提供的访问控制方法,可参考图4的相关描述,这里不再赘述。
参考图8,图8示例性示出了单个电子设备基于binder来实现本申请实施例提供的访问控制方法的简单流程。如图8所示,电子设备包括用户空间和内核空间,用户空间包括调用者(例如APP1)和被调用者(例如APP2),内核空间包括binder驱动。
如图8所示,该流程可包括如下步骤:
1,APP1通知***创建或APP1自己创建路由代理和撤销代理,同时规定只有通过P2权限才能访问路由代理。
2,APP1请求调用APP2。
3,binder驱动通过处理命令将P2权限传递给路由代理,将P1权限传递给撤销代理。P1权限是APP1请求调用APP2时所需的权限,该权限用于访问第一资源。
4,APP2响应APP1的请求,发起调用第一资源的请求。
5,***(如应用调度管理模块)根据APP2的请求,启动路由代理。因为APP2已经拥有了P2权限,因此可以启动路由代理。
6,路由代理将APP2发起的请求直接转发给撤销代理。
7,撤销代理调用第一资源,由于撤销代理已经拥有P1权限,因此可以调用该第一资源。
结束调用第一资源以后,APP1可以请求***删除或APP1自己删除撤销代理和/或路由代理,也可以通过binder驱动收回撤销代理的P1权限,即可完成权限撤销。
分布式***中,也可根据和图8类似的方式,基于binder来实现权限的授予和撤销,详细实现这里不再赘述。
在单机设备中,电子设备通过路由代理和撤销代理,可以精准、灵活地撤销该访问请求所需的权限。具体可参考在分布式***中实施该访问控制方法时的相关描述。
在单机设备中执行本申请实施例提供的精准撤销权限的访问控制方法时,电子设备中的一个调用者可以被称为第一调用者,另一个调用者可以被称为第二调用者。电子设备运行第一调用者时生成的用于调用被调用者并访问第一资源的访问请求,可以被称为第一访问请求。电子设备运行第二调用者时生成的用于调用被调用者并访问第一资源的访问请求,可以被称为第二访问请求。第一访问请求所需的权限,可以称为第一权限。第二权限信息所需的权限,可以称为第二权限。
电子设备响应于第一访问请求所运行的被调用者的实例,可称为第一实例。第三设备响应于第二访问请求所运行的被调用者的实例,可称为第二实例。
电子设备响应于第一访问请求所运行的路由代理和撤销代理,可以分别称为第一路由代理和第一撤销代理。第一路由代理和第一撤销代理合成为一个代理时,该代理可以称为第一代理。
电子设备响应于第二访问请求所运行的路由代理和撤销代理,可以分别称为第二路由代理和第二撤销代理。第二路由代理和第二撤销代理合成为一个代理时,该代理可以称为第二代理。
参考图7A,图7A为本申请实施例提供的主体设备的软件结构示意图。该主体设备可以是图4实施例中的主体设备200或主体设备300。
如图7A所示,主体设备可包括如下几个模块:应用信息管理模块、权限申请模块、权限委派模块、调用关系管理模块、调用关系库。其中:
应用信息管理模块,用于管理主体设备所安装的各个APP、功能组件的信息,例如名称等等。应用信息管理模块还用于将本机的APP、功能组件的信息同步到其他设备中,同时接收其他设备(例如客体设备)同步的APP、功能组件的信息。
权限申请模块,用于在主体设备生成用于调用客体设备中被调用者的访问请求时,向用户申请获取该访问请求所需的权限。
权限委派模块,用于根据调用关系,将权限申请模块申请到的权限信息,发送给客体设备。在一些实施例中,权限委派模块用于将权限申请模块申请到的权限信息,和,主体设备生成的访问请求同时发送给客体设备。
调用关系管理模块,负责维护调用者、为该调用者提供服务的被调用者实例组成的调用关系,并将其存储到调用关系库中。
调用关系库,用于存储调用者和被调用者实例组成的调用关系。该调用关系包括:调用关系ID、被调用者的实例信息,和,调用该实例的各个调用者信息。
调用关系ID可以由主体设备分配。针对同一个调用关系,客体设备和主体设备可以共享同一个调用关系ID,该调用关系ID可以被携带在发送给客体设备的访问请求中,由主体设备分配后发送给客体设备。
被调用者的实例信息可包括以下一项或多项:客体设备的设备标识(device ID)、被调用者的APP ID、该实例的UID和PID。PID是实例的身份标识,电子设备运行一个实例即会给该实例分配一个唯一的PID。PID、UID可以由客体设备同步到主体设备中。
调用者信息包括调用者的应用标识(APP ID),还可包括以下一项或多项:主体设备的设备标识(device ID)、调用者的开发者签名、调用者的用户标识(user ID,UID)、主体设备的账户(account ID)。其中:
APP ID,用于标识APP或功能组件。
device ID,用于标识设备。device ID例如可以是设备的名称、序列号、媒体访问控制(media access control,MAC)地址等等。
开发者签名,用于标识开发者。
UID,用于标识APP或功能组件所属用户。通常情况下,电子设备会为安装的不同APP或功能组件分配不同的UID,以作区分。在一些实施例中,电子设备可能为同一开发者开发的各个APP或功能组件分配相同的UID。同一个APP或功能组件在不同电子设备中,可能拥有不同的UID。
account ID,用于标识当前登录到电子设备的用户,例如可以是华为账号。
图7A仅为示意性举例,本申请实施例提供的主体设备还可以包括更多或更少的模块,这里不做限制。
图7A提及的主体设备中的各个模块,可以位于图3B所示的电子设备中的应用程序层、应用程序框架层、***服务层、内核层等等,这里不做限制。
参考图7B,图7B为本申请实施例提供的客体设备的软件结构示意图。该客体设备可以是图4实施例中的客体设备100。
如图7B所示,客体设备可包括如下几个模块:应用信息管理模块、实例管理模块、权限委派模块、路由代理管理模块、撤销代理管理模块、委派撤销管理模块、调用关系管理模块、调用关系库。其中:
应用信息管理模块,用于管理客体设备所安装的各个APP、功能组件的信息,例如名称等等。应用信息管理模块还用于将本机的APP、功能组件的信息同步到其他设备中,同时接收其他设备(例如主体设备)同步的APP、功能组件的信息。
实例管理模块,负责根据调用者的信息,动态启用被调用者的实例,为该调用者提供服务。具体的,实例管理模块可以为不同的调用者启用不同的被调用者的实例。实例管理模块还用于管理各个实例的生命周期,例如启动、停止、销毁、重启等等。
权限委派模块,用于接收主体设备发送的访问请求所需的权限信息。并将访问代理模块的权限授予给被调用者,将该访问请求所需的权限授予给代理模块。代理模块可以包括撤销代理和路由代理。
路由代理管理模块,用于创建路由代理。在一些实施例中,路由代理管理模块可以响应于不同的访问请求,创建不同的路由代理。在另一些实施例中,路由代理管理模块可以创建一个路由代理,用于响应客体设备获取到的全部访问请求。
撤销代理管理模块,用于创建撤销代理。在一些实施例中,撤销代理管理模块可以响应于不同的访问请求,创建不同的撤销代理。
委派撤销管理模块,用于在客体设备需要时,撤销授予给撤销代理的权限,或者终止该撤销代理和/或路由代理。
调用关系管理模块,负责维护调用者、为该调用者提供服务的被调用者实例组成的调用关系,并将其存储到调用关系库中。
调用关系库,用于存储调用者和被调用者实例组成的调用关系。该调用关系包括:调用关系ID、被调用者的实例信息,和,调用该实例的各个调用者信息。该调用关系的具体内容可参考图7A中主体设备的相关描述。
图7B仅为示意性举例,本申请实施例提供的客体设备还可以包括更多或更少的模块,这里不做限制。
图7B提及的客体设备中的各个模块,可以位于图3B所示的电子设备中的应用程序层、应用程序框架层、***服务层、内核层等等,这里不做限制。
本申请的各实施方式可以任意进行组合,以实现不同的技术效果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solidstate disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
总之,以上所述仅为本申请技术方案的实施例而已,并非用于限定本申请的保护范围。凡根据本申请的揭露,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (32)

1.一种精准撤销权限的访问控制方法,其特征在于,所述方法应用于包含第一设备和第二设备的通信***,所述第一设备中安装有被调用者,所述第二设备中安装有第一调用者,所述被调用者、所述第一调用者为应用程序APP或功能组件,所述APP为实现多个功能的程序实体,所述功能组件为实现单一功能的程序实体;
所述方法包括:
所述第二设备向所述第一设备发送第一访问请求和第一权限信息,所述第一访问请求用于所述第一调用者调用所述被调用者以访问所述第一设备中的第一资源,所述第一权限信息指示第一权限,所述第一权限包括调用所述被调用者的权限,和/或,访问所述第一资源的权限;
所述第一设备响应于所述第一访问请求,将所述第一权限授予第一代理,将访问所述第一代理的权限授予所述被调用者,所述第一代理为服务、进程或线程;
所述第一设备运行所述被调用者,访问所述第一代理,并通过所述第一代理具备的所述第一权限,访问所述第一资源;
所述第一设备终止所述第一代理,或者,所述第一设备撤销所述第一代理具备的所述第一权限。
2.根据权利要求1所述的方法,其特征在于,所述第一权限信息还指示所述第一权限的时效,所述时效为以下任意一项:一次有效、在第一时间内有效或者在第一区域内有效;
所述第一设备终止所述第一代理,或者,所述第一设备撤销所述第一代理具备的所述第一权限,具体包括:
如果所述时效为一次有效,所述第一设备在结束访问所述第一资源后,终止所述第一代理或者撤销所述第一代理具备的所述第一权限;
如果所述时效为在所述第一时间内有效或者在所述第一区域内有效,则所述第一设备在接收到所述第一权限信息的所述第一时间后,或者,在位于非所述第一区域时,终止所述第一代理或者撤销所述第一代理具备的所述第一权限。
3.根据权利要求1所述的方法,其特征在于,所述第一设备终止所述第一代理,或者,所述第一设备撤销所述第一代理具备的所述第一权限,具体包括:
所述第一设备在结束访问所述第一资源后,或者,在结束访问所述第一资源的第二时间后,终止所述第一代理或者撤销所述第一代理具备的所述第一权限。
4.根据权利要求1-3任一项所述的方法,其特征在于,
所述第一设备将访问所述第一代理的权限授予所述被调用者,具体包括:所述第一设备将访问所述第一代理的权限授予所述被调用者的第一实例;
所述第一设备运行所述被调用者,访问所述第一代理,具体包括:所述第一设备运行所述第一实例,访问所述第一代理;
所述通信***还包括第三设备,所述第三设备中安装有第二调用者,所述第二调用者为所述APP或所述功能组件;所述方法还包括:
所述第三设备向所述第一设备发送第二访问请求和第二权限信息,所述第二访问请求用于所述第二调用者调用所述被调用者以访问所述第一资源,所述第二权限信息指示第二权限,所述第二权限包括调用所述被调用者的权限,和/或,访问所述第一资源的权限;
所述第一设备响应于所述第二访问请求,将所述第二权限授予第二代理,将访问所述第二代理的权限授予所述被调用者的第二实例,所述第二代理为服务、进程或线程;
所述第一设备运行所述第二实例,访问所述第二代理,并通过所述第二代理具备的所述第二权限,访问所述第一资源;
其中,所述第一实例、所述第二实例为随机存取存储器RAM中运行的进程或线程,所述第二实例不同于所述第一实例,所述第二实例和所述第一实例相互隔离。
5.根据权利要求4所述的方法,其特征在于,所述第一设备将访问所述第一代理的权限授予所述被调用者的第一实例之前,所述方法还包括:
所述第一设备响应于所述第一访问请求,创建所述第一实例。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一代理包括:第一路由代理、第一撤销代理;所述第一路由代理、所述第一撤销代理为服务、进程或线程;
所述第一设备将所述第一权限授予第一代理,将访问所述第一代理的权限授予所述被调用者,具体包括:所述第一设备将所述第一权限授予所述第一撤销代理,将访问所述第一路由代理的权限授予所述被调用者;
所述第一设备运行所述被调用者,访问所述第一代理,并通过所述第一代理具备的所述第一权限,访问所述第一资源,具体包括:所述第一设备运行所述被调用者,通过所述第一路由代理访问所述第一撤销代理,并通过所述第一撤销代理具备的所述第一权限,访问所述第一资源;
所述第一设备终止所述第一代理,或者,所述第一设备撤销所述第一代理具备的所述第一权限,具体包括:所述第一设备终止所述第一路由代理和/或所述第一撤销代理,或者,所述第一设备撤销所述第一撤销代理具备的所述第一权限。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述第一设备响应于所述第一访问请求,将所述第一权限授予第一代理之前,所述方法还包括:
所述第一设备响应于所述第一访问请求,创建所述第一代理。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述第一权限具体包括:
所述第二设备调用所述被调用者的权限,和/或,所述第二设备访问所述第一资源的权限;
和/或,
所述第一调用者调用所述被调用者的权限,和/或,所述第一调用者访问所述第一资源的权限。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述第二设备向所述第一设备发送第一访问请求和第一权限信息,具体包括:
所述第二设备向所述第一设备发送第一访问请求,所述第一访问请求携带有第一权限信息。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述第二设备向所述第一设备发送第一权限信息之前,所述方法还包括:
所述第二设备输出提示信息,所述提示信息用于提示所述第一权限;
所述第二设备接收到用户操作。
11.一种精准撤销权限的访问控制方法,其特征在于,所述方法应用于电子设备,所述电子设备中安装有被调用者,所述被调用者为应用程序APP或功能组件,所述APP为实现多个功能的程序实体,所述功能组件为实现单一功能的程序实体;
所述方法包括:
所述电子设备接收到所述第二设备发送的第一访问请求和第一权限信息,所述第一访问请求用于所述第二设备中的第一调用者调用所述被调用者以访问所述电子设备中的第一资源,所述第一权限信息指示第一权限,所述第一权限包括调用所述被调用者的权限,和/或,访问所述第一资源的权限;所述第一调用者为所述APP或所述功能组件;
所述电子设备响应于所述第一访问请求,将所述第一权限授予第一代理,将访问所述第一代理的权限授予所述被调用者,所述第一代理为服务、进程或线程;
所述电子设备运行所述被调用者,访问所述第一代理,并通过所述第一代理具备的所述第一权限,访问所述第一资源;
所述电子设备终止所述第一代理,或者,所述电子设备撤销所述第一代理具备的所述第一权限。
12.根据权利要求11所述的方法,其特征在于,所述第一权限信息还指示所述第一权限的时效,所述时效为以下任意一项:一次有效、在第一时间内有效或者在第一区域内有效;
所述电子设备终止所述第一代理,或者,所述电子设备撤销所述第一代理具备的所述第一权限,具体包括:
如果所述时效为一次有效,所述电子设备在结束访问所述第一资源后,终止所述第一代理或者撤销所述第一代理具备的所述第一权限;
如果所述时效为在所述第一时间内有效或者在所述第一区域内有效,则所述电子设备在接收到所述第一权限信息的所述第一时间后,或者,在位于非所述第一区域时,终止所述第一代理或者撤销所述第一代理具备的所述第一权限。
13.根据权利要求11所述的方法,其特征在于,所述电子设备终止所述第一代理,或者,所述电子设备撤销所述第一代理具备的所述第一权限,具体包括:
所述电子设备在结束访问所述第一资源后,或者,在结束访问所述第一资源的第二时间后,终止所述第一代理或者撤销所述第一代理具备的所述第一权限。
14.根据权利要求11-13任一项所述的方法,其特征在于,
所述电子设备将访问所述第一代理的权限授予所述被调用者,具体包括:所述电子设备将访问所述第一代理的权限授予所述被调用者的第一实例;
所述电子设备运行所述被调用者,访问所述第一代理,具体包括:所述电子设备运行所述第一实例,访问所述第一代理;
所述方法还包括:
所述电子设备接收到第三设备发送的第二访问请求和第二权限信息,所述第二访问请求用于所述第三设备中的第二调用者调用所述被调用者以访问所述第一资源,所述第二权限信息指示第二权限,所述第二权限包括调用所述被调用者的权限,和/或,访问所述第一资源的权限;所述第二调用者为所述APP或所述功能组件;
所述电子设备响应于所述第二访问请求,将所述第二权限授予第二代理,将访问所述第二代理的权限授予所述被调用者的第二实例,所述第二代理为服务、进程或线程;
所述电子设备运行所述第二实例,访问所述第二代理,并通过所述第二代理具备的所述第二权限,访问所述第一资源;
其中,所述第一实例、所述第二实例为随机存取存储器RAM中运行的进程或线程,所述第二实例不同于所述第一实例,所述第二实例和所述第一实例相互隔离。
15.根据权利要求14所述的方法,其特征在于,所述电子设备将访问所述第一代理的权限授予所述被调用者的第一实例之前,所述方法还包括:
所述电子设备响应于所述第一访问请求,创建所述第一实例。
16.根据权利要求11-15任一项所述的方法,其特征在于,所述第一代理包括:第一路由代理、第一撤销代理;所述第一路由代理、所述第一撤销代理为服务、进程或线程;
所述电子设备将所述第一权限授予第一代理,将访问所述第一代理的权限授予所述被调用者,具体包括:所述电子设备将所述第一权限授予所述第一撤销代理,将访问所述第一路由代理的权限授予所述被调用者;
所述电子设备运行所述被调用者,访问所述第一代理,并通过所述第一代理具备的所述第一权限,访问所述第一资源,具体包括:所述电子设备运行所述被调用者,通过所述第一路由代理访问所述第一撤销代理,并通过所述第一撤销代理具备的所述第一权限,访问所述第一资源;
所述电子设备终止所述第一代理,或者,所述电子设备撤销所述第一代理具备的所述第一权限,具体包括:所述电子设备终止所述第一路由代理和/或所述第一撤销代理,或者,所述电子设备撤销所述第一撤销代理具备的所述第一权限。
17.根据权利要求11-16任一项所述的方法,其特征在于,所述电子设备响应于所述第一访问请求,将所述第一权限授予第一代理之前,所述方法还包括:
所述电子设备响应于所述第一访问请求,创建所述第一代理。
18.根据权利要求11-17任一项所述的方法,其特征在于,所述第一权限具体包括:
所述第二设备调用所述被调用者的权限,和/或,所述第二设备访问所述第一资源的权限;
和/或,
所述第一调用者调用所述被调用者的权限,和/或,所述第一调用者访问所述第一资源的权限。
19.根据权利要求11-18任一项所述的方法,其特征在于,所述电子设备接收到所述第二设备发送的第一访问请求和第一权限信息,具体包括:
所述电子设备接收到所述第二设备发送的第一访问请求,所述第一访问请求携带有第一权限信息。
20.一种精准撤销权限的访问控制方法,其特征在于,所述方法应用于电子设备,所述电子设备中安装有第一调用者和被调用者,所述第一调用者、所述被调用者为应用程序APP或功能组件,所述APP为实现多个功能的程序实体,所述功能组件为实现单一功能的程序实体;所述方法包括:
所述电子设备生成第一访问请求,并获取第一权限,所述第一访问请求用于所述第一调用者调用所述被调用者以访问所述电子设备中的第一资源,所述第一权限包括调用所述被调用者的权限,和/或,访问所述第一资源的权限;
所述电子设备响应于所述第一访问请求,将所述第一权限授予第一代理,将访问所述第一代理的权限授予所述被调用者;
所述电子设备运行所述被调用者,访问所述第一代理,并通过所述第一代理具备的所述第一权限,访问所述第一资源;
所述电子设备终止所述第一代理,或者,所述电子设备撤销所述第一代理具备的所述第一权限。
21.根据权利要求20所述的方法,其特征在于,所述第一权限具有时效,所述时效为以下任意一项:一次有效、在第一时间内有效或者在第一区域内有效;
所述电子设备终止所述第一代理,或者,所述电子设备撤销所述第一代理具备的所述第一权限,具体包括:
如果所述时效为一次有效,所述电子设备在结束访问所述第一资源后,终止所述第一代理或者撤销所述第一代理具备的所述第一权限;
如果所述时效为在所述第一时间内有效或者在所述第一区域内有效,则所述电子设备在接收到所述第一权限信息的所述第一时间后,或者,在位于非所述第一区域时,终止所述第一代理或者撤销所述第一代理具备的所述第一权限。
22.根据权利要求20所述的方法,其特征在于,所述电子设备终止所述第一代理,或者,所述电子设备撤销所述第一代理具备的所述第一权限,具体包括:
所述电子设备在结束访问所述第一资源后,或者,在结束访问所述第一资源的第二时间后,终止所述第一代理或者撤销所述第一代理具备的所述第一权限。
23.根据权利要求20-22任一项所述的方法,其特征在于,所述电子设备中还安装有第二调用者,所述第二调用者为所述APP或所述功能组件;
所述电子设备将访问所述第一代理的权限授予所述被调用者,具体包括:所述电子设备将访问所述第一代理的权限授予所述被调用者的第一实例;
所述电子设备运行所述被调用者,访问所述第一代理,具体包括:所述电子设备运行所述第一实例,访问所述第一代理;
所述方法还包括:
所述电子设备生成第二访问请求,并获取第二权限,所述第二访问请求用于所述第二调用者调用所述被调用者以访问所述第一资源,所述第二权限包括调用所述被调用者的权限,和/或,访问所述第一资源的权限;
所述电子设备响应于所述第二访问请求,将所述第二权限授予第二代理,将访问所述第二代理的权限授予所述被调用者的第二实例,所述第二代理为服务、进程或线程;
所述电子设备运行所述第二实例,访问所述第二代理,并通过所述第二代理具备的所述第二权限,访问所述第一资源;
其中,所述第一实例、所述第二实例为随机存取存储器RAM中运行的进程或线程,所述第二实例不同于所述第一实例,所述第二实例和所述第一实例相互隔离。
24.根据权利要求23所述的方法,其特征在于,所述电子设备将访问所述第一代理的权限授予所述被调用者的第一实例之前,所述方法还包括:
所述电子设备响应于所述第一访问请求,创建所述第一实例。
25.根据权利要求20-24任一项所述的方法,其特征在于,所述第一代理包括:第一路由代理、第一撤销代理;所述第一路由代理、所述第一撤销代理为服务、进程或线程;
所述电子设备将所述第一权限授予第一代理,将访问所述第一代理的权限授予所述被调用者,具体包括:所述电子设备将所述第一权限授予所述第一撤销代理,将访问所述第一路由代理的权限授予所述被调用者;
所述电子设备运行所述被调用者,访问所述第一代理,并通过所述第一代理具备的所述第一权限,访问所述第一资源,具体包括:所述电子设备运行所述被调用者,通过所述第一路由代理访问所述第一撤销代理,并通过所述第一撤销代理具备的所述第一权限,访问所述第一资源;
所述电子设备终止所述第一代理,或者,所述电子设备撤销所述第一代理具备的所述第一权限,具体包括:所述电子设备终止所述第一路由代理和/或所述第一撤销代理,或者,所述电子设备撤销所述第一撤销代理具备的所述第一权限。
26.根据权利要求20-25任一项所述的方法,其特征在于,所述电子设备响应于所述第一访问请求,将所述第一权限授予第一代理之前,所述方法还包括:
所述电子设备响应于所述第一访问请求,创建所述第一代理。
27.根据权利要求20-26任一项所述的方法,其特征在于,所述第一权限具体包括:
所述电子设备调用所述被调用者的权限,和/或,所述电子设备访问所述第一资源的权限;
和/或,
所述第一调用者调用所述被调用者的权限,和/或,所述第一调用者访问所述第一资源的权限。
28.根据权利要求20-27任一项所述的方法,其特征在于,所述电子设备获取第一权限之前,所述方法还包括:
所述电子设备输出提示信息,所述提示信息用于提示所述第一权限;
所述电子设备接收到用户操作。
29.一种电子设备,其特征在于,包括:存储器、一个或多个处理器;所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求11-19或20-28中任一项所述的方法。
30.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求11-19或20-28中任一项所述的方法。
31.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得计算机执行如权利要求11-19或20-28中任一项所述的方法。
32.一种通信***,其特征在于,所述通信***包括:第一设备、第二设备,所述第一设备用于执行如权利要求11-19中任一项所述的方法。
CN202210211570.XA 2021-03-26 2022-03-04 精准撤销权限的访问控制方法、相关装置及*** Pending CN115130132A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/082869 WO2022199672A1 (zh) 2021-03-26 2022-03-24 精准撤销权限的访问控制方法、相关装置及***

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110327079 2021-03-26
CN2021103270799 2021-03-26

Publications (1)

Publication Number Publication Date
CN115130132A true CN115130132A (zh) 2022-09-30

Family

ID=83376285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210211570.XA Pending CN115130132A (zh) 2021-03-26 2022-03-04 精准撤销权限的访问控制方法、相关装置及***

Country Status (2)

Country Link
CN (1) CN115130132A (zh)
WO (1) WO2022199672A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116702100A (zh) * 2022-10-21 2023-09-05 荣耀终端有限公司 权限管理方法和电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101097592B (zh) * 2006-06-26 2011-10-05 华为技术有限公司 一种对权限进行操作的方法和装置
US8995646B2 (en) * 2013-06-13 2015-03-31 Jacada Inc. System and method for identifying a caller via a call connection, and matching the caller to a user session involving the caller
CN107784221B (zh) * 2016-08-30 2021-07-27 斑马智行网络(香港)有限公司 权限控制方法、服务提供方法、装置、***及电子设备
CN111859418B (zh) * 2020-06-24 2024-07-05 华为技术有限公司 原子能力调用方法及终端设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116702100A (zh) * 2022-10-21 2023-09-05 荣耀终端有限公司 权限管理方法和电子设备
CN116702100B (zh) * 2022-10-21 2024-04-16 荣耀终端有限公司 权限管理方法和电子设备

Also Published As

Publication number Publication date
WO2022199672A1 (zh) 2022-09-29

Similar Documents

Publication Publication Date Title
KR102484738B1 (ko) 어플리케이션 권한을 관리하는 방법 및 전자 장치
US20240232428A9 (en) Access control method, electronic device, and system
KR20210042953A (ko) 보안 서비스 삭제 방법 및 전자 장치
WO2022247626A1 (zh) 基于应用身份的访问控制方法、相关装置及***
WO2020107463A1 (zh) 一种电子设备的控制方法及电子设备
CN115238299A (zh) 基于安全等级的访问控制方法、相关装置及***
EP4407421A1 (en) Device collaboration method and related apparatus
WO2022253158A1 (zh) 一种用户隐私保护方法及装置
CN114546969A (zh) 一种文件共享方法、装置及电子设备
EP4266202A1 (en) Data protection method and system, and medium and electronic device
CN115130132A (zh) 精准撤销权限的访问控制方法、相关装置及***
CN115114637A (zh) 基于权限传递的访问控制方法、相关装置及***
EP4177777A1 (en) Flexibly authorized access control method, and related apparatus and system
US20240176872A1 (en) Access Control Method, Electronic Device, and System
CN115203731A (zh) 基于安全敏感度的访问控制方法、相关装置及***
CN115203716A (zh) 权限同步方法、相关装置及***
WO2022194156A1 (zh) 分布式的访问控制方法、相关装置及***
WO2023284555A1 (zh) 安全调用服务的方法、安全注册服务的方法及装置
CN115017498A (zh) 小应用程序的操作方法和电子设备
CN115268710A (zh) 应用程序的登录方法、相关装置和***
CN115146305A (zh) 基于访问策略的访问控制方法、相关装置及***
CN115426122A (zh) 基于权限适配的访问控制方法、相关装置及***
CN114996667A (zh) 跨设备的访问控制方法、相关装置及***
EP4350544A1 (en) Access control method and related apparatus
CN115114636A (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