全部产品
云市场

API RAM鉴权

更新时间:2018-05-11 17:18:17

使用RAM实现移动推送资源授权

您通过云帐号创建的移动推送的App资源,都是该帐号自己拥有的资源。默认情况下,帐号对自己的资源拥有完整的操作权限。

使用阿里云的RAM(Resource Access Management)服务,您可以将您云账号下App资源的访问及管理权限授予RAM中子用户。

如果您不需要使用RAM,请略过此章节。

  • 关于RAM

用户创建的App资源,都是该用户自己拥有的资源。默认情况下,用户对自己的资源拥有完整的操作权限,可以使用本文档中列举的所有 API 对资源进行操作。

但在主子账号的场景下,子账号刚创建时是没有资格去操作主账号的资源的。需要通过 RAM 授权的方式,给予子账号操作主账号资源的权限。

  • RAM说明资料

在了解如何使用 RAM 来授权和访问App资源之前,请确保您已详细阅读了 RAM 产品文档API 文档

鉴权规则

当子账号通过移动推送API对主账号的APP资源进行访问时,移动推送后台向RAM进行权限检查,以确保资源拥有者的确将相关资源的相关权限授予了调用者。

每个移动推送API会根据涉及到的资源以及API的语义来确定需要检查哪些资源的权限。具体地,资源(Resource)对应主账户创建的APP,使用AppKey来标识,操作权限(Action)对应一个API接口,使用接口名称来标识。

每个API的鉴权规则见下表:

推送相关

API 操作权限(Action) 资源(Resource)
Push mpush:Push acs:mhub:*:$accountid:app/$AppKey
PushMessageToAndroid mpush:PushMessageToAndroid acs:mhub:*:$accountid:app/$AppKey
PushMessageToiOS mpush:PushMessageToiOS acs:mhub:*:$accountid:app/$AppKey
PushNoticeToAndroid mpush:PushNoticeToAndroid acs:mhub:*:$accountid:app/$AppKey
PushNoticeToiOS mpush:PushNoticeToiOS acs:mhub:*:$accountid:app/$AppKey
CancelPush mpush:CancelPush acs:mhub:*:$accountid:app/$AppKey

Alias相关

API 操作权限(Action) 资源(Resource)
QueryAliases mpush:QueryAliases acs:mhub:*:$accountid:app/$AppKey
BindAlias mpush:BindAlias acs:mhub:*:$accountid:app/$AppKey
UnbindAlias mpush:UnbindAlias acs:mhub:*:$accountid:app/$AppKey
QueryDevicesByAlias mpush:QueryDevicesByAlias acs:mhub:*:$accountid:app/$AppKey

Tag相关

API 操作权限(Action) 资源(Resource)
QueryTags mpush:QueryTags acs:mhub:*:$accountid:app/$AppKey
ListTags mpush:ListTags acs:mhub:*:$accountid:app/$AppKey
BindTag mpush:BindTag acs:mhub:*:$accountid:app/$AppKey
UnbindTag mpush:UnbindTag acs:mhub:*:$accountid:app/$AppKey
RemoveTag mpush:RemoveTag acs:mhub:*:$accountid:app/$AppKey

Account相关

API 操作权限(Action) 资源(Resource)
QueryDevicesByAccount mpush:QueryDevicesByAccount acs:mhub:*:$accountid:app/$AppKey

查询与统计

API 操作权限(Action) 资源(Resource)
QueryUniqueDeviceStat mpush:QueryUniqueDeviceStat acs:mhub:*:$accountid:app/$AppKey
QueryDeviceStat mpush:QueryDeviceStat acs:mhub:*:$accountid:app/$AppKey
QueryPushStatByApp mpush:QueryPushStatByApp acs:mhub:*:$accountid:app/$AppKey
QueryPushStatByMsg mpush:QueryPushStatByMsg acs:mhub:*:$accountid:app/$AppKey
ListPushRecords mpush:ListPushRecords acs:mhub:*:$accountid:app/$AppKey
QueryDeviceInfo mpush:QueryDeviceInfo acs:mhub:*:$accountid:app/$AppKey