Я не могу перевести рабочий код в JS для аутентификации с помощью Cognito Identity в рабочий код на C #
В настоящее время процесс уже работает с языком javascript и работает нормально:
- пользователь выполняет вход в систему Gigya и получает JWT
- Этот JWT передается службе Lambda-Cognito, в результате чего получается токен доступа, подобный этому:
Заголовок
{
"kid":"eu-west-11",
"typ":"JWS",
"alg":"RS512"
}
Полезная нагрузка
{
"sub":"eu-west-1:eed436ce-0126-494e-a098-647XXXXXXXXX",
"aud":"eu-west-1:1e71e5a8-2554-4a92-9f22-ca1XXXXXXXXX",
"amr":[
"authenticated",
"auth.cognito.custom.gsdp.fca",
"auth.cognito.custom.gsdp.fca:eu-west-1:1e71e5a8-2554-4a92-9f22-ca1fcca153e2:a097fc344410484e827XXXXXXXXXX"
],
"iss":"https://cognito-identity.amazonaws.com",
"exp":1561629216,
"iat":1561628916
}
Подпись
XXXXXXXXXX
затем эти данные передаются в Amazon с помощью:
</p>
<pre><code>var iss = decodedToken.payload.iss.split('//')[1]; //iis obtained in the previous step
var logins = {};
logins[iss] = token; //(Token obtained by the lambda function on the previous point)
AWS.config.region = cognito_sdpr_params.region; // Region
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityId: identityId, //(identityId Obtained by the lambda function on the previous point)
Logins: logins
});
AWS.config.credentials.get(function () {
$timeout(function () {...})})
затем, когда Cognito Identity получает учетные данные, маркер сеанса используется для сбора данных из третьего сервиса.
Хорошо, все это работает нормально с javascript, но теперь тот же процесснеобходимо реплицировать в .net внутри веб-службы.
Я прибыл для репликации того же процесса до пункта 3 (исключено), но я не могу получить учетные данные и не знаю, как это сделатьтот.Я имею в виду, что я пытался использовать, например, этот код:
CognitoAWSCredentials c = new CognitoAWSCredentials(dt.Payload.aud, RegionEndpoint.EUWest1);
ImmutableCredentials ic = c.GetCredentials();
Но я получаю сообщение об ошибке типа: «Неавторизованный доступ не поддерживается для этого пула удостоверений».Я не понимаю этого сообщения, поскольку все работает нормально для javascript, а не для .net, а также токена, полученного Lambda si, который сообщает о том, что пользователь прошел проверку подлинности, как мы видим выше.
Спасибо за любую помощь, высоко ценится с наилучшими пожеланиями