【发布时间】:2019-02-04 13:53:57
【问题描述】:
设置 我正在通过"Saas identity and isolation with Amazon Cognito" 部署guide 和伴随的source code 工作。
在部署、测试和阅读所有内容后,我能够弄清楚
- 如何使用 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 策略)”周围挥舞着。这是如何运作的?自定义授权人如何适应?
【问题讨论】: