【问题标题】:EC2 and RDS Authentication?EC2 和 RDS 身份验证?
【发布时间】:2018-09-12 00:16:54
【问题描述】:

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

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-iam rds


    【解决方案1】:

    对我的移动应用用户进行身份验证的最佳方法是什么,以便只有经过身份验证的用户才能访问我在 EC2 中运行的 Node.js Express 函数

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

    用户通过身份验证后,移动客户端将获取令牌,请参阅https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetOpenIdToken.html。这个令牌可以随每个请求一起发送到 nodejs 服务。请注意令牌有一个过期时间,当令牌过期时客户端需要再获取一个。

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

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

    验证示例:https://github.com/kjur/jsrsasign/wiki/Tutorial-for-JWT-verification) 在此示例中,公钥是从证书中读取的。 Amazon 仅提供公钥属性 (e,n) https://aws.amazon.com/premiumsupport/knowledge-center/decode-verify-cognito-json-token/,因此您必须自己完成公钥,例如 https://github.com/rzcoder/node-rsa

    编辑:更详细的说明

    【讨论】:

    • 我需要为此使用 nodejs aws sdk 吗?我认为节点 sdk 仅用于客户端。我的移动客户端是使用 Cognito 授权用户的客户端。
    • @SteveFreed 我已更新答案以获得更多资源和说明。您的移动客户端将需要 aws 客户端来获取访问/openid 令牌,nodejs 服务器服务只需要验证令牌
    • 谢谢!这很有帮助
    猜你喜欢
    • 2018-01-10
    • 2017-12-08
    • 2010-10-02
    • 2011-01-22
    • 1970-01-01
    • 2012-11-05
    • 2015-02-02
    • 2018-02-24
    • 1970-01-01
    相关资源
    最近更新 更多