AWS cognito userpools JavaScript SDK获取用户的策略文档

Ash*_*han 7 javascript amazon-web-services amazon-iam amazon-cognito

对于AWS Cognito Userpools中的注册用户,是否可以通过JavaScript SDK检索通过IAM角色附加到用户的策略文档?

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

Ash*_*han 2

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

  • 从 AWS Cognito JWT 中,从 ARN 中提取角色名称,并使用适用于 JavaScript 的 IAM SDK 通过以下方式获取策略 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
    });
    
    Run Code Online (Sandbox Code Playgroud)
  • 结合使用策略名称和角色名称,检索 JSON 格式的策略文档

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

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