amazon网络服务-如何从EC2主机应用程序访问Cognito标识,而无需面对API网关



问题

在高层,我希望基于用户特定的Cognito提供的身份来授权应用程序中的某些功能。

更具体地说,我希望在EC2-主机Tomcat应用程序中实现这一点,而不依赖于API网关。

示例

例如,我的RESTful服务可能在helloworld.com/tastyTreats/foo/tastyTreats/bar上有资源。我只想在数据库中列出tastyTreat为特定Cognito标识符所有时允许对这些资源进行写访问。

假设数据库看起来像这样:

{"TreatName":"foo", "Owner":"Alice"},
{"TreatName":"bar", "Owner":"Bob"},
...

因此,Cognito标识为Bob的用户应该具有对helloworld.com/tastyTreats/bar的写访问权限,但在访问/tastyTreats/foo时应该达到403。

我希望能够在我的EC2实例中执行此授权,因为它(本质上)具有无限的灵活性。而且,如果可行的话,我希望避免推出API网关的要求——这是一个非常小的应用程序,我希望尽可能简单。

提供此功能的其他AWS服务

除了直接EC2之外的其他服务提供了根据实际身份改变行为的能力:

  • API网关似乎允许访问映射模板中的此标识
  • 通常,您可以基于此标识自定义策略,但此功能转换标识的能力似乎有限

谢谢

如果使用Cognito标识池,您将无法从EC2实例中独立完成此操作。这只能通过其他AWS服务(如API网关标识属性)获得。如果您使用的是Cognito用户池,那么这是一个标准的JWT/JWK实现(我相信使用OIDC),所以您可以从EC2实例中自己实现它。

相关内容

  • 没有找到相关文章

最新更新