我想了解托管在AWS上的Android应用程序中最终用户身份验证的最佳实践。我理解IAM是一种最佳实践,并且在Amazon AWS Android SDK中有STS/IAM功能,但我更倾向于在没有SDK的情况下执行相同的功能,以避免供应商锁定。我在其他类似的基础设施服务中发现的STS/IAM功能有什么标准化吗?或者这是一种理想主义和愚蠢的努力?
我还想对一般的身份验证过程有一个更好的概念理解,因为这是我第一次尝试进入web应用程序领域。
我是Android AWS SDK的维护者之一。你可能对昨晚刚刚推出的一个功能感兴趣,网络身份联盟。通过这种方式,移动应用程序(包括Android和iOS)的用户可以使用Facebook、Google和新推出的Login with Amazon进行身份验证,然后获得临时的AWS凭证。此功能建立在OpenID Connect等标准之上。
作为支持web身份联合发布的一部分,我们构建了一个示例应用程序,展示了如何利用它在单个开发人员Amazon S3帐户中为用户提供"个人文件存储"。
我担心IAM不适合最终用户身份验证,它更多的是一种管理与AWS资源相关的用户和特权的方式,而不是应用程序,类似于一家公司可能使用的活动目录作为中心用户数据库。
我经常在我的java应用程序中使用Spring Security,因为它比纯JAAS更容易定制,但是如果您需要更多概念性信息,请查看这个RBAC参考。