赞
踩
目录
1.应用或服务进程间权限访问的管理
采用的是基于ATM的VerifyPermission,所有接口均为内部接口,仅提供底层能力,不对开发者开放。鉴权过程中直接调用VerifyPermission接口即可。
2.访问控制列表(ACL)
ACL(Access Control List)提供了解决低等级应用访问高等级权限问题的特殊渠道。采用的是应用APL(Ability Privilege Level)等级和授权方式,授权分为system_grant(系统授权)和user_grant(用户授权)。
OpenHarmony中应用和系统服务均运行在独立的沙箱中,进程空间和程序数据都是相互隔离的,以保护应用数据的安全性;但是运行在独立沙箱中的服务或应用同时需要对外提供一些API以实现所需功能,其他独立沙箱中的应用在跨进程访问这些API时,需要系统提供一种权限管理机制对这些API的访问者进行授权。
应用权限管理为用户程序框架子系统提供权限管理功能,并且为上层应用提供权限申请和授权状态查询接口。
标准系统应用权限管理:此模块主要为标准系统用户程序框架子系统提供权限管理基础校验能力,不对三方app开放(代码目录kits #外部接口层未提供),并提供如下API:
security\permission\interfaces\innerkits\permission_standard\permissionsdk\main\cpp\include\permission\permission_kit.h
class PermissionKit
所有接口均为内部接口,仅提供底层能力,不对开发者开放。鉴权过程中直接调用VerifyPermission接口即可。
int PermissionStateManager::VerifyPermission( const std::string& bundleName,
const std::string& permissionName, int userId) const
ATM(AccessTokenManager)是OpenHarmony上基于AccessToken构建的统一的应用权限管理能力。Accesstoken信息主要包括应用身份标识APPID、用户ID,应用分身索引、应用APL(Ability Privilege Level)等级、应用权限信息等。
ATM模块主要提供如下功能:
主要的采取的策略,访问控制列表(ACL)
ACL(Access Control List)提供了解决低等级应用访问高等级权限问题的特殊渠道。
采用的授权方式,权限类型可分为system_grant(系统授权)和user_grant(用户授权)。
这里的system和权限级别system不是一个概念,系统授权是在App 安装时需要配置的,不管级别的高低,user_grant(用户授权)是弹框,需要用户确认的权限,就算是system级别的也需要提示
默认情况下,应用只能访问有限的系统资源。为了扩展功能的诉求,需要访问额外的系统或其他应用的数据和功能;系统或应用以明确的方式对外提供接口来共享其数据或功能。OpenHarmony提供了一种访问控制机制来保证这些数据或功能不会被不当或恶意使用,即应用权限。
应用权限保护的对象可以分为数据和功能:
应用权限是程序访问操作某种对象的通行证。
在进行权限的申请和使用时,需要满足以下基本原则:
应用APL权限等级说明
APL级别 | 说明 |
system_core等级 | 该等级的应用服务提供操作系统核心能力 |
system_basic等级 | 该等级的应用服务提供系统基础服务 |
normal等级 | 普通应用 |
允许应用访问超出默认规则外的普通系统资源。这些系统资源的开放(包括数据和功能)对用户隐私以及其他应用带来的风险很小。
允许应用访问操作系统基础服务相关的资源。这部分系统基础服务属于系统提供或者预置的基础功能,比如系统设置、身份认证等。这些系统资源的开放对用户隐私以及其他应用带来的风险较大。
2.system_core权限,影响程度非常大,目前暂不向任何应用开放
涉及到开放操作系统核心资源的访问操作。这部分系统资源是系统最核心的底层服务,如果遭受破坏,操作系统将无法正常运行。
ACL 和APL的关系
normal低级别的,也可以申请system_grant(系统授权),
system core高级别的,同样需要申请 user_grant(用户授权)
这两者的关系,不是表面的那样
实际上它是一个很有用的特性,如我们可以为某个函数定义一个默认的定义,并将其用WEAK关键字修饰,当调用该函数的用户希望其使用自己定义的特殊实现时,就可以在其它的文件中重新定义一个非WEAK的同名函数,此时链接器链接时就会链接新的定义,而自动忽略掉用WEAK修饰的定义,从而可以实现函数功能的扩展,或者用于一些debug操作等。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。