Я пытаюсь вызвать свой API-шлюз с аутентифицированными пользователями с помощью REST API. Для этого я использую: Cognito UserPool + Cognito Identity Pool + API Gateway + AWS_IAM. Авторизация + учетные данные Cognito. Из того, что я собрал, мне нужно подписать свой запрос (временные учетные данные). На основе этой темы Я хочу подписать свой запрос следующими ключами:
{
SecretKey: '',
AccesKeyId: '',
SessionKey: ''
}
Если я использую связанного пользователя из моей консоли IAM и использую соответствующий SecretKey + AccesKeyID, все работает нормально. Однако я хочу использовать роли без проверки подлинности и с проверкой подлинности из моих пулов идентификаторов для применения политик IAM на основе проверенных или не прошедших проверку подлинности пользователей. К вашему сведению: я могу вызывать аутентифицированные функции из в этой части документации.
Я создаю приложение React-Native, и из-за этого я хочу свести к минимуму собственный SDK, и я использую только AWSCognitoIdentityProvider
часть. Для пользовательской обработки.
Я пытаюсь получить правильные ключи, используя этот код Objective-C:
[[self.credentialsProvider credentials] continueWithBlock:^id(AWSTask *task) {
if (task.error) {
NSLog(@"Error: %@", task.error);
}
else {
AWSCredentials *response = task.result;
NSString *accessKey = response.accessKey;
NSString *secretKey = response.secretKey;
NSString *sessionKey = response.sessionKey;
NSDictionary *responseData = @{
@"AccessKey" : accessKey,
@"SecretKey" : secretKey,
@"SessionKey": sessionKey
};
}
return nil;
}];
Остальное я установил с помощью соответствующие документы.
Я (ошибочно?) Попытался подписать свои запросы с помощью
AccessKey, SecretKey, SessionKey, полученных от CredentialsProvider em> выше.
{
SecretKey: credentials.SecretKey,
AccesKeyId: credentials.AccessKey,
SessionKey: credentials.SessionKey
}
Подписание не выполняется из-за следующей ошибки:
{ message: 'The security token included in the request is invalid.' }
Итак, у меня возникает вопрос: какие ключи я должен использовать для подписи моих запросов для аутентифицированных пользователей, чтобы я мог применять прикрепленные политики IAM из моей установки Cognito?
Спасибо за любую помощь :)
SessionKey
? НеSessionToken
? - person Michael - sqlbot   schedule 08.05.2016