0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一分钟了解鸿蒙OS 应用权限管理

王程 来源:jf_75796907 作者:jf_75796907 2024-01-26 15:23 次阅读

HarmonyOS 中所有的应用均在应用沙盒内运行。默认情况下,应用只能访问有限的系统资源,系统负责管理应用对资源的访问权限。

应用权限管理是由接口提供方(Ability)、接口使用方(应用)、系统(包括云侧和端侧)以及用户等多方共同参与的整个流程,保证受限接口是在约定好的规则下被正常使用,避免接口被滥用而导致用户、应用和设备受损。

权限声明

应用需要在 config.json 中使用“reqPermissions”属性对需要的权限逐个进行声明。

若使用到的三方库也涉及权限使用,也需统一在应用的config.json中逐个声明。

没有在config.json中声明的权限,应用就无法获得此权限的授权。

动态申请敏感权限

动态申请敏感权限基于用户可知可控的原则,需要应用在运行时主动调用系统动态申请权限的接口,系统弹框由用户授权,用户结合应用运行场景的上下文,识别出应用申请相应敏感权限的合理性,从而做出正确的选择。

即使用户向应用授予了请求的权限,应用在调用受此权限管控的接口前,也应该先检查自己有无此权限,而不能把之前授予的状态持久化,因为用户在动态授予后还可以通过设置取消应用的权限。

有关于应用动态申请敏感权限的详细信息,请参阅动态申请权限。

自定义权限

HarmonyOS 为了保证应用对外提供的接口不被恶意调用,需要对调用接口的调用者进行鉴权。

大多情况下,系统已定义的权限满足了应用的基本需要,若有特殊的访问控制需要,应用可在config.json中以"defPermissions": []属性来定义新的权限,并通过“availableScope”和“grantMode”两个属性分别确定权限的开放范围和授权方式,使得权限定义更加灵活且易于理解。有关 HarmonyOS 权限开放范围和授权方式详细的描述,请参阅权限授予方式字段说明和权限限制范围字段说明。

为了避免应用自定义新权限出现重名的情况,建议应用对新权限的命名以包名的前两个字段开头,这样可以防止不同开发者的应用间出现自定义权限重名的情况。

权限保护方法

保护 Ability:通过在config.json里对应的 Ability 中配置"permissions": [“权限名”]属性,即可实现保护整个 Ability 的目的,无指定权限的应用不能访问此 Ability。

保护 API:若 Ability 对外提供的数据或能力有多种,且开放范围或保护级别也不同,可以针对不同的数据或能力在接口代码实现中通过verifyPermission(String permissionName, int pid, int uid)来对 uid 标识的调用者进行鉴权。

权限使用原则

权限申请最小化。跟用户提供的功能无关的权限,不要申请;尽量采用其他无需权限的操作来实现相应功能(如:通过intent拉起系统 UI 界面由用户交互、应用自己生成uuid代替设备 ID 等)。

权限申请完整。应用所需权限(包括应用调用到的三方库依赖的权限)都要逐个在应用的config.json中按格式声明。
满足用户可知。应用申请的敏感权限的目的需要真实准确告知用户。

权限就近申请。应用在用户触发相关业务功能时,就近提示用户授予实现此功能所需的权限。

权限不扩散。在用户未授权的情况下,不允许提供给其他应用使用。

应用自定义权限防止重名。建议以包名为前缀来命名权限,防止跟系统定义的权限重名。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    55

    文章

    1640

    浏览量

    42123
  • HarmonyOS
    +关注

    关注

    79

    文章

    1856

    浏览量

    29267
收藏 人收藏

    评论

    相关推荐

    一分钟了解能耗监测管理系统

    故障快速诊断能耗监测管理系统可以根据实时采集的数据快速诊断出设备运行中出现的各种故障情况 高效使用资源通过对用电情况进行实时监测和分析,可以帮助企业有效地使用公司的资源
    发表于 04-09 14:36 104次阅读
    <b class='flag-5'>一分钟</b><b class='flag-5'>了解</b>能耗监测<b class='flag-5'>管理</b>系统

    一分钟看完看懂电机的接线方法

    今天给大家讲解一下,看懂电机的接线方法,一分钟看完,一看就懂!。 电机的接线方法无外乎以下两种 1a星形接法(实物图)
    发表于 03-31 15:40 232次阅读
    <b class='flag-5'>一分钟</b>看完看懂电机的接线方法

    M8连接器挑选起来并不复杂,一分钟完成选型

    M8连接器挑选起来并不复杂,德索精密工业教您一分钟完成选型!德索精密工业,专业生产M8连接器十八年,欢迎前来采购M8相关产品。选择合适自己使用的连接器非常重要,在日后的使用中可以避免许多麻烦,那么究竟该如何选择呢?今天就来为大家详细介绍一下。
    的头像 发表于 03-18 17:06 127次阅读
    M8连接器挑选起来并不复杂,<b class='flag-5'>一分钟</b>完成选型

    TC1728在擦除Flash时,STM中断会暂停一分钟然后恢复,请问是什么原因呢?

    TC1728在擦除Flash时,STM中断会暂停一分钟,然后恢复,请问是什么原因呢?
    发表于 02-02 12:15

    关于触摸芯片的那些事

    一分钟简单了解触摸芯片
    的头像 发表于 01-03 16:56 334次阅读

    AD7190连续转换模式采了一分钟数据后出现异常怎么解决?

    AD7190与stm32的SPI通讯,选择连续转换模式,开始读的数据都正常,ID寄存器什么的都能正常读取。连续采了一分钟左右的数据后,数据寄存器读出来的数据全是0,其他寄存器也读的都是0。将
    发表于 12-01 07:47

    鸿蒙 OS 应用开发初体验

    大家对华为生态的应用开发感兴趣或者想深入学习借鉴华为做 OS 和物联网的思路,鸿蒙系统就是个标杆。 转自【巫山老妖】
    发表于 11-02 19:38

    体验华为云 Serverless FunctionGraph,一分钟上线应用

    使用 FunctionGraph 可以无需预先购买计算资源,直接上传代码上线应用,并可以自动弹性伸缩应对业务流量。FunctionGraph 按需计费,目前免费调用 100 万次。 一分钟体验步骤
    的头像 发表于 09-06 23:03 433次阅读
    体验华为云 Serverless FunctionGraph,<b class='flag-5'>一分钟</b>上线应用

    一分钟带你了解共集电极

    DIY电子技术
    学习电子知识
    发布于 :2023年09月05日 22:33:19

    一分钟带你了解RS

    DIY电子技术
    学习电子知识
    发布于 :2023年09月05日 22:33:00

    体验华为云 Serverless FunctionGraph,一分钟上线应用

    使用 FunctionGraph 可以无需预先购买计算资源,直接上传代码上线应用,并可以自动弹性伸缩应对业务流量。FunctionGraph 按需计费,目前免费调用 100 万次。 一分钟体验步骤
    的头像 发表于 09-02 01:18 282次阅读
    体验华为云 Serverless FunctionGraph,<b class='flag-5'>一分钟</b>上线应用

    超级最后一分钟DIY情人节贺卡

    电子发烧友网站提供《超级最后一分钟DIY情人节贺卡.zip》资料免费下载
    发表于 07-06 14:47 0次下载
    超级最后<b class='flag-5'>一分钟</b>DIY情人节贺卡

    一分钟上手安信可雷达模组Rd-03

    一分钟上手安信可雷达模组Rd-03教程来了!Rd-03模组可感知区域内是否有运动或者微动的人体,实现实时检测结果。提供可视化的配置工具,可轻松配置感应距离范围、不同区间的感应灵敏度和无人延时
    的头像 发表于 06-20 11:42 350次阅读
    <b class='flag-5'>一分钟</b>上手安信可雷达模组Rd-03

    一分钟了解物联存储柜的特点和功能

    物联存储柜是一种智能存储柜,具有多种传感器和通信技术,集成物联网和云计算技术,通过自动化、智能化、网络化将传统存储柜与智能设备相结合,自动识别、存取物品,通过网络进行数据交互,实现远程监测和管理功能
    的头像 发表于 06-14 15:22 492次阅读
    <b class='flag-5'>一分钟</b><b class='flag-5'>了解</b>物联存储柜的特点和功能

    基于51单片机的分钟倒计时源代码

    基于51单片机的一分钟倒计时例程源代码
    发表于 05-12 16:30 18次下载