Amazon web services 微服务体系结构的用户偏好

Amazon web services 微服务体系结构的用户偏好,amazon-web-services,microservices,user-preferences,Amazon Web Services,Microservices,User Preferences,我和我的团队正在实施基于微服务体系结构的产品(每个微服务都有自己的数据存储)。我们已经在AWS上部署了一些服务,我们需要添加保存用户首选项的功能,如: 已保存用于查询数据的筛选器 UI小部件设置 列顺序 等 在我的例子中,我认为我们有以下选项来实现保存用户首选项: 扩展用户配置文件(用于存储公司和用户、角色)服务并在其中添加新项目 创建新的微服务,仅保留用户首选项 为此使用一些AWS服务(我仍在检查什么是最好的) 我们用于安全的内容: AWS Cognito SAML IDP JWT代币 我

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

  • 已保存用于查询数据的筛选器
  • UI小部件设置
  • 列顺序
  • 在我的例子中,我认为我们有以下选项来实现保存用户首选项:

  • 扩展用户配置文件(用于存储公司和用户、角色)服务并在其中添加新项目
  • 创建新的微服务,仅保留用户首选项
  • 为此使用一些AWS服务(我仍在检查什么是最好的)
  • 我们用于安全的内容:

    • AWS Cognito
    • SAML IDP
    • JWT代币
    我们还有用户配置文件微服务(我前面提到过)。它包含从其他产品(如管理服务)接收的数据


    你觉得怎么样?对于我的案例,什么是最好的选择?

    如果只使用Cognito用户池,那么可以使用自定义属性(如@jarmod所建议的)。但如果你使用其他提供商,如微软ADFS、谷歌、Facebook等,你可以研究Cognito Sync。尽管Cognito用户池现在支持一些外部提供者,但它可能不适合您的用例。因此,您可以将各种身份验证提供者(包括Userpool)集成到一个标识池中,并使用Cognito sync数据集来存储首选项。事实上,这就是整个同步点,提供对用户偏好等小数据集的跨设备访问。通过这种方式,如果用户使用Userpool登录&稍后使用Facebook登录,您可以在应用程序中提供链接两个帐户的选项,并合并用户首选项。这完全取决于您的用例。

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