【发布时间】:2018-12-27 07:31:06
【问题描述】:
我们正在 AWS 中开发一个 Web 应用程序,将其用户存储在 Cognito 中。作为其中的一部分,我们需要与现有的桌面应用程序集成,其中客户端的管理员可以为网站创建一个只读用户,用于从桌面应用程序发送的数据。
由于此只读用户要求,必须有一个用户与桌面应用程序安装的每个实例的身份验证相关联。这没问题,因为我们很高兴桌面应用程序的所有本地用户都将他们的数据记录到 Web 应用程序中的同一位置。棘手的部分是我们无法将用户名和密码作为桌面应用最终用户的常识。
有人建议我们可以使用基于令牌的访问来允许桌面应用程序访问我们的 API,但这些都是有时间限制的,我们无法让用户每天重新进行身份验证。但是,另一个建议是创建我们自己的“密钥”,其中包含 Cognito 用户的用户名和密码,以便应用程序能够使用它,例如使用可用的解密密钥加密用户名和密码桌面应用程序,以便它可以作为该用户本身进行身份验证,而最终用户无法访问帐户详细信息。
我想知道目前是否有比我们目前可用的更好的处理此类需求的最佳实践方法。
总结一下:
- 我们有一个带有 Cognito 身份验证的 AWS API
- 我们有一个桌面应用程序需要访问 API
- 我们不能让用户知道用于访问 API 的帐户的详细信息
- 我们需要一种方法来提供一个密钥,该密钥允许桌面应用程序通过 API 对自身进行身份验证,这样令牌就不需要随着时间的推移而刷新
感谢您的帮助。
【问题讨论】:
标签: amazon-web-services authentication amazon-cognito