CN112214752A - 应用权限的动态控制方法、装置和设备及存储介质 - Google Patents
应用权限的动态控制方法、装置和设备及存储介质 Download PDFInfo
- Publication number
- CN112214752A CN112214752A CN202011125380.3A CN202011125380A CN112214752A CN 112214752 A CN112214752 A CN 112214752A CN 202011125380 A CN202011125380 A CN 202011125380A CN 112214752 A CN112214752 A CN 112214752A
- Authority
- CN
- China
- Prior art keywords
- application
- terminal
- authority
- configuration data
- target application
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种应用权限的动态控制方法、装置和设备及存储介质,涉及计算机技术领域,用于解决企业需要对员工的多个终端设备进行权限管理的需求无法满足的问题。当安装目标应用时,可以向终端管理服务器请求该目标应用针对该终端的初始权限配置数据,这样,目标应用包括的权限管理模块可以根据初始权限配置数据进行初始化和权限配置数据的更新,进而根据权限配置数据对目标应用进行权限控制,从而实现对于终端设备中应用权限的动态管理和控制。
Description
技术领域
本申请涉及计算机技术领域,提供一种应用权限的动态控制方法、装置和设备及存储介质。
背景技术
随着智能设备的普及以及移动互联网的持续迅猛发展,智能设备已经逐渐成为人们生活的一部分。但针对金融行业、政务部门甚至加工工厂这些大型企业都迫切需要针对用户手机的安全性进行限制,其目的是为了满足企业大量的使用手机或者平板等移动设备进行办公,但需要对一些移动设备的功能进行安全限制。例如,为避免不法分子随便拍照泄露产品信息,电子厂一线员工上班期间通常不让带手机,但这样会给员工带来不便;或者,在政务部门中,越来越多的政务办公软件都已经逐步互联网化,但是如何让政务办公更加高效的同时,确保政务信息得到保密,同时又让政务部门工作人员的工作环境较友好,成为了需要解决的问题。
而目前针对终端设备管理的方案通常只是对设备本身进行信息的展示和读取,如手机管家类应用,但是该类应用通常只能设备持有者自行操作各个应用的权限,且能够操作的权限有限,针对企业级别需要对员工的多个终端设备进行权限管理时,无法适用,因此对于企业需要对员工的多个终端设备进行权限管理的需求仍然无法满足。
发明内容
本申请实施例提供一种应用权限的动态控制方法、装置和设备及存储介质,用于解决企业需要对员工的多个终端设备进行权限管理的需求无法满足的问题。
一方面,提供一种应用权限的动态控制方法,所述方法包括:
根据针对终端管理客户端的应用列表中的目标应用进行的安装操作,向终端管理服务器发送应用安装请求;
接收所述终端管理服务器根据所述应用安装请求,向所述终端管理客户端返回的所述目标应用对应于所述终端管理客户端所在终端设备的初始权限配置数据;以及,
接收所述终端管理服务器向所述终端设备的操作系统发送的指示安装所述目标应用的应用安装指令;
响应于所述应用安装指令安装所述目标应用,其中,所述目标应用包括的权限管理模块根据所述初始权限配置数据进行初始化;
通过所述权限管理模块更新所述目标应用的权限配置数据,并根据权限配置数据对所述目标应用进行权限管理。
一方面,提供一种应用权限的动态控制方法,所述方法包括:
接收终端管理客户端发送的在所述终端管理客户端所在终端设备中安装目标应用的应用安装请求;
向所述终端设备的推送服务器发送与所述终端设备的操作系统建立连接的连接请求;
根据所述操作系统返回的连接响应,与所述操作系统建立连接;
向所述终端设备的操作系统发送应用安装指令;
获取所述目标应用对应于所述终端设备的初始权限配置数据;
将所述初始权限配置数据发送给所述终端管理客户端。
一方面,提供一种应用权限的动态控制装置,所述装置包括:
收发单元,用于根据针对终端管理客户端的应用列表中的目标应用进行的安装操作,向终端管理服务器发送应用安装请求;
所述收发单元,还用于接收所述终端管理服务器根据所述应用安装请求,向所述终端管理客户端返回的所述目标应用对应于所述终端管理客户端所在终端设备的初始权限配置数据;以及,接收所述终端管理服务器向所述终端设备的操作系统发送的指示安装所述目标应用的应用安装指令;
执行单元,用于响应于所述应用安装指令安装所述目标应用,其中,所述目标应用包括的权限管理模块根据所述初始权限配置数据进行初始化;
权限管理单元,用于通过所述权限管理模块更新所述目标应用的权限配置数据,并根据权限配置数据对所述目标应用进行权限管理。
一方面,提供一种应用权限的动态控制装置,所述装置包括:
收发单元,用于接收终端管理客户端发送的在所述终端管理客户端所在终端设备中安装目标应用的应用安装请求;
所述收发单元,还用于向所述终端设备的推送服务器发送与所述终端设备的操作系统建立连接的连接请求;
连接建立单元,用于根据所述操作系统返回的连接响应,与所述操作系统建立连接;
所述收发单元,还用于向所述终端设备的操作系统发送应用安装指令;
获取单元,用于获取所述目标应用对应于所述终端设备的初始权限配置数据;
所述收发单元,还用于将所述初始权限配置数据发送给所述终端管理客户端。
一方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一种方法的步骤。
一方面,提供一种计算机存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述任一种方法的步骤。
一方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一种方法的步骤。
本申请实施例中,通过在受控终端中安装终端管理客户端,当通过终端管理客户端中安装目标应用时,可以向终端管理服务器请求该目标应用针对该终端的初始权限配置数据,这样,目标应用在安装时,目标应用包括的权限管理模块可以根据初始权限配置数据进行初始化和权限配置数据的更新,以及对目标应用的权限控制,从而实现对于终端设备中应用权限的动态管理和控制。可见,对于企业而言,企业员工在自己的终端中安装企业的终端管理客户端之后,则可以对各个员工终端中的应用权限进行动态管理和控制。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为相关技术提供的MDM的流程示意图;
图2为本申请实施例提供的应用架构示意图;
图3为本申请实施例提供的系统架构示意图;
图4为本申请实施例提供的应用权限的动态控制方法的流程示意图;
图5为本申请实施例提供的应用列表界面的一种示意图;
图6为本申请实施例提供的应用权限的动态控制方法的另一流程示意图;
图7为本申请实施例提供的应用安装界面示意图;
图8为本申请实施例提供的应用权限配置页面的示意图;
图9为本申请实施例提供的应用打包过程的流程示意图;
图10为本申请实施例提供的进行应用打包的界面示意图;
图11为本申请实施例提供的Mach-O文件的结构示意图;
图12为本申请实施例提供的以IOS操作系统为例,进行打包的流程示意图;
图13为本申请实施例提供的修改后的Load Command结构的示意图;
图14为本申请实施例提供的一种应用权限的动态控制装置的结构示意图;
图15为本申请实施例提供的另一种应用权限的动态控制装置的结构示意图;
图16为本申请实施例提供的终端管理系统的架构示意图;
图17为本申请实施例提供的计算机设备的一种结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
为便于理解本申请实施例提供的技术方案,这里先对本申请实施例使用的一些关键名词进行解释:
应用程序:指的是一种可以在计算机设备上安装的客户端软件,例如针对IOS操作系统而言,可以是在iPhone手机或者iPAD上安装的客户端软件,这些应用可以通过XCode软件安装或通过iTunes下载,其文件格式为ipa文件。
应用权限:指的是可通过应用程序访问的系统权限,例如照片访问权限、地理位置权限、通知权限、网络权限、剪切板权限以及摄像头权限等。
Mach-O(Mach Object):是IOS设备或者Mac设备上的一种可执行文件的格式,类似于Linux上的ELF(Executable and Linking Format)格式。除了可执行文件外,在IOS设备或者Mac设备中后缀为.a、.dylib、.framework的文件都是Mach-O格式的文件,Mach-O可以支持多种进阶精简指令集机器(Advanced RISC Machine,ARM)架构。
Dyld(The dynamic link editor):为IOS操作系统或者Mac操作系统中的动态链接器,用于加载动态链接库文件。
Dylib:为IOS操作系统中动态链接库文件格式。
目前,针对终端设备管理的方案通常只是对设备本身进行信息的展示和读取,如手机管家类应用,但是该类应用通常只能设备持有者自行操作各个应用的权限,且能够操作的权限有限,针对企业级别需要对员工的多个终端设备进行权限管理时,无法适用,因此对于企业需要对员工的多个终端设备进行权限管理的需求让然无法满足。因此为了能动态管理移动设备上的应用程序,苹果提出了移动设备管理(Moblie Device Management,MDM)服务方案。
如图1所示,为MDM的流程示意图。其中,为实现MDM服务,需要涉及苹果推送服务器(Apple Push Notification Server,APNs)11、MDM服务器10和受控设备12,三者之间通过超文本传输安全协议(Hypertext Transfer Protocol Secure,HTTPS)相互通信,推送时需要具有推送证书。在没有操作的情况下,除了受控设备12和APNs 11之间保持连接,MDM服务器10和受控设备12不在连接状态。
在实际使用时,MDM服务器10可以向APNs 11发送一个命令,来唤醒受控设备12去主动连接MDM服务器10,报告其当前状态是否处于空闲,如果空闲则可以发送指令对各个受控设备12进行管理,获取相关信息及操作,回应响应设备操作。APNs 11则可看作MDM服务器10和受控设备12之间的信息桥梁,可转发MDM服务器10的指令给受控设备12,通知受控设备12连接服务器。
利用MDM服务完成一次指令推送需要如下过程:
(1)MDM服务器10向APNs 11发送一个命令,与APNs 11建立连接。
(2)APNs 11向受控设备12推送消息,唤醒受控设备12去主动连接MDM服务器10。
(3)当受控设备12收到APNs 11的推送消息时,主动连接MDM服务器10报告本身的状态空闲。
(4)MDM服务器10收到受控设备12发来的状态信息,向受控设备12发出操作命令。
(5)受控设备12收到命令执行,并返回结果。
(6)MDM服务器10响应,此次查询完成,连接关闭。
MDM方案提供了设备管理的通道,但是对于如何利用通道来达到管理设备应用程序权限的目的还并未具体深入。而相关技术中为了能够对设备进行“强管控”,通常需要将用户的设备重新格式化,这一点对于用户来说是很难接受的。此外,为了实现权限控制,通常还需要针对每个应用程序开发SDK)并集成到应用程序中,开发周期较长,效率不高。
基于此,本申请实施例提供一种应用权限的动态控制方法,在该方法中,通过在受控终端中安装终端管理客户端,当通过终端管理客户端中安装目标应用时,可以向终端管理服务器请求该目标应用针对该终端的初始权限配置数据,这样,目标应用在安装时,目标应用包括的权限管理模块可以根据初始权限配置数据进行初始化和权限配置数据的更新,以及对目标应用的权限控制,从而实现对于终端设备中应用权限的动态管理和控制。可见,对于企业而言,企业员工在自己的终端中安装企业的终端管理客户端之后,则可以对各个员工终端中的应用权限进行动态管理和控制,更为方便且提升企业机密信息的安全性,对于员工来讲,该方法无需对终端进行格式化,因而接受程度更高。
此外,本申请实施例中,可以通过终端已有的指令下发通道,例如上述苹果提供的MDM服务通道,构造上报、删除或者安装应用程序的指令,进而可以通过配置管理后台达到对应用程序进行管理的目的。此外,在管理后台定期进行权限配置信息的更新后,应用中的权限管理模块可以动态的从指定地址获取更新权限配置数据,从而实现动态调整应用程序的权限的效果。
本申请实施例中,为便于实现应用的权限管理功能,在应用中增加了权限管理模块,相应的,可以通过对应用对应的可执行文件的命令加载结构进行更改,在其中增加加载权限管理模块对应的动态链接库文件加载命令,从而在应用安装并启动后,自动加载权限管理模块,实现应用权限的动态管理。因此,企业针对自己的应用程序想要增加应用权限动态管理的功能时,只需通过打包工具自动将权限管理模块增加到应用程序中,因而无需复杂的开发过程,更为方便快捷。
在介绍完本申请实施例的设计思想之后,下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
本申请实施例提供的方案可以适用于大多数需要进行应用权限管理的场景中,尤其适用于企业需要对员工持有终端中的应用权限进行管理的场景。如图2所示,为本申请实施例提供的方案能够适用的一种应用架构示意图,可以包括终端管理服务器20、推送服务器21和一个或者多个终端设备22。
终端管理服务器20和推送服务器21可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
终端设备22例如可以为手机、PC、智能电视、平板电脑、笔记本电脑、智能可穿戴设备以及车载设备等电子设备。
终端管理服务器20为终端设备22中安装的终端管理客户端对应的后台服务器,终端管理客户端用于实现统一端点管理(Unified Endpoint Management,UEM)功能,主要用于实现对各个终端设备22中各个应用的权限数据的配置、存储以及下发等功能,以及执行终端中针对应用的操作指令,如数据上报、删除或者安装指令等。终端管理服务器20例如可以为图1所示的MDM服务器10。
推送服务器21为终端的操作系统对应的后台服务器,用于转发终端管理服务器20的指令给相应的终端设备22,以通知终端设备22连接终端管理服务器20。推送服务器21例如可以为图1所示的APNs 11。
终端设备22中可以安装终端管理客户端,进而用户可以通过终端设备22中的终端管理客户端在终端设备22中安装应用,且在安装应用时,终端管理客户端可从终端管理服务器20获取该应用的初始权限配置数据,存储至指定系统数据存储区域中,当应用安装时,该应用中集成的权限管理模块可以从系统数据存储区域读取初始权限配置数据进行初始化,初始化之后,权限管理模块则可以知晓权限配置数据更新的网络地址,进而可在需要更新权限配置数据时,从网络地址获取更新权限配置数据,实现权限配置数据的更新,进而可自动实现应用权限的动态管理。
在具体应用时,终端管理服务器20可以根据功能的不同进行划分,例如可以包括配置数据存储服务器和应用服务器,其中,应用服务器可以用于与终端设备上终端管理客户端以及与终端设备的操作系统实现通信交互,配置数据存储服务器则可以用于权限数据的配置和存储,应用服务器可以从配置数据存储服务器获取权限配置数据,并进行下发。
终端管理服务器20、推送服务器21和一个或者多个终端设备22之间均可通过一个或者多个网络23进行连接,其中,该网络23可以是有线网络,也可以是无线网络,例如无线网络可以是移动蜂窝网络,或者可以是无线保真(WIreless-Fidelity,WIFI)网络,当然还可以是其他可能的网络,本申请实施例对此不做限制。
图2所示的应用架构可以应用于政务办公场景的UEM系统中。在UEM系统中,针对政务系统的工作人员所使用的终端设备,可以将其注册成为受控设备,进而通过该UEM系统对受控设备进行管控,并可根据管控需求来动态设置应用程序的权限,例如需要限制工作人员A的终端设备上应用B的网络权限时,则可以将工作人员A的应用B的权限配置为禁用,相应的,应用B中的权限管理模块则可以在应用B调用网络权限时,禁止应用B调用网络权限,从而避免工作人员A在使用应用B的数据泄漏至网络中。
图2所示的应用架构还可以应用于电子工厂中,例如可以在上班时间段内禁止电子工厂员工的手机摄像应用,这样则可以避免员工上班期间随意拍照泄露产品信息。
当然,本申请实施例提供的方法并不限用于图1所示的应用场景中,还可以用于其他可能的应用场景,本申请实施例并不进行限制。对于图1所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。
在介绍本申请实施例的方法之前,首先对本申请实施例的系统架构进行介绍。如图3所示,在该系统架构中,包括终端管理服务器和受控终端。其中,受控终端上安装有操作系统、终端管理客户端以及被进行应用权限管理的应用。
下面针对终端管理客户端具体进行介绍,终端管理客户端包括如下的功能模块。
(1)安全检测模块,用于在受控终端运行时监测受控终端的安全状态,可以包括如下的功能:
越狱检测功能:对受控终端进行越狱监测,避免受控终端被格式化,进而使得终端管理客户端无法使用,进而无法进行应用权限管理等操作。
WIFI安全检测功能:对网络安全进行监测。
统一资源定位符(Uniform Resource Locator,URL)检测功能:在受控终端使用过程中访问的URL进行安全检测,提升受控终端的安全性。
截录屏检测功能:在受控终端使用过程中,对截录屏操作以及内容进行检测,避免重要信息泄露。
(2)设备管理模块,用于实现设备层面的管理,可以包括如下的功能:
功能限制:对受控终端的设备功能进行一定的限制,如限制摄像头使用等。
远程擦除功能:后台远程对受控终端上的文件以及指令能进行擦除,如动态链接库文件中的指令。
越狱监控功能:对受控终端进行越狱监测,避免受控终端被格式化,进而使得终端管理客户端无法使用,进而无法进行应用权限管理等操作。
远程卸载功能:后台远程卸载受控终端上的应用、插件以及描述文件等。
(3)用户模块,用于实现用户账户相关的功能,可以包括用户登录、用户退出登录、用户注册、用户绑定和用户查询等功能。
(4)应用管理模块,用于对受控终端上的应用进行管理,可以包括如下的功能:
应用安装功能:基于用户的操作或者后台远程操作实现应用安装。
应用删除功能:基于用户的操作或者后台远程操作实现应用删除。
应用发布功能:通过终端管理客户端发布新的能够进行应用权限管理的应用,用户可通过终端管理客户端查看这些应用。
应用升级功能:应用存在更新时,进行应用升级。
在应用管理模块中,最重要的是应用的权限管理子模块,应用的权限管理子模块涉及对网络权限、粘贴板权限、水印设置、摄像头权限、分享权限和定位权限等权限进行管理。
对于权限管理子模块而言,其可以包括终端管理客户端中包括的权限管理子模块,也可以包括位于各个应用中权限管理模块,从而结合实现应用的权限管理。
(5)网络模块,用于实现网络连接功能,可实现网络通道连接管理、网关安全检测、设备标识以及会话管理等功能。
(6)日志上报模块,用于在终端管理客户端运行时,进行日志上报,可以包括安全风险日志、访问操作日志和权限使用日志等日志的上报。例如,可以从各个应用中的权限管理模块获取权限使用日志,进而将权限使用日志发送给终端管理服务器。
(7)数据存储模块,用于实现数据存储功能,可以包括网络配置数据和权限配置数据等数据的存储。
本申请实施例中,终端管理服务器与终端管理客户端、应用中包括的权限管理模块以及受控终端的操作系统之间的数据传输均可以通过加密网络进行,例如在传输权限配置数据时,可以通过加密网络从终端管理服务器获取以及更新,可以采用Https协议。在对各个应用的权限进行设置时,可以通过后台管理页面进行设置,例如后台H5页面来进行设置的,针对不同的应用不同的受控终端,可以设置不同的应用权限。
请参见图4,为本申请实施例提供的应用权限的动态控制方法的流程示意图,该方法的流程介绍如下。由于针对每个受控终端而言,应用权限的动态控制方法的流程是类似的,因此下面以一个终端设备为例进行介绍。
步骤401:终端管理客户端接收针对应用列表中的目标应用进行的安装操作。
步骤402:终端管理客户端向终端管理服务器发送应用安装请求。
当用户想要在终端设备上安装某个应用时,则可以在应用列表中选中想要安装的目标应用,进而终端管理客户端根据用户针对应用列表中的目标应用进行的安装操作,则可以向终端管理服务器发送应用安装请求。其中,应用安装请求可以携带目标应用的标识信息,例如应用名称或者应用ID(appid)等信息,还可以携带用户或者终端设备相关信息。
具体的,用户针对应用列表进行的安装操作可以是针对一个或者多个应用的,相应的,终端管理客户端可以向终端管理服务器请求在终端设备上安装一个或者多个应用。如图5所示,为应用列表界面的一种示意图,用户可以选中目标应用,并点击安装按钮,从而触发终端管理客户端向终端管理服务器发送应用安装请求。
步骤403:终端管理服务器向终端管理客户端发送目标应用针对于该终端设备的初始权限配置数据。
本申请实施例中,终端管理服务器在接收到应用安装请求之后,则会根据所要安装的目标应用查找获取为该终端设备或者对应终端管理客户端上用户配置的初始权限配置数据,并将初始权限配置数据返回给终端管理客户端。
其中,初始权限配置数据包括目标应用中权限管理模块的初始化数据和目标应用的基础权限数据,初始化数据可以包括网络请求的网络地址和参数等,基础权限数据可以包括目标应用当前的权限数据。
步骤404:终端管理服务器向终端设备的操作系统发送应用安装指令。
以IOS操作系统为例,需要使用IOS操作系统提供的MDM服务时,首先安装一个配置描述文件并登记注册使其成为受管理的设备。当收到APNs指令后,根据已安装的配置文件的URL连接MDM服务器并报告其状态,然后接受下终端管理服务器的一步指令,例如设备信息查询指令和上述的应用安装指令等,如查询设备的型号名称(Model Name)、电池电量(Battery Level)、Wi-Fi媒体存取控制(Media Access Control,MAC)位址等,终端设备收到XML格式的指令后再向终端管理服务器传送其相关查询的信息,如果不需要继续发送指令,终端管理服务器关闭连接。
在终端管理服务器与终端设备的操作系统建立连接之后,则可以通过终端管理服务器与操作系统之间的连接通道,向操作系统发送应用安装指令。
步骤405:终端设备的操作系统执行应用安装指令,在终端设备中安装目标应用。
具体的,终端设备上的终端管理客户端接收终端管理服务器发送的初始权限配置数据之后,则可以将初始权限配置数据存储至设定的系统数据存储区域中,这样,目标应用安装时或者之后,权限管理模块则可以从该系统数据存储区域读取初始权限配置数据,进而根据初始权限配置数据进行初始化。其中,设定的系统数据存储区域为终端管理客户端与权限管理模块均已知的存储路径,例如可以为目标应用相关的存储路径。
步骤406:权限管理模块更新所述目标应用的权限配置数据,并根据权限配置数据对所述目标应用进行权限管理。
具体的,可以在目标应用安装时或者在目标应用启动时,调用动态链接加载其加载应用安装包中的权限管理模块对应的动态链接库文件,以使得权限管理模块运行,从而从系统数据存储区域获取初始权限配置数据,并根据初始权限配置数据进行初始化。以IOS操作系统为例,可以调用Dyld加载权限管理模块对应的.Dylib文件。
具体的,权限管理模块可以根据初始权限配置数据包括的初始化数据获知权限配置数据更新的网络地址,这样,在需要进行权限配置数据的更新时,则权限管理模块可以根据该网络地址获取更新权限配置数据,并且,权限管理模块还可以根据初始权限配置数据包括的基础权限数据对目标应用的应用权限进行监控。当权限管理模块进行初始化之后,则在目标应用运行时,则可以根据目标应用的权限配置数据对目标应用的应用权限进行管理。
需要说明的是,上述的步骤403与上述步骤404~步骤405的过程并没有实质上的先后顺序,在实际执行过程中,可以同时执行,也可以先后顺序执行。
本申请实施例中,为了能够使用终端管理客户端的应用权限管理等功能,首先需要在终端设备上安装终端管理客户端。如图6所示,为本申请实施例提供的应用权限的动态控制方法的另一种流程示意图。
在实际使用时,针对不同的操作系统,终端管理客户端的安装使用可能有所不同,以IOS操作系统为例,在终端管理客户端安装时或者之后,在使用终端管理客户端时,需要安装该终端管理客户端的描述文件(profile),其中,描述文件是一个设置文件,主要是用来进行URL地址设定和参数配置。配置描述文件可以是可扩展标记语言(eXtensibleMarkup Language,XML)文件,该描述文件可包括设备的安全策略和限制、系统配置信息、无线局域网设置、电子邮件帐户和日历帐户以及可允许终端设备配合企业系统使用的鉴定凭证,配置描述文件能快速地将设置和授权信息载入到终端设备上。
步骤601:终端管理客户端上报设备相关信息。
本申请实施例中,在使用终端管理客户端时,用户需要进行注册并进行登录,以在终端管理服务器中将终端设备注册为受控终端。
具体的,终端管理客户端可以根据针对终端管理客户端进行的注册操作,向终端管理服务器发送将终端设备注册为受控终端的注册请求,并接收终端管理服务器响应注册请求返回的注册结果,并在终端管理客户端展示注册结果。
注册完成后,终端管理客户端还可以向终端管理服务器上报该终端设备的设备相关信息,具体可根据系统选择相应的上报方式,例如可以通过HTTPS和PUT协议及XML格式上报相应的设备相关信息,信息可包括设备的设备令牌(Token)、设备唯一标识符(UDID)以及终端管理服务器分配给终端设备的,用于在推送时唯一标记设备的识别符(PushMagic)。
步骤602:终端管理客户端拉取应用列表并进行展示。
本申请实施例中,终端管理客户端在用户注册登录之后,则可以在应用列表界面展示应用列表。
在实际使用时,终端管理客户端可以根据用户在终端管理客户端中打开应用列表界面的触发操作,显示包含有应用列表的界面。例如,触发操作可以为启动终端管理客户端的操作,或者触发操作可以为在终端管理客户端中对展示应用列表界面的按钮进行的操作。
如图5所示,响应于上述的触发操作,终端管理客户端可以向终端管理服务器请求该用户或者该终端和设备的应用列表,进而在终端管理服务器返回应用列表数据后,基于应用列表数据在应用列表界面可以展示应用列表界面。在应用列表界面中,可以包括多个应用的展示,例如图5中可安装的应用1和应用2,以及已安装且可升级的应用3,当应用数量过多,用户还可通过应用列表界面中的应用搜索框搜索自己想要的应用。
步骤603:终端管理客户端向终端管理服务器发送应用安装请求。
步骤604:终端管理服务器向推送服务器请求与操作系统之间建立连接。
本申请实施例中,终端管理服务器可以通过与终端设备的操作系统之间的连接通道下发应用安装指令,例如,可以通过IOS系统提供的MDM通道进行应用安装。那么,终端管理服务器需要与操作系统之间建立连接,因此,终端管理服务器可向终端设备的推送服务器发送请求,以请求与操作系统之间建立连接。
其中,该连接请求可携带终端设备的设备标识,以请求与该设备标识对应的终端设备的操作系统建立连接。
步骤605:推送服务器唤醒终端设备,以与终端管理服务器建立连接。
步骤606:终端设备向终端管理服务器发送连接响应,与终端管理服务器建立连接。
其中,终端设备在确定自身空闲时,向终端管理服务器返回连接响应,以使得自身操作系统与终端管理服务器建立连接,相应的,终端管理服务器根据终端设备的操作系统返回的连接响应,与该操作系统建立连接。
步骤607:终端管理服务器向终端设备的操作系统发送应用安装指令。
步骤608:终端设备的操作系统执行应用安装指令,在终端设备中安装目标应用。
该应用安装指令用于指示在终端设备中安装目标应用。
本申请实施例中,除了用户自行安装应用之外,后台管理人员还可以远程下发安装指令,以在终端设备中安装应用。
具体的,后台管理人员可以在终端管理配置端进行应用安装操作,相应的,终端管理服务器可以接收终端管理配置端发送的在至少一个终端设备中安装目标应用的应用安装请求,一方面终端管理服务器向各终端设备的操作系统发送应用安装指令,从而使得各终端设备的操作系统执行应用安装指令后,进行应用的安装;另一方面,终端管理服务器可以获取目标应用对应于各终端设备的初始权限配置数据,并将初始权限配置数据发送给对应终端设备的终端管理客户端。
如图7所示,为终端管理配置端中的一种应用安装界面示意图。其中,后台管理人员可以选择要安装的应用,以及需要安装该应用的终端或者用户,并且针对每一应用进行应用权限设置后,则可以确认安装,从而向终端管理服务器发送应用安装请求。
同样的,除了应用安装之外,终端管理服务器还可以指示进行应用删除等操作,该操作过程与安装过程类似,因此不再进行赘述。
步骤609:终端管理服务器向终端管理客户端发送目标应用针对于该终端设备的初始权限配置数据。
步骤610:终端管理客户端将初始权限配置数据存储至设定的系统数据存储区域中。
需要说明的是,上述的步骤604~步骤608的过程与上述步骤609~步骤610的过程并没有实质上的先后顺序,在实际执行过程中,可以同时执行,也可以先后顺序执行。
步骤611:目标应用中的权限管理模块从系统数据存储区域获取初始权限配置数据。
步骤612:权限管理模块根据初始权限配置数据进行初始化。
步骤613:终端管理配置端设置权限配置数据。
在实际应用过程中,可能需要对某个终端设备或者某个应用的应用权限进行调整,通常这种调整可以有企业的IT人员或者后台管理人员进行调整,那么其可以在终端管理配置端上的权限配置页面上进行设置,例如选择需要调整的终端设备或者用户以及设置调整后的权限数据,并在设置好之后向终端管理服务器发起配置请求,用于指示终端管理服务器配置目标应用对应的至少一个终端设备的权限配置数据。
如图8所示,为终端管理配置端中的应用权限配置页面的一种示意图。其中,后台管理人员选定需要配置的应用和终端后,可以针对每项权限进行选择,设置完成之后,确认配置,则可以向终端管理服务器发起配置请求。如图8所示,后台管理人员可以设置是否允许目标应用调用粘贴板、摄像头、分享以及媒体库权限等,以及还可以设置在进行数据传输时,是否需要在为文件中添加水印等。
步骤614:终端管理配置端请求终端管理服务器更新权限配置数据。
相应的,终端管理服务器可以响应的权限配置页面进行配置操作触发的配置请求,根据配置请求携带的权限配置数据配置或者更新该配置请求指示的目标应用对应的至少一个终端设备的权限配置数据。
步骤615:权限配置模块监测目标应用的权限配置数据更新时机到达时,根据网络地址向终端管理服务器发送更新请求。
本申请实施例中,为了能够对目标应用的权限进行动态管理,目标应用中的权限配置模块可以对目标应用的权限配置数据更新时机进行监控,以在目标应用的权限配置数据更新时机到达,进行权限配置数据的更新。
具体的,权限配置数据更新方式可以包括但不限于如下几种:
(1)定时进行更新,那么权限配置模块可以监控是否到达设定的更新周期,当到达设定的更新周期时,则权限配置模块则可以进行权限配置数据的更新。
(2)更新时机可以为目标应用从未连接网络状态切换至网络连接状态时,那么目标应用从未连接网络状态切换至网络连接状态时,则权限配置模块则可以进行权限配置数据的更新。
(3)更新时机可以为终端管理服务器下发了更新指令,那么权限配置模块则可以进行权限配置数据的更新。
(4)更新时机可以为目标应用启动时,则当目标应用启动时,趣新年配置模块也相应的启动,那么权限配置模块也可以检查是否进行权限配置数据的更新。
具体的,权限管理模块可以向终端管理服务器请求全新配置数据的最新版本号等信息,当确定与当前的版本号不一致时,则可以进行权限配置数据的更新。
当权限管理模块更新权限配置数据时,则权限管理模块可以根据初始化时获取的网络地址,从该网络地址获取更新权限配置数据。其中该网络地址可以包括终端管理服务器的地址,那么权限管理模块可以根据该网络地址与终端管理服务器建立连接,从而向终端管理服务器发送更新请求,并接收终端服务器响应于该更新请求返回的更新权限配置数据;或者,该网络可以包括终端权限数据存储服务器中该终端设备或者该用户对应的权限配置数据的存储地址,在该终端设备或者该用户对应的权限配置数据更新后,可以将更新权限配置数据存储至相应存储地址,那么权限管理模块可以直接从该存储地址获取更新权限配置数据。
步骤616:终端管理服务器向权限管理模块下发更新权限配置数据。
步骤617:权限管理模块根据更新后的权限配置数据进行目标应用的应用权限管理。
在权限管理模块获取更新权限配置数据,则可以以更新权限配置数据更新设定的系统数据存储区域存储的权限配置数据,进而权限管理模块可以根据更新后的权限配置数据进行目标应用的应用权限管理。
具体的,权限管理模块可以根据权限配置数据进行目标应用的应用权限管理,可以包括如下的过程。
权限管理模块可以对目标应用的权限请求事件进行监测,进而在监测到设定的权限请求事件触发时,从系统数据存储区域读取权限配置数据,根据读取的权限配置数据确定是否允许目标应用获取系统权限,进而根据确定结果向目标应用返回对应的请求结果。
其中,权限请求事件为目标应用向操作系统请求系统权限时触发的,例如目标应用需要使用摄像头,则目标应用需要向操作系统请求摄像头使用权限,那么权限管理模块则可监测到请求摄像头使用权限触发的权限请求事件,进而根据目标应用对应的权限配置数据确定该目标应用是否被允许使用摄像头,以向目标应用返回响应的请求结果,即当允许时,则允许目标应用调用摄像头权限,而若是不允许时,则禁止目标应用调用摄像头权限。
具体的,权限管理模块可以通过钩子(Hook)技术,将用户或系统操作的相关调用行为进行截取,这里主要是针对应用权限获取,从而根据用户的属性,下发针对此用户的权限控制方案及相关配置,达到权限控制的目的。
在实际应用中,权限管理模块可以结合系统的特性实现应用的权限管理。以IOS操作系统为例,权限管理模块可以结合iOS操作系统的Objective-C的Runtime特性实现应用权限的动态适配,其中,Runtime特性为iOS操作系统的运行时机制,可以动态修改函数执行的代码,比如程序包编译时是A代码,执行时可以是B代码,这样,权限管理模块可以利用Runtime特性对权限配置数据进行动态的更新,并且更新后的权限配置数据同样可以适配。
具体的,当目标应用调用某项系统权限时,权限管理模块可以监控到该调用请求,正常来讲,当用户没有自行限制目标应用在终端设备中的调用权限时,操作系统返回的调用结果通常都是允许的,因而权限管理模块在确定允许目标应用获取系统权限时,放行操作系统返回的调用结果;或者,在确定不允许目标应用获取系统权限时,将操作系统返回的调用结果修改为禁止调用后返回给目标应用。
综上所述,本申请实施例通过终端厂商提供的指令下发通道,构造上报、删除、安装应用程序的指令,可以通过配置管理后台达到管理应用程序的目的。定期进行权限配置信息的更新,做到动态调整应用程序的权限。从而可以有效管理设置应用程序的权限并提供快速打包方案,能有效的满足大型企事业单位及政务部门对设备管理的需求。
本申请实施例中,为了实现应用的权限管理功能,在应用中增加了权限管理模块,相应的,需要在目标应用的安装包内嵌入权限管理模块,如图9所示,为本申请实施例提供的应用打包过程的流程示意图,该过程可以在任意的终端设备上进行,可以是受控终端设备,也可以是非受控终端设备。
步骤901:获取目标应用的初始安装包和对目标应用进行权限管理的权限管理模块对应的动态链接库文件。
本申请实施例中,目标应用为需要增加权限动态管理功能的任意一个应用,初始安装包为未增加权限动态管理功能的该应用的安装包,动态链接库文件为本申请实施例提供的用于实现权限动态管理功能的文件。
本申请实施例的打包方法可以被配置为一个打包工具,以提供给应用打包的需求方进行使用,例如企业在使用自己的应用程序时,若是想要实现该应用的权限动态管理功能,则需要在应用中集成本申请实施例提供的权限管理模块,那么企业人员可以利用本申请实施例提供的打包工具对应用程序进行打包,从而得到具有权限动态管理功能的应用安装包。如图10所示,为进行应用打包的界面示意图,其中,企业人员可以选择需要进行增加权限动态管理功能的应用安装包,并确认进行打包,从而发起打包流程。
步骤902:对初始安装包进行解封装,得到目标应用对应的可执行文件。
步骤903:在可执行文件的命令加载结构中插入加载动态链接库文件的加载命令。
本申请实施例中,针对于不同的操作系统,动态链接库文件的加载命令可以不同,因此可以针对不同的操作系统,增加不同的加载命令,从而最终得到适应于不同操作系统的目标安装包。
步骤904:对动态链接库文件以及更改后的可执行文件进行重签名。
通常而言,应用安装需要经过签名,签名可理解为安装包的认证或者算法加密过程,只有经过签名的包才可以在终端设备上安装。
重签名则是对动态链接库文件在此进行签名,对动态链接库文件重签名之后,则可以对增加了加载命令的可执行文件以及该应用相关的插件进行重签名。
步骤905:调用封装工具对更改后的可执行文件进行封装,得到目标应用对应的包含权限管理功能的目标安装包。
下面以IOS操作系统为例,对上述打包过程进行介绍。在介绍之前,首先对IOS操作系统中可执行文件,即Mach-O文件的结构进行介绍。如图11所示,为Mach-O文件的结构示意图,Mach-O文件主要由以下三部分组成:
(1)Mach-O头部(mach header):描述了Mach-O的中央处理器(centralprocessing unit,CPU)架构、文件类型以及加载命令等该二进制文件的一般信息,如:字节顺序、架构类型和加载指令的数量等,如图11中所示的Header部分。
(2)加载命令(load command):描述了文件中数据的具体组织结构,不同的数据类型使用不同的加载命令表示,如区域的位置、符号表和动态符号表等,如图11所示的loadcommands部分。
(3)数据(Data)部分:通常是对象文件中最大的部分,包含Segement的具体数据,Data中的每个段(segment)的数据都保存在这里,每个段都有一个或多个部分(Section),它们存放了具体的数据与代码,如图11所示的Data部分。
在IOS操作系统中,Load Command加载命令在Mach-O文件加载解析时,可以被内核加载器或者动态链接器dyld调用,因此可以基于的加载原理和Mach-O的文件格式来说,可以通过修改Mach-O的Load command结构来提供快速打包的理论基础和开发依据。
具体的,如图12所示,为以IOS操作系统为例,进行打包的流程示意图。
步骤1201:获取生成待插入的权限管理模块对应的动态链接库文件,在IOS系统中,即dylib文件。
步骤1202:对目标应用的原始压缩安装包进行解压缩,生成解压安装文件。
在IOS系统中,ipa包为IOS操作系统的安装包格式,则原始压缩安装包即为ipa包,则可以对ipa包进行解压缩,得到zip文件。
步骤1203:将权限管理模块的动态链接库文件添加到应用程序的工程目录。
即,将权限管理模块的dylib文件拷贝到应用程序的工程目录中,具体可以添加于任意位置。
步骤1204:对解压安装文件中的头部文件的结构中添加权限管理模块的动态链接库文件的加载命令。
在IOS系统中,即是对Mach-O文件的Load Command结构进行修改,以在LoadCommand结构中添加加载命令。
如图13所示,为修改后的Load Command结构的示意图,其中,增加的“LC_LOAD_DYLIB(libTEMMWrapping.dylib)”为wrapping模块,即权限管理模块的加载命令。在增加加载命令时,可将加载命令增加在Load Command结构的任意位置,如图13所示的插入LoadCommand结构的末尾。
其中,如下表所示,为dylib文件中涉及的命令示例。
命令 | 含义 |
LC_SEGMENT_64 | 将文件中(32位或64位)的段映射到进程地址空间中 |
LC_DYLD_INFO_ONLY | 动态链接相关信息 |
LC_SYMTAB | 符号地址 |
LC_DYSYMTAB | 动态符号表地址 |
LC_LOAD_DYLINKER | 使用谁加载,我们使用dyld |
LC_UUID | 文件的UUID |
LC_VERSION_MIN_MACOSX | 支持最低的操作系统版本 |
LC_SOURCE_VERSION | 源代码版本 |
LC_MAIN | 设置程序主线程的入口地址和栈大小 |
LC_LOAD_DYLIB | 依赖库的路径,包含三方库 |
LC_FUNCTION_STARTS | 函数起始地址表 |
LC_CODE_SIGNATURE | 代码签名 |
步骤1205:对权限管理模块的动态链接库文件进行重签名操作。
步骤1206:对工程目录中的其他的插件进行重签名操作。
步骤1207:对生成的app文件进行重签名操作。
具体的,在重签名其他的插件和app文件时,需要在应用文件夹下保存正确的embedded.mobileprovision文件、正确的编写签名时使用的Entitlements.plist,进而利用codesign命令进行签名。
步骤1208:调用封装工具将.app文件生成可在终端设备中进行安装的安装包文件。
xcrun工具为IOS系统的封装工具,则可以使用xcrun工具将.app文件生成ipa包。
通过对应用对应的可执行文件的命令加载结构进行更改,在其中增加加载权限管理模块对应的动态链接库文件加载命令,从而在应用安装并启动后,自动加载权限管理模块,实现应用权限的动态管理。因此,企业针对自己的应用程序想要增加应用权限动态管理的功能时,只需通过打包工具自动将权限管理模块增加到应用程序中,因而无需复杂的开发过程,更为方便快捷。
请参见图14,基于同一发明构思,本申请实施例还提供了一种应用权限的动态控制装置140,该装置包括:
收发单元1401,用于根据针对终端管理客户端的应用列表中的目标应用进行的安装操作,向终端管理服务器发送应用安装请求;
收发单元1401,还用于接收终端管理服务器根据应用安装请求,向终端管理客户端返回的目标应用对应于终端管理客户端所在终端设备的初始权限配置数据;以及,接收终端管理服务器向终端设备的操作系统发送的指示安装目标应用的应用安装指令;
执行单元1402,用于响应于应用安装指令安装目标应用,其中,目标应用包括的权限管理模块根据初始权限配置数据进行初始化;
权限管理单元1403,用于通过权限管理模块更新目标应用的权限配置数据,并根据权限配置数据对目标应用进行权限管理。
可选的,执行单元1402,用于:
将初始权限配置数据存储至终端设备上设定的系统数据存储区域中;
从系统数据存储区域读取初始权限配置数据,并根据初始权限配置数据进行权限管理模块的初始化。
可选的,收发单元1401,还用于:
接收终端管理服务器通过终端设备的推送服务器发送的与操作系统建立连接的连接请求;
向终端管理服务器返回连接响应,以与终端管理服务器建立连接;
接收终端管理服务器通过与操作系统之间的连接通道发送的应用安装指令。
可选的,执行单元1402,具体用于:
权限管理模块从初始权限配置数据中,获取进行权限更新的网络地址;
在监测到权限配置数据的更新时机到达时,根据网络地址,向终端管理服务器发送更新权限配置数据的更新请求;
接收终端管理服务器根据更新请求,返回的更新权限配置数据;
根据获取的更新权限配置数据进行权限配置数据的更新;
根据更新后的权限配置数据进行目标应用的应用权限管理。
可选的,权限管理单元1403,具体用于:
监测目标应用的权限请求事件;权限请求事件为目标应用向操作系统请求系统权限时触发的;
在监测到设定的权限请求事件触发时,从系统数据存储区域读取权限配置数据;
根据读取的权限配置数据确定是否允许目标应用获取系统权限;
根据确定结果向目标应用返回对应的请求结果。
可选的,权限管理单元1403,具体用于:
在确定允许目标应用获取系统权限时,放行操作系统返回的调用结果;或者,
在确定不允许目标应用获取系统权限时,将操作系统返回的调用结果修改为禁止调用后返回给目标应用。
可选的,权限配置数据的更新时机到达包括如下的任意一种或者多种:
到达设定的更新周期;
目标应用从未连接网络状态切换至网络连接状态;
终端管理客户端对应的终端管理服务器下发了更新指令。
可选的,执行单元1402,还用于:
根据在终端管理客户端中打开应用列表界面的触发操作,从终端管理服务器拉取应用列表;
在终端管理客户端中显示包含有应用列表的界面。
可选的,该装置还包括打包单元1404,用于:
获取目标应用的初始安装包和对权限管理模块对应的动态链接库文件;
对初始安装包进行解封装,得到目标应用对应的可执行文件;
在可执行文件的命令加载结构中插入加载动态链接库文件的加载命令;
对动态链接库文件以及更改后的可执行文件进行重签名;
调用封装工具对更改后的可执行文件进行封装,得到目标应用对应的包含权限管理功能的目标安装包;
根据对目标安装包进行的应用发布操作,将目标安装包上传至终端设备的推送服务器,以发布目标安装包。
该装置可以用于执行图4~图12所示的实施例中所示的方法中终端管理客户端所执行的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考图4~图12所示的实施例的描述,不多赘述。其中,需要说明的是,打包单元1404并不是必选的功能模块,因此在图14中以虚线进行示出。
请参见图15,基于同一发明构思,本申请实施例还提供了一种应用权限的控制装置150,应用于终端管理服务器中,该装置包括:
收发单元1501,用于接收终端管理客户端发送的在终端管理客户端所在终端设备中安装目标应用的应用安装请求;
收发单元1501,还用于向终端设备的推送服务器发送与终端设备的操作系统建立连接的连接请求;
连接建立单元1502,用于根据操作系统返回的连接响应,与操作系统建立连接;
收发单元1501,还用于向终端设备的操作系统发送应用安装指令;
获取单元1503,用于获取目标应用对应于终端设备的初始权限配置数据;
收发单元1501,还用于将初始权限配置数据发送给终端管理客户端。
可选的,
收发单元1501,还用于接收目标应用中的权限管理模块发送的更新权限配置数据的更新请求;
获取单元1503,还用于获取目标应用对应于终端设备的更新权限配置数据;
收发单元1501,还用于将更新权限配置数据发送给权限管理模块。
可选的,
收发单元1501,还用于接收终端管理配置端发送的在至少一个终端设备中安装目标应用的应用安装请求;
收发单元1501,还用于向各终端设备的操作系统发送应用安装指令;
获取单元1503,还用于获取目标应用对应于各终端设备的初始权限配置数据;
收发单元1501,还用于将初始权限配置数据发送给对应终端设备的终端管理客户端。
可选的,
收发单元1501,还用于接收在终端管理配置端的权限配置页面进行配置操作触发的配置请求;根据配置请求携带的权限配置数据配置目标应用对应的至少一个终端设备的权限配置数据。
该装置可以用于执行图4~图12所示的实施例中所示的方法中终端管理服务器所执行的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考图4~图12所示的实施例的描述,不多赘述。
请参见图16,基于同一技术构思,本申请实施例还提供了一种终端管理系统16,该系统可以包括终端管理服务器161和多个受控终端设备162,每一受控终端设备162上安装有终端管理客户端1621和被控制的目标应用1622,在目标应用中包括用于进行权限管理的权限管理模块16221。
具体的,终端管理系统16可以基于用户在终端管理客户端1621中的安装操作,或者终端管理配置端的应用安装指示,指示受控终端设备162的操作系统安装目标应用1622,并下发目标应用1622的初始权限配置数据给终端管理客户端1621,终端管理客户端1621可将初始权限配置数据存储至设定存储区域,在目标应用1622安装时或者之后,则可以读取初始权限配置数据,并基于该初始权限配置数据进行初始化,从而知晓终端管理服务器161或者权限配置数据更新的地址,从而在需要更新权限配置数据时,对权限配置数据进行更新,实现权限的动态管理控制。
该系统包括的各个装置或者设备用于实现图4~图12所示的实施例中所示的方法中各对应装置或者设备所执行的方法,因此,对于该系统的各装置或者设备所能够实现的功能等可参考图4~图12所示的实施例的描述,不多赘述。
请参见图17,基于同一技术构思,本申请实施例还提供了一种计算机设备170,可以包括存储器1701和处理器1702。
所述存储器1701,用于存储处理器1702执行的计算机程序。存储器1701可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据计算机设备的使用所创建的数据等。处理器1702,可以是一个中央处理单元(central processing unit,CPU),或者为数字处理单元等等。本申请实施例中不限定上述存储器1701和处理器1702之间的具体连接介质。本申请实施例在图17中以存储器1701和处理器1702之间通过总线1703连接,总线1703在图17中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线1703可以分为地址总线、数据总线、控制总线等。为便于表示,图17中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1701可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1701也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器1701是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1701可以是上述存储器的组合。
处理器1702,用于调用所述存储器1701中存储的计算机程序时执行如图4~图12所示的实施例中所执行的方法。
在一些可能的实施方式中,本申请提供的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的方法中的步骤,例如,所述计算机设备可以执行如图4~图12所示的实施例中所执行的方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种应用权限的动态控制方法,其特征在于,所述方法包括:
根据针对终端管理客户端的应用列表中的目标应用进行的安装操作,向终端管理服务器发送应用安装请求;
接收所述终端管理服务器根据所述应用安装请求,向所述终端管理客户端返回的所述目标应用对应于所述终端管理客户端所在终端设备的初始权限配置数据;以及,
接收所述终端管理服务器向所述终端设备的操作系统发送的指示安装所述目标应用的应用安装指令;
响应于所述应用安装指令安装所述目标应用,其中,所述目标应用包括的权限管理模块根据所述初始权限配置数据进行初始化;
通过所述权限管理模块更新所述目标应用的权限配置数据,并根据权限配置数据对所述目标应用进行权限管理。
2.如权利要求1所述的方法,其特征在于,在接收所述终端管理服务器根据所述应用安装请求,向所述终端管理客户端返回的所述目标应用对应于所述终端管理客户端所在终端设备的初始权限配置数据之后,所述方法还包括:
将所述初始权限配置数据存储至所述终端设备上设定的系统数据存储区域中;
则所述目标应用包括的权限管理模块根据所述初始权限配置数据进行初始化,包括:
从所述系统数据存储区域读取所述初始权限配置数据,并根据所述初始权限配置数据进行所述权限管理模块的初始化。
3.如权利要求1所述的方法,其特征在于,在所述接收所述终端管理服务器向所述终端设备的操作系统发送的指示安装所述目标应用的应用安装指令之前,所述方法还包括:
接收所述终端管理服务器通过所述终端设备的推送服务器发送的与所述操作系统建立连接的连接请求;
向所述终端管理服务器返回连接响应,以与所述终端管理服务器建立连接;
接收所述终端管理服务器通过与所述操作系统之间的连接通道发送的应用安装指令。
4.如权利要求1所述的方法,其特征在于,
所述目标应用包括的权限管理模块根据所述初始权限配置数据进行初始化,包括:
所述权限管理模块从所述初始权限配置数据中,获取进行权限更新的网络地址;
通过所述权限管理模块更新所述目标应用的权限配置数据,并根据权限配置数据对所述目标应用进行权限管理,包括:
在监测到权限配置数据的更新时机到达时,根据所述网络地址,向所述终端管理服务器发送更新权限配置数据的更新请求;
接收所述终端管理服务器根据所述更新请求,返回的更新权限配置数据;
根据获取的更新权限配置数据进行权限配置数据的更新;
根据更新后的权限配置数据进行所述目标应用的应用权限管理。
5.如权利要求4所述的方法,其特征在于,通过所述权限管理模块根据更新后的权限配置数据进行所述目标应用的应用权限管理,包括:
监测所述目标应用的权限请求事件;所述权限请求事件为所述目标应用向操作系统请求系统权限时触发的;
在监测到设定的权限请求事件触发时,从所述系统数据存储区域读取权限配置数据;
根据读取的权限配置数据确定是否允许所述目标应用获取所述系统权限;
根据确定结果向所述目标应用返回对应的请求结果。
6.如权利要求5所述的方法,其特征在于,根据确定结果向所述目标应用返回对应的请求结果,包括:
在确定允许所述目标应用获取所述系统权限时,放行所述操作系统返回的调用结果;或者,
在确定不允许所述目标应用获取所述系统权限时,将所述操作系统返回的调用结果修改为禁止调用后返回给所述目标应用。
7.如权利要求4所述的方法,其特征在于,所述权限配置数据的更新时机到达包括如下的任意一种或者多种:
到达设定的更新周期;
所述目标应用从未连接网络状态切换至网络连接状态;
所述终端管理客户端对应的终端管理服务器下发了更新指令。
8.如权利要求1所述的方法,其特征在于,在根据针对终端管理客户端的应用列表中的目标应用进行的安装操作,向终端管理服务器发送应用安装请求之前,所述方法还包括:
根据在所述终端管理客户端中打开应用列表界面的触发操作,从所述终端管理服务器拉取应用列表;
在所述终端管理客户端中显示包含有所述应用列表的界面。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述目标应用的初始安装包和对所述权限管理模块对应的动态链接库文件;
对所述初始安装包进行解封装,得到所述目标应用对应的可执行文件;
在所述可执行文件的命令加载结构中插入加载所述动态链接库文件的加载命令;
对所述动态链接库文件以及更改后的可执行文件进行重签名;
调用封装工具对更改后的可执行文件进行封装,得到所述目标应用对应的包含权限管理功能的目标安装包;
根据对目标安装包进行的应用发布操作,将所述目标安装包上传至所述终端设备的推送服务器,以发布所述目标安装包。
10.一种应用权限的动态控制方法,其特征在于,所述方法包括:
接收终端管理客户端发送的在所述终端管理客户端所在终端设备中安装目标应用的应用安装请求;
向所述终端设备的推送服务器发送与所述终端设备的操作系统建立连接的连接请求;
根据所述操作系统返回的连接响应,与所述操作系统建立连接;
向所述终端设备的操作系统发送应用安装指令;
获取所述目标应用对应于所述终端设备的初始权限配置数据;
将所述初始权限配置数据发送给所述终端管理客户端。
11.如权利要求10所述的方法,其特征在于,所述方法还包括:
接收终端管理配置端发送的在至少一个终端设备中安装目标应用的应用安装请求;
向各终端设备的操作系统发送应用安装指令;
获取所述目标应用对应于各终端设备的初始权限配置数据;
将所述初始权限配置数据发送给对应终端设备的终端管理客户端。
12.一种应用权限的动态控制装置,其特征在于,所述装置包括:
收发单元,用于根据针对终端管理客户端的应用列表中的目标应用进行的安装操作,向终端管理服务器发送应用安装请求;
所述收发单元,还用于接收所述终端管理服务器根据所述应用安装请求,向所述终端管理客户端返回的所述目标应用对应于所述终端管理客户端所在终端设备的初始权限配置数据;以及,接收所述终端管理服务器向所述终端设备的操作系统发送的指示安装所述目标应用的应用安装指令;
执行单元,用于响应于所述应用安装指令安装所述目标应用,其中,所述目标应用包括的权限管理模块根据所述初始权限配置数据进行初始化;
权限管理单元,用于通过所述权限管理模块更新所述目标应用的权限配置数据,并根据权限配置数据对所述目标应用进行权限管理。
13.一种应用权限的动态控制装置,其特征在于,所述装置包括:
收发单元,用于接收终端管理客户端发送的在所述终端管理客户端所在终端设备中安装目标应用的应用安装请求;
所述收发单元,还用于向所述终端设备的推送服务器发送与所述终端设备的操作系统建立连接的连接请求;
连接建立单元,用于根据所述操作系统返回的连接响应,与所述操作系统建立连接;
所述收发单元,还用于向所述终端设备的操作系统发送应用安装指令;
获取单元,用于获取所述目标应用对应于所述终端设备的初始权限配置数据;
所述收发单元,还用于将所述初始权限配置数据发送给所述终端管理客户端。
14.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现权利要求1~11任一项所述方法的步骤。
15.一种计算机存储介质,其上存储有计算机程序指令,其特征在于,
该计算机程序指令被处理器执行时实现权利要求1~11任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011125380.3A CN112214752A (zh) | 2020-10-20 | 2020-10-20 | 应用权限的动态控制方法、装置和设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011125380.3A CN112214752A (zh) | 2020-10-20 | 2020-10-20 | 应用权限的动态控制方法、装置和设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112214752A true CN112214752A (zh) | 2021-01-12 |
Family
ID=74056128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011125380.3A Pending CN112214752A (zh) | 2020-10-20 | 2020-10-20 | 应用权限的动态控制方法、装置和设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112214752A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113625968A (zh) * | 2021-08-12 | 2021-11-09 | 网易(杭州)网络有限公司 | 文件权限的管理方法、装置、计算机设备及存储介质 |
CN113742703A (zh) * | 2021-08-20 | 2021-12-03 | 深圳Tcl新技术有限公司 | 一种应用程序管控方法、装置、电子设备和存储介质 |
CN113835928A (zh) * | 2021-09-24 | 2021-12-24 | 青岛海信移动通信技术股份有限公司 | 应用的备份和恢复方法、设备、存储介质和程序产品 |
CN116049799A (zh) * | 2022-07-14 | 2023-05-02 | 荣耀终端有限公司 | 系统权限管理方法、系统及电子设备 |
-
2020
- 2020-10-20 CN CN202011125380.3A patent/CN112214752A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113625968A (zh) * | 2021-08-12 | 2021-11-09 | 网易(杭州)网络有限公司 | 文件权限的管理方法、装置、计算机设备及存储介质 |
CN113625968B (zh) * | 2021-08-12 | 2024-03-01 | 网易(杭州)网络有限公司 | 文件权限的管理方法、装置、计算机设备及存储介质 |
CN113742703A (zh) * | 2021-08-20 | 2021-12-03 | 深圳Tcl新技术有限公司 | 一种应用程序管控方法、装置、电子设备和存储介质 |
CN113835928A (zh) * | 2021-09-24 | 2021-12-24 | 青岛海信移动通信技术股份有限公司 | 应用的备份和恢复方法、设备、存储介质和程序产品 |
CN116049799A (zh) * | 2022-07-14 | 2023-05-02 | 荣耀终端有限公司 | 系统权限管理方法、系统及电子设备 |
CN116049799B (zh) * | 2022-07-14 | 2023-11-07 | 荣耀终端有限公司 | 系统权限管理方法、系统及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11824859B2 (en) | Certificate based profile confirmation | |
CN112214752A (zh) | 应用权限的动态控制方法、装置和设备及存储介质 | |
US7899959B2 (en) | Method of loading software in mobile and desktop environments | |
CA2824705C (en) | Communications network, computer architecture, computer-implemented method and computer program product for development and management of femtocell-based applications | |
US8117297B2 (en) | System and method of device-to-server registration | |
CN109413043B (zh) | 实现数据库动态配置的方法及装置、电子设备、存储介质 | |
US9298936B2 (en) | Issuing security commands to a client device | |
EP2972932B1 (en) | Cloud based virtual mobile device | |
TW201607280A (zh) | 用以支援嵌入式通用積體電路卡上全球平台使用之方法與裝置 | |
CN112867988A (zh) | 由移动设备实现合规设置以遵循配置场景 | |
KR20180043385A (ko) | 서비스 인에이블러 기능 | |
US7818467B2 (en) | Method of indentifying devices in mobile and desktop environments | |
CN113572862A (zh) | 一种集群部署方法、装置、电子设备及存储介质 | |
CN104636154B (zh) | 应用程序安装方法及装置 | |
US11757976B2 (en) | Unified application management for heterogeneous application delivery | |
WO2017148337A1 (zh) | 终端服务的提供、获取方法、装置及终端 | |
JP5469834B2 (ja) | 端末管理システム | |
US7933880B2 (en) | System and method of application persistence | |
KR20190044815A (ko) | 보안 서비스 제어를 위한 시스템 및 그의 동작 방법 | |
CN114363408A (zh) | 信息推送方法、装置、计算机可读介质及计算机设备 | |
CN101754447B (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 |