【问题标题】:AWS cognito userpools JavaScript SDK get user's policy documentsAWS cognito userpools JavaScript SDK 获取用户的策略文档
【发布时间】:2017-12-17 15:08:56
【问题描述】:

对于 AWS Cognito 用户池中的注册用户,是否可以通过 JavaScript 开发工具包通过 IAM 角色检索附加到用户的策略文档?

用户案例是编写一个自定义授权器,授权 cognito id 令牌并返回具有 IAM 权限的策略文档,用户可以通过 Cognito 用户组进行假设。

【问题讨论】:

  • 您打算如何使用可能导致解决方案的政策文件?
  • 我打算将它用于 API 网关资源授权。理想情况下,它更像是用于 API 网关的 CognitoAuthorizer 和 IAMAuthorizer 的组合。

标签: javascript amazon-web-services amazon-cognito amazon-iam


【解决方案1】:

在进行进一步研究后,使用以下方法检索通过 IAM 角色附加到用户的“内联策略”。

  • 从 AWS Cognito JWT,从 ARN 中提取角色名称并使用 IAM SDK for JavaScript 获取策略 ARN,方法是使用

    const aws = require('aws-sdk');
    let iam = new aws.IAM();
    iam.listRolePolicies({ RoleName: roleName }, function (err, data) {
        let policyNames = data["PolicyNames"];
        // Use policy names and role names to retrieve policy documents
    });
    
  • 结合使用策略名称和角色名称,检索 JSON 格式的策略文档

    iam.getRolePolicy({ PolicyName: policyName, RoleName: roleName }, 
    function (err, data) {
        let document = decodeURIComponent(data["PolicyDocument"]);
    });
    
  • 接下来迭代地从每个策略文档中提取语句并构建一个。

示例代码可以在this github 存储库中找到。

【讨论】:

    猜你喜欢
    • 2018-02-27
    • 2020-12-05
    • 2020-10-28
    • 1970-01-01
    • 2019-09-08
    • 2020-12-18
    • 2014-10-30
    • 1970-01-01
    • 2014-10-08
    相关资源
    最近更新 更多