在AWS API Gateway上设置身份验证,以提供对多应用程序和多客户端的访问权限

问题描述

我们的团队正在计划针对将基于AWS API Gateway构建的基于Web的应用程序设计REST API,而我们在如何围绕其最佳设置身份验证方面有些困惑。

我们是面试应聘者的SAAS应用程序,其想法是创建一个API,该API将允许多个ATS(申请人跟踪系统)与其集成。 这些ATS中的每一个将有多个客户端,而每个客户端将有多个用户

我们已经查看了API网关随附的一些选项,而我们更喜欢的是涉及使用Cognito进行身份验证的选项,因为它消除了编码我们的代码时必须解决的许多复杂性。自己的授权过程。

我们提出了两种选择,我想从安全和维护的角度以及如果还有更好的选择的角度,得出哪种选择更好的看法。

选项1 。在Cognito上,将每个客户端设置为应用客户端。每个客户端都有自己的一组身份验证令牌。

  • PRO:
    • 易于设置和实施
  • 缺点:
    • 可能很难维护
    • 难以识别哪个客户端属于哪个ATS

选项2。在Cognito上,将每个ATS设置为App Client,然后在AWS API Gateway上为每个客户端设置API密钥。

  • PRO:
    • 对ATS和客户端的验证更可靠。首先验证试图消耗我们的API的ATS(以确保它是允许的集成系统),然后再验证客户端。
  • 缺点:
    • 要设置的多件事
    • 需要检查多个令牌
    • 需要更长的时间来实现

我还应该提到,在此阶段,我们试图避免进行用户身份验证,因为大多数操作将在应用程序到应用程序级别进行,因此不会有太多的用户交互,并且我们无法让某人进入身份验证表单上的用户凭据。

开发团队在2个选项上分为1/2和1/2,所以我想从那里更有经验的程序员那里获得意见。

这是我在stackoverflow上的第一篇文章,如果问题的描述不够好,我深表歉意。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)