Настройка
Я работаю через «Идентификация и изоляция Saas с Amazon Cognito» развертывание руководство и сопровождающий исходный код .
После развертывания, тестирования и чтения всего я смог выяснить
- Как работать с пользователями / пулами пользователей Cognito для каждого арендатора
- Как создавать роли для арендатора
- Как создать политику на основе арендатора
- Как создавать пулы удостоверений для каждого арендатора
Главный вопрос
Как все это связать вместе? В частности, как пользователь в пуле пользователей-арендаторов связывается с политикой в пуле удостоверений? Кажется, что-то размахивает рукой вокруг «Получить токен доступа (с политиками IAM)». Как это работает? Как вписываются пользовательские авторизаторы?
Дополнительная информация
Я считаю, что это связано с token-manager.js: 346
var cognitoidentity = new AWS.CognitoIdentity({apiVersion: '2014-06-30',region: configuration.aws_region});
var params = {
IdentityId: event.IdentityId, /* required */
//CustomRoleArn: 'STRING_VALUE',
Logins: {
[event.provider]: event.token,
/* '<IdentityProviderName>': ... */
}
};
cognitoidentity.getCredentialsForIdentity(params, function (err, data) {
Я вижу, что getCredentialsForIdentity задокументировано для получения CustomRoleArn, как показано ниже. Код выше закомментировал это, но код все еще работает.
var params = {
IdentityId: 'STRING_VALUE', /* required */
CustomRoleArn: 'STRING_VALUE',
Logins: {
'<IdentityProviderName>': 'STRING_VALUE',
/* '<IdentityProviderName>': ... */
}
};
Custom Authorizer
Единственный код в custom-authorizer / index.js , который я могу найти по отношению к разрешению / политике:
var policy = new AuthPolicy(principalId, awsAccountId, apiOptions);
policy.allowAllMethods();
const authResponse = policy.build();
<<em> Gasp > Этот код создает впечатление, что мы обходим все политики. Возможно ли, что это приложение имитирует его и обрабатывает только маршрутизацию в Angular? Возможно нет.
Дополнительный вопрос
Я смог извлечь почти все, что мне нужно, с помощью AWS PowerShell . Единственное, что я не знаю, как получить, это провайдер идентификации пула пользователей. Для командлета Get-CGIPIdentityProvider требуется имя "ProviderName". Что это? "Cognito"? "Www.amazon.com"? Какой-то идентификатор?
Повтор Основной вопрос на тот случай, если вы просто прокрутите страницу вниз.
Как все это связать вместе? В частности, как пользователь в пуле пользователей-арендаторов связывается с политикой в пуле удостоверений? Кажется, что-то размахивает рукой вокруг «Получить токен доступа (с политиками IAM)». Как это работает? Как вписываются пользовательские авторизаторы?