Как получить AWS AccessToken из Cognito, используя Dev Authenticated Identities - PullRequest
1 голос
/ 12 января 2020

Я использую Cognito Identity Pool с Настройка проверки подлинности идентификаторов разработчика с проверкой подлинности - этот поток проверки подлинности был выбран, потому что мы не можем использовать Cognito User Pools по некоторым деловым причинам. Поэтому я реализовал Службу идентификации пользователей самостоятельно, используя API-шлюз с конечной точкой аутентификации, которая запускает функцию Lambda.

Итак, я сгенерировал временные AccessKey и SecretKey, запустив cognitoidentity.getOpenIdTokenForDeveloperIdentity, а затем cognitoidentity.getCredentialsForIdentity и получив временные AWS учетные данные (временные AccessKey и SecretKey).

Теперь я хочу сгенерировать AccessToken для проверки подлинности моих запросов на AWS API-шлюзе, на котором я использую авторизацию IAM (поэтому для авторизации запросов требуется AccessToken).

Мой вопрос - как мне сгенерировать AccessToken?

AuthenticationResult contents

1 Ответ

1 голос
/ 14 января 2020

Я не думаю, что вам нужно генерировать AccessToken. Взгляните на Документация по аутентификации IAM шлюза API :

Примечание : чтобы вручную проверять подлинность запросов, отправляемых на шлюз API с помощью другого инструмента или среды, Вы должны использовать процесс подписи Signature Version 4. Для получения дополнительной информации см. Подписание запросов в Справочнике по API REST API Gateway.

Перейдя по ссылке выше, вы увидите:

Amazon API-шлюз требует, чтобы вы аутентифицировали каждый отправленный вами запрос, подписав его. Чтобы подписать запрос, вы рассчитываете цифровую подпись [...]

. Взгляните также на этот вопрос, который касается подписания выше: Интеграция пула идентификаторов с API-шлюзом

Я сам этого не делал, но я был бы очень удивлен, если бы вам пришлось делать это вручную из внешнего интерфейса. Должен быть клиент, который вы можете использовать для обработки подписи, как это делает Почтальон в примере из AWS do c выше. Т.е. вы даете клиенту учетные данные IAM, а клиент отправляет запросы API, когда вы его об этом запрашиваете, автоматически обрабатывая подпись с использованием предоставленных вами учетных данных IAM. Например, AWS Amplify, кажется, может сделать это для вас .

...