Я немного запутался, используя метод 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
Если правильно как дать доступ расскажите пошагово