如何使用Amazon Cognito Identity Js在Aws Cognito中实施RBAC

时间:2019-01-15 05:13:45

标签: amazon-web-services aws-lambda amazon-cognito

如何在AWS Api网关的Aws Cognito中实施RBAC。

这是我在AWS Api网关中的示例授权

a

此示例是我的lambda函数,用于通过nodejs与AWS Cognito连接。

 var mysql = require("mysql");
const uuidv4 = require("uuid/v4");



exports.endSession = (event, context, callback) => {
  context.callbackWaitsForEmptyEventLoop = false;
  const updateSession = () =>
    new Promise((resolve, reject) => {

      pool.query(
        `UPDATE sessions SET end_time = CURRENT_TIMESTAMP() WHERE sessions.uuid = '${
        event.uuid
        }'`,
        (err, res, field) => {
          if (err) {
            reject(err);
          }
          resolve(res);
        }
      );
    });


  updateSession()
    .then(() => {
      const resp = {
        status: "success",
        data: {
          message: "Successfully end session"
        }
      };

      callback(null, resp);
    })
    .catch(err => {
      callback(null, err);
    });
};

1 个答案:

答案 0 :(得分:0)

一种方法可能是在与您的数据库进行验证之后,在Api Gateway上应用自定义授权者功能,以过滤掉不必要的流量。

这是自定义授权者功能的工作方式

  1. 用户尝试访问api
  2. Api网关拦截用户的请求
  3. 此处将使用CustomAuthorizer函数,您可以验证JWT令牌,验证其角色等任何要应用于该用户的自定义逻辑。

以下是自定义授权者的链接 https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html