Как я могу реализовать RBAC в Aws Cognito с Amazon Cognito Identity Js - PullRequest
0 голосов
/ 15 января 2019

Как я могу реализовать RBAC в Aws Cognito для шлюза AWS Api.

Это мой пример авторизации в моем AWS Api Gateway

a

В этом примере моя лямбда-функция соединяется с aws cognito с nodejs.

 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 голосов
/ 15 января 2019

Одним из методов может быть применение пользовательской функции авторизации на Api Gateway для фильтрации ненужного трафика после проверки с помощью вашей базы данных.

Так работает пользовательская функция авторизации

  1. Пользователь пытается получить доступ к API
  2. Api-шлюз перехватывает запрос пользователя
  3. здесь в игру вступает функция CustomAuthorizer, вы можете проверить токен JWT, подтвердить его роль и т. Д. Любую пользовательскую логику, которую вы хотите применить для этого пользователя.

Ниже приведена ссылка для пользовательского авторизатора. https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html

...