Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
c71ec465
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
c71ec465
编写于
8月 26, 2022
作者:
O
openharmony_ci
提交者:
Gitee
8月 26, 2022
浏览文件
操作
浏览文件
下载
差异文件
!8694 【轻量级 PR】:update zh-cn/application-dev/security/accesstoken-overview.md.
Merge pull request !8694 from zengyawen/N/A
上级
679e915d
e7edd365
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
52 addition
and
37 deletion
+52
-37
zh-cn/application-dev/security/accesstoken-overview.md
zh-cn/application-dev/security/accesstoken-overview.md
+52
-37
未找到文件。
zh-cn/application-dev/security/accesstoken-overview.md
浏览文件 @
c71ec465
...
...
@@ -13,6 +13,18 @@ ATM(AccessTokenManager)是OpenHarmony上基于AccessToken构建的统一的
当前,ATM提供的应用权限校验功能是基于统一管理的TokenID(Token identity)。TokenID是每个应用的身份标识,ATM通过应用的TokenID来管理应用的权限。
## 权限使用的基本原则
在进行权限的申请和使用时,需要满足以下基本原则:
-
应用申请的权限,都必须有明确、合理的使用场景和功能说明,确保用户能够清晰明了地知道申请权限的目的、场景、用途;禁止诱导、误导用户授权;应用使用权限必须与申请所述一致。
-
应用权限申请遵循最小化原则,只申请业务功能所必要的权限,禁止申请不必要的权限。
-
应用在首次启动时,避免频繁弹窗申请多个权限;权限须在用户使用对应业务功能时动态申请。
-
用户拒绝授予某个权限时,与此权限无关的其他业务功能应能正常使用,不能影响应用的正常注册或登录。
-
业务功能所需要的权限被用户拒绝且禁止后不再提示,当用户主动触发使用此业务功能或为实现业务功能所必须时,应用程序可通过界面内文字引导,让用户主动到“系统设置”中授权。
-
当前不允许应用自行定义权限,应用申请的权限应该从
[
已有的权限列表
](
permission-list.md
)
中选择。
## 权限的工作流程
应用在访问数据或者执行操作时,需要评估该行为是否需要应用具备相关的权限。如果确认需要目标权限,则需要在应用安装包中申请目标权限。
...
...
@@ -25,7 +37,7 @@ ATM(AccessTokenManager)是OpenHarmony上基于AccessToken构建的统一的
![](
figures/permission-workflow.jpg
)
1:
应用
可以参考下图,判断应用能否申请目标权限。
1:
开发者
可以参考下图,判断应用能否申请目标权限。
![](
figures/permission-application-process.png
)
...
...
@@ -35,38 +47,6 @@ ATM(AccessTokenManager)是OpenHarmony上基于AccessToken构建的统一的
3:应用可以通过ACL(访问控制列表)方式申请高级别的权限,具体请参考
[
访问控制列表(ACL)说明
](
#访问控制列表acl说明
)
。
## 权限使用场景说明
### 基本原则
在进行权限的申请和使用时,需要满足以下基本原则:
-
应用申请的权限,都必须有明确、合理的使用场景和功能说明,确保用户能够清晰明了地知道申请权限的目的、场景、用途;禁止诱导、误导用户授权;应用使用权限必须与申请所述一致。
-
应用权限申请遵循最小化原则,只申请业务功能所必要的权限,禁止申请不必要的权限。
-
应用在首次启动时,避免频繁弹窗申请多个权限;权限须在用户使用对应业务功能时动态申请。
-
用户拒绝授予某个权限时,与此权限无关的其他业务功能应能正常使用,不能影响应用的正常注册或登录。
-
业务功能所需要的权限被用户拒绝且禁止后不再提示,当用户主动触发使用此业务功能或为实现业务功能所必须时,应用程序可通过界面内文字引导,让用户主动到“系统设置”中授权。
-
当前不允许应用自行定义权限,应用申请的权限应该从
[
已有的权限列表
](
permission-list.md
)
中选择。
### 场景示例
下面列举两种应用需要使用权限的常见场景,用作参考。
-
**视频播放类应用**
视频播放类应用要使用多媒体功能,应用必须对用户外部存储的媒体文件信息进行读取和写入,所以应用需要至少申请以下两个权限:
(1) ohos.permission.READ_MEDIA 允许应用读取用户外部存储中的媒体文件信息。
(2) ohos.permission.WRITE_MEDIA 允许应用读写用户外部存储中的媒体文件信息。
-
**摄影美图类应用**
摄影美图类应用需要使用到相机功能,那么应用访问相机服务前,需要申请到相机权限:
(1) ohos.permission.CAMERA 允许应用使用相机拍摄照片和录制视频。
## 权限等级说明
根据接口所涉数据的敏感程度或所涉能力的安全威胁影响,ATM模块定义了不同开放范围的权限等级来保护用户隐私。
...
...
@@ -85,7 +65,28 @@ ATM(AccessTokenManager)是OpenHarmony上基于AccessToken构建的统一的
默认情况下,应用的APL等级都为normal等级。
如果应用需要将自身的APL等级声明为system_basic及以上的APL等级,在开发应用安装包时,要修改应用的profile文件。在文件的"apl"字段声明应用的APL等级,并使用profile签名工具生成证书。具体签名流程可以查看页面
[
Hap包签名工具指导
](
hapsigntool-guidelines.md
)
。
如果应用需要将自身的APL等级声明为system_basic及以上的APL等级,在开发应用安装包时,要修改应用的Profile文件。
在文件"bundle-info"的"apl"字段声明应用的APL等级后,使用
[
hap包签名工具
](
hapsigntool-overview.md
)
生成证书;也可以使用DevEco Studio
[
自动签名
](
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-auto-configuring-signature-information-0000001271659465#section161281722111
)
。
> **注意:**<br>直接修改应用Profile文件的方式,仅用于应用/服务调试阶段使用,不可用于发布上架应用市场。如果需要开发商用版本的应用,请在对应的应用市场进行发布证书和Profile文件的申请。
示例如下:
该示例仅涉及修改"apl"字段,其余信息请根据实际情况。Profile文件的字段说明可参考
[
HarmonyAppProvision配置文件的说明
](
../quick-start/app-provision-structure.md
)
。
```
json
{
"bundle-info"
:
{
"developer-id"
:
"OpenHarmony"
,
"development-certificate"
:
"Base64 string"
,
"distribution-certificate"
:
"Base64 string"
,
"bundle-name"
:
"com.OpenHarmony.app.test"
,
"apl"
:
"system_basic"
,
"app-feature"
:
"hos_normal_app"
},
}
```
### 权限等级说明
...
...
@@ -101,7 +102,7 @@ ATM(AccessTokenManager)是OpenHarmony上基于AccessToken构建的统一的
system_basic权限允许应用访问操作系统基础服务相关的资源。这部分系统基础服务属于系统提供或者预置的基础功能,比如系统设置、身份认证等。这些系统资源的开放对用户隐私以及其他应用带来的风险较大。
该类型的权限仅向APL等级为system_basic
等级
的应用开放。
该类型的权限仅向APL等级为system_basic
及以上
的应用开放。
-
**system_core权限**
...
...
@@ -179,8 +180,22 @@ ACL方式的工作流程可以参考[ACL方式使用说明](#acl方式使用说
在上述的
[
授权流程
](
#不同权限类型的授权流程
)
的基础上,应用需要进行额外的ACL声明步骤。
应用除了需要在
config.json文件声明所需申请的权限,还需要在应用的
[
p
rofile文件中声明
](
accesstoken-guidelines.md#acl方式声明
)
不满足申请条件的高等级权限,接下来的授权流程不变。
应用除了需要在
应用配置文件声明所需申请的权限,还需要在应用的
[
P
rofile文件中声明
](
accesstoken-guidelines.md#acl方式声明
)
不满足申请条件的高等级权限,接下来的授权流程不变。
**ACL申请方式须知**
开发应用安装包时,需要修改应用的profile文件,在文件的"acl"字段声明目标的访问控制列表,并使用profile签名工具生成证书。具体签名流程可以查看页面
[
Hap包签名工具指导
](
hapsigntool-guidelines.md
)
。
\ No newline at end of file
开发应用安装包时,需要修改应用的Profile文件,在文件的"acl"字段声明目标的访问控制列表。然后使用
[
hap包签名工具
](
hapsigntool-overview.md
)
生成证书。
> **注意:**<br>直接修改应用Profile文件的方式,仅用于应用/服务调试阶段使用,不可用于发布上架应用市场。如果需要开发商用版本的应用,请在对应的应用市场进行发布证书和Profile文件的申请。
```
json
{
"acls"
:
{
"allowed-acls"
:
[
"ohos.permission.PERMISSION"
]
},
}
```
Profile文件的字段说明可参考
[
HarmonyAppProvision配置文件的说明
](
../quick-start/app-provision-structure.md
)
。
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录