亚马逊AWS官方博客

Tag: Mobile Services

认证授权专题(一) : Cognito, OIDC 实现 S3 精细化权限控制

S3 是一个对象存储服务,非常适合存储海量文件。它不仅支持从服务器端上传/下载 S3 中的内容, 同时允许客户从客户端直接上传/下载 S3 中的资源。在实际应用过程中,我们经常遇到这样的需求:只允许用户 上传/下载/删除/修改(CRUD) 自己的文件。本文将探讨利用 Amazon Cognito Identity Pool, OpenID Connect 实现精细化权限控制,限制用户只能访问自己的文件。

认证授权专题(二) : AWS STS, OpenID Connect 实现 S3 精细化权限控制

S3 是一个对象存储服务,非常适合存储海量文件。它不仅支持从服务器端上传/下载 S3 中的内容, 同时允许客户从客户端直接上传/下载 S3 中的资源。在实际应用过程中,我们经常遇到这样的需求:只允许用户 上传/下载/删除/修改(CRUD) 自己的文件。 本文将探讨如何利用 AWS STS, OpenID Connect 实现精细化权限控制,实现用户只能上传和查看自己在 S3 中的文件。

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

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

认证授权专题(五) : 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。