EC2 和 RDS 身份验证?

EC2 and RDS Authentication?

我有一个 EC2 实例 运行 一个 Node.js Express 后端控制对 RDS 实例的 CRUD 操作。我正在做一个移动应用程序客户端(我正在使用客户端 sdk 通过 cognito 对用户进行身份验证)。验证我的移动应用程序用户以便只有经过身份验证的用户才能访问我在 EC2 中的 Node.js Express 函数 运行 的最佳方法是什么?基本上是在寻找类似 IAM Lambda 身份验证的东西(但对于这个服务器应用程序,而不是无服务器架构)。

What would be the best way to authenticate my mobile app users so that only authenticated users can access my Node.js Express functions running in EC2

使用 Cognito 进行身份验证后,您应该能够在用户通过身份验证后获得访问令牌(id 令牌和访问令牌)。

token是在用户认证后由手机客户端获取的,参见https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetOpenIdToken.html。此令牌可以随每个请求一起发送到 nodejs 服务。请注意token有过期时间,token过期客户端需要重新获取一个。

令牌包含用户身份、颁发者、到期时间和 (Cognito) 用户组

服务必须验证令牌(颁发者、过期时间、签名)并根据验证信任(或不信任)令牌。

验证示例:https://github.com/kjur/jsrsasign/wiki/Tutorial-for-JWT-verification) in this example the public key is read from a certificate. Amazon provides only the public key properties (e,n) https://aws.amazon.com/premiumsupport/knowledge-center/decode-verify-cognito-json-token/, so you will have to complete the public key yourself, example https://github.com/rzcoder/node-rsa

编辑:更详细的说明