当前位置: 首页 > 知识库问答 >
问题:

使用AWS Cognito开发者身份从我的iOS应用程序完全访问DynamoDB

谢灵均
2023-03-14

我已经实现了AWS Lambda功能,并使用网关返回完整数据:

var param =
{
    IdentityPoolId: "actualIdentityPoolId",
    Logins: {} // To have provider name in a variable
};
param.Logins["com.testing.userLogin"] = userId;

cognitoidentity.getOpenIdTokenForDeveloperIdentity(param,
function(err, data)
{
    if (err) return fn(err); // an error occurred
    else fn(null, data.IdentityId, data.Token); // successful response
});

因此,identityId和令牌会被发送回ios设备。在我的设备中,我尝试连接到AWS DynamoDB表,但访问被拒绝。如何使用identityId和令牌访问表?

我在IAM中为Unauth设置了角色,Unauth拒绝Dydnamo和Auth,Auth通过其策略提供对表的访问。

我试图实现身份验证使用:http://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html

我看到有两个流是基本流和增强流。留档表示大多数用户将使用增强的流,并实现了GetCreentalForId相。

这是如何在我的ios代码中实现的,以便我可以将我的角色从unauth切换到auth,并可以访问Dynamodb?这种访问将持续多久?我想在我的ios代码中完成这一切,而不是使用lambda或类似的东西。

共有2个答案

满自明
2023-03-14

仔细检查DynaNodeB角色,以获得对DynamoDB资源的身份验证访问。您引用的《开发人员指南》的下一页中有一个示例角色。该页面称为“IAM角色”,最后一节是重要的一节:“对Amazon DynamoDB的细粒度访问”。

坚持使用增强版Authflow的计划。建议使用它,并且减少对身份验证的调用(您的用户会喜欢这一点)。只要确保您的移动客户端从iOS调用GetCre的alsForIdid

从页面下方的增强版Authflow留档中:

在建立标识ID后,可以调用GetCredentialsForIdentity API。此API在功能上等同于调用GetOpenIdToken,后跟AssumeRoleWithWebIdentity。

AssumeRoleAnd WebIdid是允许用户承担角色以访问DynamoDB资源的重要部分。只要您在Cognito控制台中正确设置角色,Cognito将负责其余部分:

为了让Amazon Cognito代表您调用AssumeRoleAnd WebIdium,您的身份池必须具有与之关联的IAM角色。您可以通过Amazon Cognito控制台或通过SetIdtyPoolRoles操作手动执行此操作(请参阅API参考)

宇文峰
2023-03-14

如果您的用户未经身份验证,则登录时您需要清除凭据,并且您的“登录”方法现在应返回正确更新的登录映射。

以下是帮助您的文档:http://docs.aws.amazon.com/cognito/latest/developerguide/developer-authenticated-identities.html

 类似资料:
  • 在我的应用程序中,我在应用程序购买中使用。在应用程序开始时,我会使用以下代码检查用户是否购买了高级版本: 这工作得很好,但我作为开发人员有一个问题,我没有为高级版本购买,我不能这样做,因为如果我尝试,我会收到以下消息: 发布者无法购买此项目 那么我该如何避免这个问题呢?Play 管理中心是否有我错过的某些设置?

  • 问题内容: 有没有办法从iCloud Drive中选择文件? 问题答案: 您可以通过以下方式显示控制器: 在您的委托中实现方法: 请注意,您无需设置要使用的iCloud权利。Apple 在此处提供了示例代码来演示如何使用此控制器

  • 我试图从我的SAM应用程序本地连接到DynamoDB。我能够启动Dynamodb服务器,并能够通过我的python文件连接它,引用此https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.Python.01.html 导入json导入boto3从boto3.dynamodb.conditions

  • 一个应用程序开发框架。作者实现了很多控件效果,方便其他开发者各取所需。所实现的效果包括:打分星星、响应点击动作、旋转按钮效果、根据文字多少改变大小的UILabel等等效果。 [Code4App.com]

  • 我正在尝试开发一个应用程序,需要使用开发者电子邮件访问谷歌开发者API。我查阅了官方文件。我不太明白。我按照以下说明创建了客户端id。https://developers.google.com/android-publisher/authorization但是为了生成他们提到的用来调用这个API的令牌”https://accounts.google.com/o/oauth2/auth?scope=

  • 开发者身份介绍 基本介绍 京东小程序开发者共分为 5 种开发者类型(商户身份),分别为京东商家、品牌企业、服务商企业、Mp.pay、Mp.store,其中前 3 种基础类型可在平台入驻时依据开发者自身情况进行选择,后 2 种类型是开发者在入驻审核通过后进行主体变更申请获得,需要注意的是,服务商企业入驻后不支持主体变更;Mp.pay、Mp.store两类商户身份主要是针对有支付、交易类能力需求的开发