安全控件概述
安全控件是系統(tǒng)提供的一組系統(tǒng)實(shí)現(xiàn)的ArkUI組件,應(yīng)用集成這類(lèi)組件就可以實(shí)現(xiàn)在用戶(hù)點(diǎn)擊后自動(dòng)授權(quán),而無(wú)需彈窗授權(quán)。它們可以作為一種“特殊的按鈕”融入應(yīng)用頁(yè)面,實(shí)現(xiàn)用戶(hù)點(diǎn)擊即許可的設(shè)計(jì)思路。
相較于動(dòng)態(tài)申請(qǐng)權(quán)限的方式,安全控件可基于場(chǎng)景化授權(quán),簡(jiǎn)化開(kāi)發(fā)者和用戶(hù)的操作,主要優(yōu)點(diǎn)有:
- 用戶(hù)可掌握授權(quán)時(shí)機(jī),授權(quán)范圍最小化。
- 授權(quán)場(chǎng)景可匹配用戶(hù)真實(shí)意圖。
- 減少?gòu)棿按驍_。
- 開(kāi)發(fā)者不必向應(yīng)用市場(chǎng)申請(qǐng)權(quán)限,簡(jiǎn)化操作。
- 開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
安全控件堅(jiān)持僅采集實(shí)現(xiàn)業(yè)務(wù)功能所必須的個(gè)人數(shù)據(jù),以服務(wù)于用戶(hù)的需求,幫助開(kāi)發(fā)透明、可選、可控的隱私合規(guī)應(yīng)用。
安全控件列表
目前系統(tǒng)提供三類(lèi)安全控件:
- [粘貼控件(PasteButton)]
該控件對(duì)應(yīng)剪貼板讀取特權(quán)。應(yīng)用集成粘貼控件后,用戶(hù)點(diǎn)擊該控件,應(yīng)用讀取剪貼板數(shù)據(jù)時(shí)不會(huì)彈窗提示。
建議使用場(chǎng)景:粘貼控件可以用于任何應(yīng)用需要讀取剪貼板的場(chǎng)景,避免彈窗提示對(duì)用戶(hù)造成干擾。 - [保存控件(SaveButton)]
該控件對(duì)應(yīng)媒體庫(kù)寫(xiě)入特權(quán)。應(yīng)用集成保存控件后,用戶(hù)點(diǎn)擊該控件,應(yīng)用會(huì)獲取10秒內(nèi)單次訪問(wèn)媒體庫(kù)特權(quán)接口的授權(quán)。
建議使用場(chǎng)景:保存控件可以用于任何應(yīng)用需要保存文件到媒體庫(kù)的場(chǎng)景(保存圖片、保存視頻等)。與Picker需要拉起系統(tǒng)應(yīng)用再由用戶(hù)選擇具體路徑保存的方式不同,保存控件將直接保存到指定媒體庫(kù)路徑,操作更快捷。 - [位置控件(LocationButton)]
該控件對(duì)應(yīng)精準(zhǔn)定位特權(quán)。應(yīng)用集成位置控件后,用戶(hù)點(diǎn)擊該控件,無(wú)論應(yīng)用是否申請(qǐng)過(guò)或者被授予精準(zhǔn)定位權(quán)限,都會(huì)在本次前臺(tái)期間獲得精準(zhǔn)定位的授權(quán),可以調(diào)用位置服務(wù)獲取精準(zhǔn)定位。
建議使用場(chǎng)景:應(yīng)用不是強(qiáng)位置關(guān)聯(lián)應(yīng)用(如導(dǎo)航、運(yùn)動(dòng)健康等),僅在部分前臺(tái)場(chǎng)景需要使用位置信息(如定位城市、打卡、分享位置等)。如果需要長(zhǎng)時(shí)間使用或是在后臺(tái)使用位置信息,建議申請(qǐng)位置權(quán)限。
運(yùn)作機(jī)制
整體方案由安全控件UI組件、安全控件管理服務(wù)、安全控件增強(qiáng)組成:
- UI組件:實(shí)現(xiàn)了固定文字圖標(biāo)的樣式,便于用戶(hù)識(shí)別,同時(shí)提供了相對(duì)豐富的定制化能力,便于開(kāi)發(fā)者定制。
- 控件管理服務(wù):提供控件注冊(cè)管理能力、控件臨時(shí)授權(quán)機(jī)制、管理授權(quán)生效周期,確保應(yīng)用后臺(tái)、鎖屏下無(wú)法注冊(cè)使用安全控件。
- 安全增強(qiáng):實(shí)現(xiàn)了地址隨機(jī)化、挑戰(zhàn)值檢查、回調(diào)UI框架復(fù)核控件信息、調(diào)用者地址檢查、組件防覆蓋、真實(shí)點(diǎn)擊事件校驗(yàn)等機(jī)制,防止應(yīng)用開(kāi)發(fā)者通過(guò)混淆、隱藏、篡改、仿冒等方式濫用授權(quán)機(jī)制,泄露用戶(hù)隱私。
開(kāi)發(fā)者調(diào)用接口時(shí),運(yùn)作流程如圖所示。
- 應(yīng)用開(kāi)發(fā)者在ETS文件中集成安全控件,通過(guò)JS引擎解析后,在ArkUI框架中生成具體的控件。
- 安全控件注冊(cè)控件信息到安全控件管理服務(wù),安全控件管理服務(wù)檢查控件信息的合法性。
- 用戶(hù)點(diǎn)擊事件分發(fā)到安全控件。
- 安全控件將點(diǎn)擊事件上報(bào)到安全控件管理服務(wù)。
- 安全控件管理服務(wù)根據(jù)控件種類(lèi)對(duì)應(yīng)不同權(quán)限,調(diào)用權(quán)限管理服務(wù)進(jìn)行臨時(shí)授權(quán)。
- 授權(quán)成功后,安全控件回調(diào)OnClick通知應(yīng)用層授權(quán)成功。
- 應(yīng)用調(diào)用相應(yīng)的特權(quán)操作,如獲取地理位置、讀取剪貼板信息、媒體庫(kù)中創(chuàng)建文件等。 不同類(lèi)型的安全控件,對(duì)于權(quán)限的使用方式不同、授權(quán)的有效期也不同,詳情請(qǐng)參考開(kāi)發(fā)指導(dǎo)。
- 對(duì)應(yīng)的服務(wù)會(huì)調(diào)用權(quán)限管理服務(wù)或安全控件管理服務(wù),獲取授權(quán)結(jié)果,返回鑒權(quán)結(jié)果。
約束與限制
安全控件因其自動(dòng)授權(quán)的特性,為了保障用戶(hù)的隱私不被惡意應(yīng)用獲取,針對(duì)安全控件作了很多的限制。應(yīng)用開(kāi)發(fā)者需保證安全控件在應(yīng)用界面上清晰可見(jiàn)、用戶(hù)能明確識(shí)別,防止因覆蓋、混淆等因素導(dǎo)致授權(quán)失敗。
當(dāng)因控件樣式不合法導(dǎo)致授權(quán)失敗的情況發(fā)生時(shí),請(qǐng)開(kāi)發(fā)者檢查設(shè)備錯(cuò)誤日志,過(guò)濾關(guān)鍵字"SecurityComponentCheckFail"可以獲取具體原因。
說(shuō)明: 請(qǐng)開(kāi)發(fā)者關(guān)注過(guò)濾條件下,所有級(jí)別的日志。
HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
可能會(huì)導(dǎo)致授權(quán)失敗的問(wèn)題(包括但不限于):
- 字體、圖標(biāo)尺寸過(guò)小。
- 安全控件整體尺寸過(guò)大。
- 字體、圖標(biāo)、背景按鈕的顏色透明度過(guò)高。
- 字體或圖標(biāo)與背景按鈕顏色過(guò)于相似。
- 安全控件超出屏幕、超出窗口等,導(dǎo)致顯示不全。
- 安全控件被其他組件或窗口遮擋。
- 安全控件的父組件有類(lèi)似變形模糊等可能導(dǎo)致安全控件顯示不完整的屬性。
審核編輯 黃宇
-
控件
+關(guān)注
關(guān)注
0文章
156瀏覽量
16990 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2393瀏覽量
43067
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
鴻蒙開(kāi)發(fā)接口Ability框架:【@ohos.application.Ability (Ability)】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b>接口<b class='flag-5'>Ability</b>框架:【@ohos.application.<b class='flag-5'>Ability</b> (<b class='flag-5'>Ability</b>)】](https://file1.elecfans.com/web2/M00/C5/D1/wKgZomYChGOAUaiiAADe1d8SeRY102.jpg)
鴻蒙開(kāi)發(fā)接口Ability框架:【 (Context模塊)】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b>接口<b class='flag-5'>Ability</b>框架:【 (Context模塊)】](https://file1.elecfans.com/web2/M00/E5/06/wKgZomZByY2AA0TvAABzyyVt1n8710.png)
鴻蒙Ability開(kāi)發(fā)-Stage模型下Ability的創(chuàng)建和使用
跟阿斌一起學(xué)鴻蒙(2): Ability vs App?
鴻蒙應(yīng)用模型:【Ability Kit】簡(jiǎn)介
![<b class='flag-5'>鴻蒙</b>應(yīng)用模型:【<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>】簡(jiǎn)介](https://file1.elecfans.com/web2/M00/EA/1B/wKgZomZWzLmARq9xAABl2Ql50bI212.jpg)
鴻蒙Ability Kit(程序框架服務(wù))【Ability內(nèi)頁(yè)面間的跳轉(zhuǎn)】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b>框架服務(wù))【<b class='flag-5'>Ability</b>內(nèi)頁(yè)面間的跳轉(zhuǎn)】](https://file1.elecfans.com/web2/M00/E3/5B/wKgaomY7dICAanabAG9fQxOwEh0579.jpg)
鴻蒙Ability Kit(程序框架服務(wù))【Ability與ServiceExtensionAbility通信】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b>框架服務(wù))【<b class='flag-5'>Ability</b>與ServiceExtensionAbility通信】](https://file1.elecfans.com/web2/M00/EC/91/wKgaomZfBTaAUYFaAAIK5_JVZ4U512.jpg)
鴻蒙開(kāi)發(fā)Ability Kit程序框架服務(wù):訪問(wèn)控制概述 程序訪問(wèn)控制
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b>框架服務(wù):<b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b><b class='flag-5'>概述</b> <b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>](https://file1.elecfans.com/web2/M00/EB/AA/wKgZomZfBbWAPqxgAAMXOrGQOgM110.png)
鴻蒙開(kāi)發(fā)Ability Kit程序框架服務(wù):應(yīng)用權(quán)限管控概述 程序訪問(wèn)控制
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b>框架服務(wù):應(yīng)用權(quán)限管控<b class='flag-5'>概述</b> <b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>](https://file1.elecfans.com/web2/M00/C5/D5/wKgZomYCnRSAcOMcAACEEnttXHc600.png)
鴻蒙開(kāi)發(fā)Ability Kit程序訪問(wèn)控制:向用戶(hù)申請(qǐng)單次授權(quán)
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>:向用戶(hù)申請(qǐng)單次授權(quán)](https://file1.elecfans.com/web2/M00/EB/AA/wKgZomZfBbWAPqxgAAMXOrGQOgM110.png)
鴻蒙開(kāi)發(fā)Ability Kit程序訪問(wèn)控制:申請(qǐng)使用受限權(quán)限
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>:申請(qǐng)使用受限權(quán)限](https://file1.elecfans.com/web2/M00/C6/E9/wKgaomYEK1aAOyTeAADysXFhWs8242.png)
鴻蒙開(kāi)發(fā)Ability Kit程序訪問(wèn)控制:對(duì)所有應(yīng)用開(kāi)放
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>:對(duì)所有應(yīng)用開(kāi)放](https://file1.elecfans.com/web2/M00/C5/D5/wKgZomYCnRSAcOMcAACEEnttXHc600.png)
鴻蒙開(kāi)發(fā)Ability Kit程序訪問(wèn)控制:使用粘貼控件
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>:使用粘貼<b class='flag-5'>控件</b>](https://file1.elecfans.com/web2/M00/F7/3B/wKgZomaECcSAAg7hAAuGVUjyHo4953.jpg)
鴻蒙開(kāi)發(fā)Ability Kit程序訪問(wèn)控制:使用保存控件
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>:使用保存<b class='flag-5'>控件</b>](https://file1.elecfans.com/web2/M00/F8/80/wKgaomaE_AyANkGmAAC4_LfnW4k439.png)
鴻蒙開(kāi)發(fā)Ability Kit程序訪問(wèn)控制:使用位置控件
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>:使用位置<b class='flag-5'>控件</b>](https://file1.elecfans.com/web2/M00/F7/95/wKgZomaE_TKADpFcAAF42TNUQfA074.jpg)
評(píng)論