С внутреннего интерфейса при вызове некоторого Cognito API с именем пользователя и паролем
он может автоматически вызывать настроенный пользовательский пул федеративной идентификации
провайдер для аутентификации пользователя, а затем сгенерировать токен JWT. Если
да, пожалуйста, вы можете обратиться / направить меня, пожалуйста.
Это возможно. Вы можете использовать комбинацию из следующих двух ссылок.
Получение токена JWT из Cognito UserPools
var authenticationData = {
Username : 'username',
Password : 'password',
};
var authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(authenticationData);
var poolData = { UserPoolId : 'us-east-1_xxxxx',
ClientId : 'xxxxxxxxxxxxxxxx'
};
var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
var userData = {
Username : 'username',
Pool : userPool
};
var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
console.log('access token + ' + result.getAccessToken().getJwtToken());
/*Use the idToken for Logins Map when Federating User Pools with identity pools or when passing through an Authorization Header to an API Gateway Authorizer*/
console.log('idToken + ' + result.idToken.jwtToken);
},
onFailure: function(err) {
alert(err);
},
});
Передайте токен JWT в Федеративный пул идентификации Cognito через SDK и обменяйте его на учетные данные для временного доступа AWS, чтобы выполнить любое действие против инициализации AWS.
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'us-east-1:xxxxxxx-xxxx-xxxx-xxxx-xxxxxx',
Logins: {
'cognito-idp.us-east-1.amazonaws.com/us-east-1_xxxxxx': result.idToken.jwtToken
}
});
Пользователь, присутствующий в поставщике удостоверений, не существует в пуле пользователей AWS. Является
возможно аутентифицировать пользователя с настроенным провайдером идентификации
без присутствия пользователя в пуле пользователей AWS? Если да, то будет
пользователь будет создан в пуле пользователей AWS после аутентификации?
Это возможно только в том случае, если ваш внешний провайдер идентификации поддерживает федерацию SAML.