Как настроить Amazon AssumeRoleWithWebIdentity для токена доступа в проекте Ionic 3?

Я немного запутался, используя метод AssumeRoleWithWebIdentity. позвольте мне описать шаг за шагом.

Шаг 1: - Я получаю токен facebook от facebook.

Шаг 2: используя метод getId, я получаю IdentityId от amzon cognito.

Шаг 3: -использовал getOpenIdToken и передал IdentityId. В ответ я получил {IdentityId,Token}.

(Вопрос 1: Могу ли я получить доступ к сервисам Amazon с помощью этого токена?)

Шаг 4: - Затем я пытаюсь реализовать метод AssumeRoleWithWebIdentity.

используя параметры: -

params = {
        RoleArn: arn:aws:iam::XXXXX:role/XXXXX,
        RoleSessionName: 'XXXX',
        WebIdentityToken: 'XXXX'
        DurationSeconds: 3600,
        ProviderId: 'www.amazon.com'
    };

    let sts = new AWS.STS();
    sts.assumeRoleWithWebIdentity(params, function (err, data) {
    if (err) console.log(err, err.stack);
    else console.log(data);
})

Вопрос 2: -WebIdentityToken, я должен использовать тот, который предоставлен facebook или cognito в ответ на метод getOpenIdToken.

Вопрос 3: ProviderId, я пытаюсь войти в систему с помощью Facebook, это будет graph.facebook.com или www.amazon.com?

Вопрос 4. Когда я использую WebIdentityToken в качестве предоставленного getOpenIdToken в ответ и ProviderId в качестве www.amazon.com Я получаю сообщение InvalidIdentityToken: Предоставленный токен не является токеном для входа с помощью Amazon.

Вопрос 5. Когда я использую WebIdentityToken, предоставленный facebook, и ProviderId в качестве graph.facebook.com, я получаю AccessDenied: не авторизован для выполнения sts:AssumeRoleWithWebIdentity

Если правильно как дать доступ расскажите пошагово


person Saurabh Chauhan    schedule 07.10.2017    source источник
comment
Прочтите это: stackoverflow.com/help/how-to-ask   -  person Sampath    schedule 07.10.2017
comment
Спасибо за ваше предложение, если у вас есть решение моей проблемы, пожалуйста, помогите   -  person Saurabh Chauhan    schedule 07.10.2017
comment
Логин через Amazon — это другой поставщик удостоверений, аналогичный Facebook, Google и т. д. Поэтому вы хотите использовать graph.facebook.com.   -  person John Hanley    schedule 07.10.2017


Ответы (1)


Ваша конечная цель, по-видимому, состоит в том, чтобы получить временные учетные данные AWS для пользователей вашего приложения. Для этого не нужно взаимодействовать с AssumeRoleWithWebIdentity. Amazon Cognito Federated Identities напрямую продает учетные данные AWS и скрывает все взаимодействия STS.

Как объясняется в документации по аутентификации, вам необходимо взаимодействуйте с API GetId и GetCredentialsForIdentity, и пользователь вашего приложения напрямую получит временные учетные данные AWS.

Что касается ответа на ваш вопрос 3, то токен OpenId, продаваемый GetOpenIdToken, нельзя использовать напрямую с API-интерфейсами AWS. Подробное объяснение вы можете найти в этом ответе.

person Chetan Mehta    schedule 11.10.2017