studio sqs cognito aws ios objective-c amazon-web-services amazon-dynamodb amazon-cognito

sqs - Obtener acceso completo a DynamoDB desde mi aplicación ios usando AWS Cognito Developer Identities



aws s3 android (2)

Implementé una función AWS Lambda y utilicé la puerta de enlace para devolver los datos de relleno:

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 });

Por lo tanto, el ID de identidad y el token se envían de vuelta al dispositivo ios. En mi dispositivo, intento conectarme a una tabla DynamoDB de AWS, pero se deniega el acceso. ¿Cómo uso identityId y token para obtener acceso a las tablas?

He configurado roles en IAM para Unauth, que niega Dydnamo y Auth, que da acceso a las tablas a través de sus políticas.

Estoy intentando implementar la autenticación usando: http://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html

Veo que hay dos flujos que son Básicos y Mejorados. La documentación dice que la mayoría de los usuarios usarán el flujo mejorado y que implementa GetCredentialForIdentity.

¿Cómo se implementa eso en mi código ios para poder cambiar mi rol de unauth a auth y poder acceder a dynamodb? ¿Cuánto durará este acceso? Me gustaría hacer todo esto en mi código ios en lugar de usar lambda o algo así.



Comprueba dos veces tus funciones de DynanoDB para obtener acceso autenticado a tu recurso de DynamoDB. Un papel ejemplar para esto se encuentra en la siguiente página de la guía para desarrolladores a la que se hace referencia . La página se llama " Roles IAM " y la última sección es la importante: " Acceso fino a Amazon DynamoDB ".

Quédese con su plan para usar Enhanced Authflow. Se recomienda y realiza menos llamadas para autenticarse (sus usuarios apreciarán esto). Solo asegúrese de que sus clientes móviles llamen a GetCredentialsForIdentity desde iOS.

De la documentación mejorada de Authflow más abajo en su página:

Se puede llamar a la API GetCredentialsForIdentity después de establecer una ID de identidad. Esta API es funcionalmente equivalente a llamar a GetOpenIdToken seguido de AssumeRoleWithWebIdentity .

El AssumeRoleWithWebIdentity es la pieza importante que le permite a su usuario asumir el rol que obtiene acceso al recurso DynamoDB. Cognito se encargará del resto siempre que configure los Roles correctamente dentro de la consola Cognito:

Para que Amazon Cognito llame a AssumeRoleWithWebIdentity en su nombre, su grupo de identidades debe tener roles de IAM asociados. Puede hacerlo a través de la consola de Amazon Cognito o manualmente a través de la operación SetIdentityPoolRoles (consulte la referencia de la API)