加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – AWS Cognito来自Developer身份验证的令牌无效登录

发布时间:2020-12-17 10:22:56 所属栏目:安全 来源:网络整理
导读:我想直接从角度js上的浏览器将对象放到AWS S3. 为此,我使用了cognito开发人员身份验证. 我从我的rails服务器获得了cognito身份标识和令牌. 使用该令牌(我认为它是有效的),我的put操作被拒绝来自AWS S3:无效的登录令牌. 我不知道为什么.. 这是我的代码. AWS.
我想直接从角度js上的浏览器将对象放到AWS S3.
为此,我使用了cognito开发人员身份验证.
我从我的rails服务器获得了cognito身份标识和令牌.

使用该令牌(我认为它是有效的),我的put操作被拒绝来自AWS S3:无效的登录令牌.
我不知道为什么..

这是我的代码.

AWS.config.region = 'us-east-1';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
  AccountId: '0000',IdentityPoolId: 'us-east-1:0000-0000-0000',RoleArn: 'arn:aws:iam::0000:role/myRoleName',Logins: {
    'cognito-identity.amazonaws.com': 'token from cognito.get_open_id_token_for_developer_identity'
  }
});
var bucket = new AWS.S3({ params: { Region: 'ap-northeast-1',Bucket: 'my bucket name' }});

(0000部分只是样品)
我想知道来自cognito.get_open_id_token_for_developer_identity的’identity_id’没有空间.
配置区域和s3区域是不同的,因为我使用东京S3但是n.virginia Cognito.

我在我的角色(myRoleName)中添加了对托管策略的s3完全访问权限,并将以下设置添加到内联策略. (我还在内联策略中添加了’以下设置的资源*版本’)

{
    "Version": "2012-10-17","Statement": [
        {
            "Sid": "0000","Effect": "Allow","Action": [
                "s3:GetObject","s3:PutObject"
            ],"Resource": [
                "arn:aws:s3:::myBucketName"
            ]
        }
    ]
}
看起来您正在尝试使用“基本authflow”.以下是我们关于身份验证流程的文档的链接: http://docs.aws.amazon.com/cognito/devguide/identity/concepts/authentication-flow/#developer-authenticated-identities-authflow

这不是使用您在登录映射中提供的令牌.

我建议使用“增强的authflow”.去做这个:
(1)确保您的身份池配置了您希望用户使用的角色:http://docs.aws.amazon.com/cognito/devguide/identity/concepts/iam-roles/(2)删除身份构造函数的AccountId和RoleArn参数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读