Uso de identidades web federadas - Amazon DynamoDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de identidades web federadas

Cuando escriba una aplicación dirigida a gran cantidad de usuarios, puede utilizar, si lo desea, identidades web federadas para llevar a cabo las operaciones de autenticación y autorización. Las identidades web federadas evitan tener que crear usuarios de IAM individuales. En su lugar, los usuarios pueden iniciar sesión en un proveedor de identidades y obtener credenciales de seguridad temporales de AWS Security Token Service ( AWS STS ). A continuación, la aplicación puede utilizar estas credenciales para obtener acceso aAWSServicios de .

Las identidades web federadas admiten los siguientes proveedores de identidad:

  • Login with Amazon

  • Facebook

  • Google

Recursos adicionales para identidades web federadas

Los siguientes recursos pueden ayudarle a obtener más información sobre las identidades web federadas:

  • El postUso de identidades web federadasAWS SDK for .NETen elAWSEl blog de desarrolladores explica cómo utilizar las identidades web federadas con Facebook. Incluye fragmentos de código en C# que muestran cómo asumir un rol de IAM con identidad web y cómo usar credenciales de seguridad temporales para obtener acceso a unAWSRecurso.

  • LaAWS Mobile SDK for iOSy laAWS Mobile SDK for Androidcontienen aplicaciones de ejemplo. Incluyen código que muestra cómo invocar a los proveedores de identidad y, a continuación, cómo utilizar la información de estos proveedores para recibir y utilizar credenciales de seguridad temporales.

  • En el artículo Web Identity Federation with Mobile Applications se explican las identidades web federadas y se muestra un ejemplo de cómo utilizarlas para obtener acceso a un recurso de AWS.

Ejemplo de política para identidades web federadas

Para mostrar cómo utilizar las identidades web federadas con DynamoDB, vuelva a visitar laGameScoresque se introdujo enUso de condiciones de políticas de IAM para control de acceso preciso. Esta es la clave principal para GameScores.

Nombre de la tabla Tipo de clave principal Nombre y tipo de clave de partición Nombre y tipo de clave de ordenación
GameScores (UserId, GameTitle, ...) Compuesto Nombre de atributo: UserId

Tipo: Cadena
Nombre de atributo: GameTitle

Tipo: Cadena

Ahora, supongamos que una aplicación de juegos para móviles utiliza la aplicación, con lo cual esta tiene que aceptar miles o incluso millones de usuarios. A esta escala, resulta muy complicado administrar individualmente a los usuarios de la aplicación y garantizar que cada uno de ellos únicamente pueda obtener acceso a sus propios datos en la tabla GameScores. Afortunadamente, muchos usuarios ya tiene cuentas de un proveedor de identidades tercero, como Facebook, Google o Login with Amazon. Por este motivo, es lógico utilizar alguno de ellos para llevar a cabo las tareas de autenticación.

Para hacer esto mediante las identidades web federadas, el desarrollador de la aplicación debe registrar esta última en un proveedor de identidades (como Login with Amazon) y obtener un identificador de aplicación exclusivo. A continuación, el desarrollador debe crear un rol de IAM. (En este ejemplo, este rol se llama GameRole). El rol debe tener adjunto un documento de política de IAM en el que se especifiquen las condiciones en virtud de las cuales la aplicación podrá obtener acceso aGameScoresUna tabla de

Cuando un usuario desee jugar, iniciará sesión en esta cuenta de Login with Amazon desde la propia aplicación de juegos. A continuación, la aplicación llamará a AWS Security Token Service ( AWS STS ), proporcionará el identificador de aplicación de Login with Amazon y solicitará formar parte de GameRole. AWS STS devolverá credenciales temporales de AWS a la aplicación y permitirá que esta última obtenga acceso a la tabla GameScores, de acuerdo con lo establecido en el documento de política GameRole.

En el diagrama siguiente se muestra cómo se integran estas piezas entre sí.

Información general sobre las identidades web federadas

  1. La aplicación llama a un proveedor de identidades tercero para autenticar al usuario y la aplicación. El proveedor de identidades devuelve un token de identidad web a la aplicación.

  2. La aplicación llama a AWS STS Y pasa el token de identidad web como información de entrada. AWS STS autoriza la aplicación y le proporciona temporalAWScredenciales de acceso. La aplicación puede asumir un rol de IAM (GameRole) y acceda aAWSde acuerdo con la política de seguridad de la función.

  3. La aplicación llama a DynamoDB para acceder aGameScoresUna tabla de Dado que la aplicación ha asumido el rol GameRole, está sujeta a la política de seguridad asociada a ese rol. El documento de política impide que la aplicación obtenga acceso a datos que no pertenecen al usuario.

Una vez más, esta es la política de seguridad de GameRole que se mostró en Uso de condiciones de políticas de IAM para control de acceso preciso:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToOnlyItemsMatchingUserID", "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores" ], "Condition": { "ForAllValues:StringEquals": { "dynamodb:LeadingKeys": [ "${www.amazon.com:user_id}" ], "dynamodb:Attributes": [ "UserId", "GameTitle", "Wins", "Losses", "TopScore", "TopScoreDateTime" ] }, "StringEqualsIfExists": { "dynamodb:Select": "SPECIFIC_ATTRIBUTES" } } } ] }

La cláusula Condition determina qué elementos de GameScores están visibles para la aplicación. Para ello, compara el identificador de Login with Amazon con los valores de las claves de partición UserId de GameScores. Solamente los elementos que pertenecen al usuario actual se pueden procesar utilizando una de las acciones de DynamoDB enumeradas en esta política. No se puede obtener acceso a los demás elementos de la tabla. Además, solo se puede obtener acceso a los atributos específicos enumerados en la política.