【问题标题】:User preferences with microservice architecture具有微服务架构的用户偏好
【发布时间】:2018-03-28 16:10:29
【问题描述】:

我和我的团队正在实施基于微服务架构的产品(每个微服务都有自己的数据存储)。我们已经在 AWS 上部署了一些服务,我们需要添加保存用户偏好的功能,例如:

  1. 已保存过滤器以查询数据
  2. UI 小部件设置
  3. 列顺序

我认为我们有以下选项来实现保存用户首选项:

  1. 扩展用户配置文件(用于存储公司和用户、角色)服务并在那里添加新项目
  2. 创建仅保留用户偏好的新微服务
  3. 为此使用一些 AWS 服务(我仍在检查什么是最好的)

我们用于安全的内容:

  • AWS 认知
  • SAML IDP
  • JWT 令牌

我们还有用户配置文件微服务(我之前提到过)。它包含从其他产品(如管理服务)接收到的数据。

你怎么看?我的情况最好的选择是什么?

【问题讨论】:

  • 您的应用程序的性质是什么,是多租户还是单租户?当您说用户配置文件时,您当前将其存储在哪里?还有你提到的配置,看起来它们的数据大小是有限的,对吧?
  • 除了阿山的问题,你是用什么来认证和授权的?对于您的用户特定数据,请查看 DynamoDB。用于身份验证的 Cognito 用户池。用于授权的 Cognito 联合身份和用于跨设备存储和同步用户数据的 Cognito Sync。
  • 我编辑了帖子并添加了有关安全性的信息。
  • 您可以在 Cognito 中存储每个用户的自定义属性。这是放置它们的便利位置,因为您必须在验证时读取 Cognito 用户记录,以便缓存和使用属性。或者,将它们保存到 DynamoDB。

标签: amazon-web-services microservices user-preferences


【解决方案1】:

如果您只使用 Cognito 用户池,则可以使用自定义属性(如 @jarmod 所建议的那样)。但是,如果您使用 Microsoft ADFS、Google、Facebook 等其他提供商,您可以查看 Cognito Sync。尽管 Cognito 用户池现在支持一些外部提供程序,但它可能不适合您的用例。因此,您可以将各种身份验证提供程序(包括用户池)集成到身份池中,并使用 Cognito 同步数据集来存储首选项。事实上,这就是 Sync 的全部意义所在,它提供对用户偏好等小型数据集的跨设备访问。这样,如果用户使用 Userpool 登录并随后使用 Facebook 登录,您可以选择在您的应用程序中链接两个帐户并合并用户首选项。这完全取决于您的用例。

【讨论】:

    猜你喜欢
    • 2016-04-15
    • 1970-01-01
    • 2015-12-26
    • 2020-10-19
    • 2017-05-28
    • 2016-11-23
    • 2018-03-29
    • 2019-03-23
    相关资源
    最近更新 更多