harmony 鸿蒙访问控制权限校验指导

  • 2022-10-28
  • 浏览 (1233)

访问控制权限校验指导

场景介绍

应用在提供对外功能服务接口时,可以根据接口涉数据的敏感程度或所涉能力的安全威胁影响,在系统定义的权限定义列表中选择合适的权限限制当前接口的开放范围,对接口访问者进行权限校验。

接口说明

以下仅列举本指导使用的接口,更多说明可以查阅API参考

checkAccessToken(tokenID: number, permissionName: Permissions): Promise<GrantStatus>

参数名 类型 必填 说明
tokenID number 要校验的目标应用的身份标识。可通过应用的ApplicationInfo获得。
permissionName Permissions 需要校验的权限名称,合法的权限名取值可在系统权限定义列表中查询。

完整示例

进行权限校验的开发步骤为:

  1. 获取调用者的身份标识:tokenId。 > 说明:
    > 获取访问者身份标识tokenId的方法 getCallingTokenId 可参考API参考
  2. 待校验的权限名:ohos.permission.ACCELEROMETER。
  3. 使用checkAccessToken接口对当前调用者进行权限校验。
  4. 根据权限校验结果采取对应的措施。
  import abilityAccessCtrl from '@ohos.abilityAccessCtrl'
  import { BusinessError } from '@ohos.base';
  import rpc from '@ohos.rpc'

  class Stub extends rpc.RemoteObject {
      onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption) {
          let callerTokenId: number = rpc.IPCSkeleton.getCallingTokenId();
          console.log("RpcServer: getCallingTokenId result: " + callerTokenId);
          let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
          try {
              atManager.checkAccessToken(callerTokenId, "ohos.permission.ACCELEROMETER").then((data: abilityAccessCtrl.GrantStatus) => {
                  console.log(`checkAccessToken success, data->${JSON.stringify(data)}`);
              }).catch((err: BusinessError) => {
                  console.log(`checkAccessToken fail, err->${JSON.stringify(err)}`);
              });
          } catch(err) {
              console.log(`catch err->${JSON.stringify(err)}`);
          }
          return true;
      }
  }

你可能感兴趣的鸿蒙文章

harmony 鸿蒙安全

harmony 鸿蒙访问控制授权申请指导

harmony 鸿蒙访问控制(权限)开发概述

harmony 鸿蒙HarmonyAppProvision配置文件说明

harmony 鸿蒙证书开发指导

harmony 鸿蒙证书概述

harmony 鸿蒙加解密算法库框架开发指导

harmony 鸿蒙加解密算法库框架概述

harmony 鸿蒙数据防泄漏(DLP)开发指导

harmony 鸿蒙数据防泄漏(DLP)开发概述

0  赞