设置 我正在完成“使用 Amazon Cognito 的 Saas 身份和隔离”部署指南和随附的源代码。
在部署、测试和阅读所有内容之后,我能够弄清楚
- 如何使用每个租户的 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/index.js中我能找到的与权限/策略相关 的唯一代码是:
var policy = new AuthPolicy(principalId, awsAccountId, apiOptions);
policy.allowAllMethods();
const authResponse = policy.build();
< Gasp > 这段代码看起来我们正在绕过所有策略。这个应用程序是否有可能伪造它并且只在 Angular 中处理路由?可能不是。
附加问题 我已经能够通过AWS PowerShell提取我需要知道的几乎所有内容。我不知道如何检索的一件事是用户池身份提供程序。Get-CGIPIdentityProvider cmdlet 需要“ProviderName” 。这是什么?“认知”?“www.amazon.com”?一些标识符?
如果您只是滚动到底部,请重复主要问题。这一切是如何联系在一起的?具体来说,租户用户池中的用户如何与身份池中的策略相关联?似乎有人在“获取访问令牌(使用 IAM 策略)”周围挥舞着。这是如何运作的?自定义授权人如何适应?