亚马逊AWS官方博客

AWS Team

Author: AWS Team

认证授权专题(三) : Cognito Identity Pool + IoT Core 实现 Mobile 端用户对设备权限的精细化控制

目前,越来越多的Iot厂商会开发自己的APP,使得终端用户可以通过APP绑定自己的设备,检测自己设备的实时情况,并且对设备做即时的控制。在此场景下,Mobile端的终端用户应该只能发布消息到自己的设备。用户和设备的关系可能是一对多或者多对多,比如同一个user拥有多个设备,用户A只能发布消息到/userA/deviceX的topic中;多个设备可能受同时受多人控制,此时用户B和C都有权限发布消息到/device2/temp下。本文考虑到此两种场景并做展开,利用Cognito和AWS Iot Core,实现终端对设备的精细化控制权限管理。

Read More

认证授权专题(五) : API Gateway + Custom Authorizer 精细化权限控制

大多数移动应用或者 Web 应用都有自己的用户身份认证体系。用户的身份信息存储在应用的自有数据库中, API Gateway定义的不同的资源操作,需要根据应用的用户身份判断是否允许该用户访问这些不同的操作. 例如,一个 bookstore app, 资源URI有/books, /books/{usesrid}, 具体的操作有/books/get, books/{userid}/get, books/{userid}/post等等。 在这个应用中,如果用户的身份为admin,则该用户可以执行所有操作。对于身份为user的用户,则只能访问 /books/{userid}下的所有操作。对于这样的基于用户身份进行API级别的权限控制需求,需要通过自定义授权函数,通过应用的身份认证系统获取用户身份,基于用户身份以及当前执行的操作相结合,在自定义授权函数中判断用户是否有权限执行操作,并构建相应的权限策略返回给 API Gateway。

Read More