AWS Cognito в сочетании с остальными apis Rest, кроме api gateway - PullRequest
0 голосов
/ 18 октября 2018

Cognito - мощный инструмент, но его так сложно использовать.
Пытаясь реализовать свою бизнес-логику, я оказался в тупике и мне нужна помощь.

Моим клиентским приложением является панель администратора , где новый admin может зарегистрироваться, предоставив компанию .

Теперь есть 2 приложения (конкурсы, обзоры), основанные на этих компаниях.
Таким образом, из панели adminPanel администратор может создавать события для обоих приложений с помощью 2 различных остальных API

Концепция1 администратор связан с одной или несколькими компаниями. Мне нужно каким-то образом сопоставить эти отношения с Cognito.
Поскольку cognito довольно хорошо выполняет аутентификацию, но не авторизация .

В каждом запросе не только я должен проверять пользователя по токену доступа, но я также должен видеть, уполномочен ли пользователь выполнять действие на основе компании.

Например, если пользователь хочет создать событие Contest для своей компании.Я сделаю запрос на Contest Api , и я должен разрешить, что администратор связан с этой компанией

Субъекты компании используются из обоих API, поэтому я должен выставить их в новом APIназываемые компаниями. (Если какой-либо API требует информацию о компаниях, он должен позвонить в get company / {id})

Я считаю, что для того, чтобы авторизовать пользователя в моем API, я должен:
1) проверить access_token.
2) связаться с Cognito , чтобы получить информацию о пользователе.
3) вызвать компании api, чтобы проверить, авторизован ли пользователь для выполнения действий для этой кампании.

Так что я чувствую, что это становится слишком сложным, и мне нужно 2 службы для аутентификации и авторизации каждого запроса (cognito + company api).Есть ли другой способ реализовать логику авторизации Cognito без использования второго API?

PS Я уже проверил триггеры Cognito, но они не покрывают мои потребности. Например, триггер предварительного генерирования токена может добавлять утверждения, но добавляет их в identity_token not access_token . Также мои утверждения должны быть массивом company_ids, с которым связан администратор, но утверждения поддерживают только строки и цифры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...