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.
Obtención de credenciales
Puede usar Amazon Cognito para entregar credenciales temporales con privilegios limitados a su aplicación, de modo que sus usuarios puedan acceder a los recursos. AWS En esta sección, se describe cómo obtener credenciales y cómo recuperar una identidad de Amazon Cognito de un grupo de identidades.
Amazon Cognito es compatible con las identidades autenticadas y no autenticadas. La identidad de los usuarios sin autenticar no se verifica, lo que hace que este rol sea adecuado para los usuarios invitados de la aplicación o para cuando no importa si se verifica la identidad de los usuarios. Los usuarios autenticados inician sesión en la aplicación a través de un proveedor de identidad externo, o un grupo de usuarios, que verifica su identidad. Asegúrese de asignar los permisos de los recursos de forma adecuada, para no conceder acceso a ellos a los usuarios no autenticados.
Las identidades de Amazon Cognito no son credenciales. Se intercambian por credenciales mediante el soporte de federación de identidades web en (). AWS Security Token Service AWS STS Para obtener AWS las credenciales de los usuarios de la aplicación, utilice el proveedor de credenciales del grupo de identidades Cognito del AWS SDK. Por ejemplo, en el AWS SDK de la versión JavaScript 3, utilice la fromCognitoIdentityPool función del paquete. @aws-sdk/credential-providers Luego, la identidad se intercambia por credenciales utilizando AWS STS.
Los proveedores de credenciales de identidad web forman parte de la cadena de proveedores de credenciales predeterminada en los AWS SDK. Para configurar el token de su grupo de identidades en un config archivo local para un AWS
SDK o el AWS CLI, añada una entrada web_identity_token_file de perfil. Consulte Asumir el rol de proveedor de credenciales en la Guía de referencia de AWS SDK y herramientas.
Para obtener más información sobre cómo rellenar las credenciales de identidad web en el SDK, consulte la guía para desarrolladores del SDK. Para obtener los mejores resultados, comience su proyecto con la integración del grupo de identidades integrada en. AWS Amplify
AWS Recursos del SDK para obtener y establecer credenciales con grupos de identidades
-
Federación del grupo de identidades
(Android) en el Amplify Dev Center -
Federación del grupo de identidades
(iOS) en el Amplify Dev Center -
Uso de Amazon Cognito Identity para autenticar a los usuarios en la Guía para desarrolladores AWS SDK para JavaScript
-
El proveedor de credenciales de Amazon Cognito en la AWS SDK para .NET Guía para desarrolladores
-
Especifique las credenciales mediante programación en la guía para desarrolladores AWS SDK para Go
-
Proporcione las credenciales temporales en código en la AWS SDK for Java 2.x Guía para desarrolladores
-
asuma el RoleWithWebIdentityCredentialProvider proveedor en la Guía para AWS SDK para PHP desarrolladores
-
Asumir el rol con el proveedor de identidades web
en la documentación de AWS SDK para Python (Boto3) -
Especificar las credenciales y la región predeterminada en la Guía para AWS SDK para Rust desarrolladores
En las siguientes secciones se proporciona un ejemplo de código de algunos AWS SDK antiguos.
Puede usar Amazon Cognito para entregar credenciales temporales con privilegios limitados a su aplicación, de modo que sus usuarios puedan acceder a los recursos. AWS Amazon Cognito es compatible con las identidades autenticadas y no autenticadas. Para proporcionar AWS credenciales a su aplicación, siga estos pasos.
Para usar un grupo de identidades de Amazon Cognito en una aplicación de Android, configure. AWS Amplify Para obtener más información, consulte Autenticación
Recuperación de una identidad de Amazon Cognito
Si admite usuarios no autenticados, puede recuperar un identificador único de Amazon Cognito (ID de identidad) para el usuario final de forma inmediata. Si está autenticando usuarios, puede recuperar el ID de identidad después de definir los tokens de inicio de sesión en el proveedor de credenciales:
String identityId = credentialsProvider.getIdentityId(); Log.d("LogTag", "my ID is " + identityId);
nota
No llame a getIdentityId(), refresh() o getCredentials() en el subproceso principal de la aplicación. A partir de Android 3.0 (nivel de API 11), tu aplicación fallará automáticamente y generará un error NetworkOnMainThreadExceptionAsyncTask. Para obtener más información, consulte la documentación de AndroidgetCachedIdentityId() para recuperar un ID, pero solo si ya hay uno almacenado localmente en la caché. De lo contrario, el método devolverá un valor nulo.
Puede usar Amazon Cognito para entregar credenciales temporales con privilegios limitados a su aplicación, de modo que sus usuarios puedan acceder a los recursos. AWS Los grupos de identidades de Amazon Cognito admiten tanto las identidades autenticadas como las no autenticadas. Para proporcionar AWS credenciales a su aplicación, complete los siguientes pasos.
Para usar un grupo de identidades de Amazon Cognito en una aplicación de iOS, configure. AWS Amplify Para obtener más información, consulte Autenticación de Swift
Recuperación de una identidad de Amazon Cognito
Puede recuperar un identificador único de Amazon Cognito (ID de identidad) para el usuario final de inmediato si admite usuarios no autenticados o después de que haya establecido los tokens de inicio de sesión en el proveedor de credenciales si autentica a usuarios:
// Retrieve your Amazon Cognito ID [[credentialsProvider getIdentityId] continueWithBlock:^id(AWSTask *task) { if (task.error) { NSLog(@"Error: %@", task.error); } else { // the task result will contain the identity id NSString *cognitoId = task.result; } return nil; }];
nota
getIdentityId es una llamada asíncrona. Si ya hay un ID de identidad definido en el proveedor, puede llamar a credentialsProvider.identityId para recuperar la identidad, que está almacenada localmente en la caché. Sin embargo, si su proveedor no ha establecido un identificador de identidad, se credentialsProvider.identityId nil devolverán las llamadas. Para obtener más información, consulte Referencia de la API del SDK para móviles para iOS
Puede usar Amazon Cognito para entregar credenciales temporales con privilegios limitados a su aplicación para que los usuarios puedan acceder a los recursos. AWS Amazon Cognito es compatible con las identidades autenticadas y no autenticadas. Para proporcionar AWS credenciales a su aplicación, siga estos pasos.
Para usar un grupo de identidades de Amazon Cognito en una aplicación de iOS, configure. AWS Amplify Para obtener más información, consulte Autenticación de Swift
Recuperación de una identidad de Amazon Cognito
Puede recuperar un identificador único de Amazon Cognito (ID de identidad) para el usuario final de inmediato si admite usuarios no autenticados o después de que haya establecido los tokens de inicio de sesión en el proveedor de credenciales si autentica a usuarios:
// Retrieve your Amazon Cognito ID credentialsProvider.getIdentityId().continueWith(block: { (task) -> AnyObject? in if (task.error != nil) { print("Error: " + task.error!.localizedDescription) } else { // the task result will contain the identity id let cognitoId = task.result! print("Cognito id: \(cognitoId)") } return task; })
nota
getIdentityId es una llamada asíncrona. Si ya hay un ID de identidad definido en el proveedor, puede llamar a credentialsProvider.identityId para recuperar la identidad, que está almacenada localmente en la caché. Sin embargo, si su proveedor no ha establecido un identificador de identidad, se credentialsProvider.identityId nil devolverán las llamadas. Para obtener más información, consulte Referencia de la API del SDK para móviles para iOS
Si todavía no lo ha hecho, cree un grupo de identidades en la consola de Amazon CognitofromCognitoIdentityPool.
Después de configurar un grupo de identidades con sus proveedores de identidad, puede usar la fromCognitoIdentityPool función del @aws-sdk/credential-providers paquete para autenticar a los usuarios. En lugar de establecer una configuración globalAWS.config.credentials, asocie el proveedor de credenciales directamente a cada cliente de servicio a través de su credentials propiedad. La versión 3 del SDK resuelve el problema del proveedor de forma perezosa la primera vez que el cliente realiza una solicitud, por lo que no existe una llamada independiente para obtener las credenciales. En el siguiente ejemplo, se asocia el proveedor a un: S3Client
import { S3Client } from "@aws-sdk/client-s3"; import { fromCognitoIdentityPool } from "@aws-sdk/credential-providers"; // Set the region where your identity pool exists (for example, us-east-1 or eu-west-1) const region = "REGION"; // Attach the credentials provider to your service client const client = new S3Client({ region, credentials: fromCognitoIdentityPool({ identityPoolId: "IDENTITY_POOL_ID", logins: { // optional tokens, used for authenticated login "graph.facebook.com": "FBTOKEN", "www.amazon.com": "AMAZONTOKEN", "accounts.google.com": "GOOGLETOKEN", "appleid.apple.com": "APPLETOKEN" }, clientConfig: { region }, }), }); // Credentials are resolved lazily when the client first makes a request. // To inspect them directly, call the provider and await the result // (from inside an async function): const credentials = await client.config.credentials(); const { accessKeyId, secretAccessKey, sessionToken } = credentials;
La propiedad opcional logins es un mapeo entre los nombres de los proveedores de identidad y los tokens de identidad de los proveedores. La forma de obtener el token del proveedor de identidad depende del proveedor que se utilice. Por ejemplo, si Facebook es uno de sus proveedores de identidad, puede utilizar la función FB.login del SDK de Facebook
FB.login(function (response) { if (response.authResponse) { // logged in const region = "us-east-1"; const client = new S3Client({ region, credentials: fromCognitoIdentityPool({ identityPoolId: "us-east-1:1699ebc0-7900-4099-b910-2df94f52a030", logins: { "graph.facebook.com": response.authResponse.accessToken }, clientConfig: { region }, }), }); console.log('You are now logged in.'); } else { console.log('There was a problem logging you in.'); } });
Recuperación de una identidad de Amazon Cognito
Puede recuperar un identificador único de Amazon Cognito (ID de identidad) para su usuario final. Si permite la entrada de usuarios no autenticados, puede recuperarlo inmediatamente. Si autentica a los usuarios, recupérelos después de configurar los identificadores de inicio de sesión. El fromCognitoIdentityPool proveedor expone las identityId credenciales que resuelve para que puedas leerlas a partir de las credenciales resueltas de un cliente que utilice el proveedor:
// Inside an async function: const { identityId } = await client.config.credentials();
Puede usar Amazon Cognito para entregar credenciales temporales con privilegios limitados a su aplicación, de modo que sus usuarios puedan acceder a los recursos. AWS Amazon Cognito es compatible con las identidades autenticadas y no autenticadas. Para proporcionar AWS credenciales a su aplicación, siga estos pasos.
El AWS SDK para Unity ahora forma parte de SDK para .NET. Para empezar a utilizar Amazon Cognito en SDK para .NET, consulte el proveedor de credenciales de Amazon Cognito en AWS SDK para .NET la Guía para desarrolladores. O consulta Amplify Dev Center
Recuperación de una identidad de Amazon Cognito
Puede recuperar un identificador único de Amazon Cognito (ID de identidad) para el usuario final de inmediato si admite usuarios no autenticados o después de que haya establecido los tokens de inicio de sesión en el proveedor de credenciales si autentica a usuarios:
string identityId = await credentials.GetIdentityIdAsync();