應用權(quán)限管控概述
簡介
系統(tǒng)提供了一種允許應用訪問系統(tǒng)資源(如:通訊錄等)和系統(tǒng)能力(如:訪問攝像頭、麥克風等)的通用權(quán)限訪問方式,來保護系統(tǒng)數(shù)據(jù)(包括用戶個人數(shù)據(jù))或功能,避免它們被不當或惡意使用。
應用權(quán)限保護的對象可以分為數(shù)據(jù)和功能:
- 數(shù)據(jù)包括個人數(shù)據(jù)(如照片、通訊錄、日歷、位置等)、設(shè)備數(shù)據(jù)(如設(shè)備標識、相機、麥克風等)。
- 功能包括設(shè)備功能(如訪問攝像頭/麥克風、打電話、聯(lián)網(wǎng)等)、應用功能(如彈出懸浮窗、創(chuàng)建快捷方式等)。
- 開發(fā)前請熟悉鴻蒙開發(fā)指導文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
權(quán)限使用的基本原則
合理的使用場景有助于應用權(quán)限申請和使用。開發(fā)應用時權(quán)限申請需要滿足如下原則:
- 應用(包括應用引用的三方庫)所需權(quán)限必須在應用的配置文件中嚴格按照權(quán)限開發(fā)指導逐個聲明。
- 權(quán)限申請滿足最小化原則,禁止申請非必要的、已廢棄的權(quán)限。應用申請過多權(quán)限,會引起用戶對應用安全性的擔憂以及使用體驗變差,從而也會影響到應用的安裝率和留存率。
- 應用申請敏感權(quán)限時,必須填寫權(quán)限使用理由字段,敏感權(quán)限通常是指與用戶隱私密切相關(guān)的權(quán)限,包括地理位置、相機、麥克風、日歷、健身運動、身體傳感器、音樂、文件、圖片視頻等權(quán)限。
- 應用敏感權(quán)限須在對應業(yè)務功能執(zhí)行前動態(tài)申請,滿足隱私最小化要求。
- 用戶拒絕授予某個權(quán)限后,應用與此權(quán)限無關(guān)的其他業(yè)務功能應允許正常使用。
授權(quán)方式
根據(jù)授權(quán)方式的不同,權(quán)限類型可分為system_grant(系統(tǒng)授權(quán))和user_grant(用戶授權(quán))。
system_grant(系統(tǒng)授權(quán))
system_grant指的是系統(tǒng)授權(quán)類型,在該類型的權(quán)限許可下,應用被允許訪問的數(shù)據(jù)不會涉及到用戶或設(shè)備的敏感信息,應用被允許執(zhí)行的操作對系統(tǒng)或者其他應用產(chǎn)生的影響可控。
如果在應用中申請了system_grant權(quán)限,那么系統(tǒng)會在用戶安裝應用時,自動把相應權(quán)限授予給應用。
user_grant(用戶授權(quán))
user_grant指的是用戶授權(quán)類型,在該類型的權(quán)限許可下,應用被允許訪問的數(shù)據(jù)將會涉及到用戶或設(shè)備的敏感信息,應用被允許執(zhí)行的操作可能對系統(tǒng)或者其他應用產(chǎn)生嚴重的影響。
該類型權(quán)限不僅需要在安裝包中申請權(quán)限,還需要在應用動態(tài)運行時,通過發(fā)送彈窗的方式請求用戶授權(quán)。在用戶手動允許授權(quán)后,應用才會真正獲取相應權(quán)限,從而成功訪問操作目標對象。
例如,在[應用權(quán)限列表]中,麥克風和攝像頭對應的權(quán)限都是屬于用戶授權(quán)權(quán)限,列表中給出了詳細的權(quán)限使用理由。應用需要在應用商店的詳情頁面,向用戶展示所申請的user_grant權(quán)限列表。
權(quán)限組和子權(quán)限
為了盡可能減少系統(tǒng)彈出的權(quán)限彈窗數(shù)量,優(yōu)化交互體驗,系統(tǒng)將邏輯緊密相關(guān)的user_grant權(quán)限組合在一起,形成多個權(quán)限組。
當應用請求權(quán)限時,同一個權(quán)限組的權(quán)限將會在一個彈窗內(nèi)一起請求用戶授權(quán)。權(quán)限組中的某個權(quán)限,稱之為該權(quán)限組的子權(quán)限。
權(quán)限組和權(quán)限的歸屬關(guān)系并不是固定不變的,一個權(quán)限所屬的權(quán)限組有可能發(fā)生變化。當前系統(tǒng)支持權(quán)限組請查閱[應用權(quán)限組列表]。
權(quán)限機制中的基本概念
TokenID
系統(tǒng)采用TokenID(Token identity)作為應用的唯一標識。權(quán)限管理服務通過應用的TokenID來管理應用的AT(Access Token)信息,包括應用身份標識APP ID、子用戶ID、應用分身索引信息、應用APL、應用權(quán)限授權(quán)狀態(tài)等。在資源使用時,系統(tǒng)將通過TokenID作為唯一身份標識映射獲取對應應用的權(quán)限授權(quán)狀態(tài)信息,并依此進行鑒權(quán),從而管控應用的資源訪問行為。
值得注意的是,系統(tǒng)支持多用戶特性和應用分身特性,同一個應用在不同的子用戶下和不同的應用分身下會有各自的AT,這些AT的TokenID也是不同的。APL等級
為了防止應用過度索取和濫用權(quán)限,系統(tǒng)基于APL(Ability Privilege Level,元能力權(quán)限等級)等級,配置了不同的權(quán)限開放范圍。
元能力權(quán)限等級APL指的是應用的權(quán)限申請優(yōu)先級的定義,不同APL等級的應用能夠申請的權(quán)限等級不同。應用APL等級
應用的等級可以分為以下三個等級,等級依次提高。APL級別 說明 normal 默認情況下,應用的APL等級都為normal等級。 system_basic 該等級的應用服務提供系統(tǒng)基礎(chǔ)服務。 system_core 該等級的應用服務提供操作系統(tǒng)核心能力。 應用APL等級不允許配置為system_core。 權(quán)限APL等級
根據(jù)權(quán)限對于不同等級應用有不同的開放范圍,權(quán)限類型對應分為以下三個等級,等級依次提高。APL級別 說明 HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
開放范圍 normal 允許應用訪問超出默認規(guī)則外的普通系統(tǒng)資源,如配置Wi-Fi信息、調(diào)用相機拍攝等。 這些系統(tǒng)資源的開放(包括數(shù)據(jù)和功能)對用戶隱私以及其他應用帶來的風險低。 APL等級為normal及以上的應用。 system_basic 允許應用訪問操作系統(tǒng)基礎(chǔ)服務(系統(tǒng)提供或者預置的基礎(chǔ)功能)相關(guān)的資源,如系統(tǒng)設(shè)置、身份認證等。 這些系統(tǒng)資源的開放對用戶隱私以及其他應用帶來的風險較高。 APL等級為system_basic及以上的應用。 system_core 涉及開放操作系統(tǒng)核心資源的訪問操作。這部分系統(tǒng)資源是系統(tǒng)最核心的底層服務,如果遭受破壞,操作系統(tǒng)將無法正常運行。 - APL等級為system_core的應用。 - 僅對系統(tǒng)應用開放。 訪問控制列表(ACL)
如上所述,權(quán)限APL等級和應用APL等級是一一對應的。原則上,擁有低APL等級的應用默認無法申請更高等級的權(quán)限。訪問控制列表ACL(Access Control List)提供了解決低等級應用訪問高等級權(quán)限問題的特殊渠道。
系統(tǒng)權(quán)限均定義了“ACL使能”字段,當該權(quán)限的ACL使能為TRUE,應用可以使用ACL方式跨級別申請該權(quán)限。具體單個權(quán)限的定義。
場景舉例:如開發(fā)者正在開發(fā)APL等級為normal的A應用,由于功能場景需要,A應用需要申請等級為system_basic的P權(quán)限。在P權(quán)限的ACL使能為TRUE的情況下,A應用可以通過ACL方式跨級申請權(quán)限P。
審核編輯 黃宇
-
框架
+關(guān)注
關(guān)注
0文章
404瀏覽量
18219 -
APl
+關(guān)注
關(guān)注
0文章
8瀏覽量
8188 -
鴻蒙
+關(guān)注
關(guān)注
60文章
2740瀏覽量
45030
發(fā)布評論請先 登錄
鴻蒙開發(fā)接口Ability框架:【 (Context模塊)】

鴻蒙原生應用元服務-訪問控制(權(quán)限)開發(fā)等級和類型
鴻蒙Ability Kit(程序框架服務)【Ability內(nèi)頁面間的跳轉(zhuǎn)】

鴻蒙Ability Kit(程序框架服務)【Ability與ServiceExtensionAbility通信】

鴻蒙Ability Kit(程序框架服務)【應用啟動框架AppStartup】
鴻蒙開發(fā)組件:DataAbility權(quán)限控制

鴻蒙開發(fā)Ability Kit程序框架服務:訪問控制概述 程序訪問控制

鴻蒙開發(fā)Ability Kit程序框架服務:選擇申請權(quán)限的方式

鴻蒙開發(fā)Ability Kit程序框架服務:向用戶申請授權(quán)

鴻蒙開發(fā)Ability Kit程序訪問控制:向用戶申請單次授權(quán)

鴻蒙開發(fā)Ability Kit程序訪問控制:申請使用受限權(quán)限

鴻蒙開發(fā)Ability Kit程序訪問控制:對所有應用開放

鴻蒙開發(fā)Ability Kit程序訪問控制:使用保存控件

評論