View a markdown version of this page

Como obter credenciais - Amazon Cognito

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Como obter credenciais

Você pode usar o Amazon Cognito para fornecer credenciais temporárias com privilégios limitados ao seu aplicativo, para que seus usuários possam acessar os recursos. AWS Esta seção descreve como obter credenciais e como recuperar uma identidade do Amazon Cognito de um grupo de identidades.

O Amazon Cognito é compatível com identidades autenticadas e não autenticadas. Usuários não autenticados não têm a identidade verificada, tornando essa função apropriada para usuários convidados de seu aplicativo ou nos casos em que não importa se os usuários têm suas identidades verificadas. Os usuários autenticados fazem login na aplicação por meio de um provedor de identidades de terceiros ou de um grupo de usuários, que verifica as identidades. Certifique-se de definir o escopo das permissões dos recursos de forma apropriada para que você não conceda acesso a eles a partir de usuários não autenticados.

As identidades do Amazon Cognito não são credenciais. Eles são trocados por credenciais usando o suporte à federação de identidade da web no AWS Security Token Service ()AWS STS. Para obter AWS credenciais para os usuários do seu aplicativo, use o provedor de credenciais do grupo de identidade Cognito do AWS SDK. Por exemplo, no AWS SDK para JavaScript (v3), use a fromCognitoIdentityPool função do @aws-sdk/credential-providers pacote. A identidade é então trocada por credenciais usando. AWS STS

Os provedores de credenciais de identidade da web fazem parte da cadeia de provedores de credenciais padrão nos AWS  SDKs. Para definir seu token do grupo de identidades em um config arquivo local para um AWS SDK ou para o AWS CLI, adicione uma entrada web_identity_token_file de perfil. Consulte Assumir a função de provedor de credenciais no Guia de referência de AWS SDKs e ferramentas.

Para saber mais sobre como preencher credenciais de identidade da web em seu SDK, consulte o guia do desenvolvedor do SDK. Para obter melhores resultados, inicie seu projeto com a integração do pool de identidades incorporada ao AWS Amplify.

AWS Recursos do SDK para obter e definir credenciais com grupos de identidades

As seções a seguir fornecem exemplos de código em alguns AWS SDKs legados.

Você pode usar o Amazon Cognito para fornecer credenciais temporárias com privilégios limitados ao seu aplicativo, para que seus usuários possam acessar os recursos. AWS O Amazon Cognito é compatível com identidades autenticadas e não autenticadas. Para fornecer AWS credenciais ao seu aplicativo, siga estas etapas.

Para usar um pool de identidade do Amazon Cognito em um aplicativo Android, configure. AWS Amplify Para ter mais informações, consulte Autenticação no Amplify Dev Center.

Como recuperar uma identidade do Amazon Cognito

Se você permite usuários não autenticados, pode recuperar um identificador exclusivo (ID de identidade) do Amazon Cognito para o usuário final imediatamente. Se você está autenticando usuários, pode recuperar o ID de identidade depois de configurar os tokens de login no provedor de credenciais:

String identityId = credentialsProvider.getIdentityId(); Log.d("LogTag", "my ID is " + identityId);
nota

Não chame getIdentityId(), refresh() ou getCredentials() no thread principal do aplicativo. A partir do Android 3.0 (API de nível 11), seu aplicativo falhará automaticamente e lançará um, NetworkOnMainThreadExceptionse você executar uma rede, I/O no thread principal do aplicativo. Você precisa mover o código para uma thread de fundo usando AsyncTask. Para obter mais informações, consulte a documentação do Android. Você também pode chamar getCachedIdentityId() para recuperar um ID, mas somente se já existe algum em cache localmente. Caso contrário, o método retornará null.

Você pode usar o Amazon Cognito para fornecer credenciais temporárias com privilégios limitados ao seu aplicativo, para que seus usuários possam acessar os recursos. AWS Os bancos de identidades do Amazon Cognito oferecem suporte a identidades autenticadas e não autenticadas. Para fornecer AWS credenciais ao seu aplicativo, conclua as etapas a seguir.

Para usar um pool de identidade do Amazon Cognito em um aplicativo iOS, configure. AWS Amplify Para ter mais informações, consulte Autenticação do Swift e Autenticação do Flutter no Amplify Dev Center.

Como recuperar uma identidade do Amazon Cognito

É possível recuperar um identificador exclusivo (ID de identidade) do Amazon Cognito para o usuário final imediatamente se você estiver permitindo usuários não autenticados ou depois de configurar os tokens de login no provedor de credenciais se estiver autenticando usuários:

// 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 é uma chamada assíncrona. Se um ID de identidade já estiver configurado no provedor, você pode chamar credentialsProvider.identityId para recuperar essa identidade, que é armazenada em cache localmente. No entanto, se um ID de identidade não estiver definido no seu provedor, a chamada será credentialsProvider.identityId retornadanil. Para obter mais informações, consulte a Referência do Amplify iOS SDK.

Você pode usar o Amazon Cognito para fornecer credenciais temporárias com privilégios limitados ao seu aplicativo para que seus usuários possam acessar os recursos. AWS O Amazon Cognito é compatível com identidades autenticadas e não autenticadas. Para fornecer AWS credenciais ao seu aplicativo, siga estas etapas.

Para usar um pool de identidade do Amazon Cognito em um aplicativo iOS, configure. AWS Amplify Para ter mais informações, consulte Autenticação do Swift no Amplify Dev Center.

Como recuperar uma identidade do Amazon Cognito

É possível recuperar um identificador exclusivo (ID de identidade) do Amazon Cognito para o usuário final imediatamente se você estiver permitindo usuários não autenticados ou depois de configurar os tokens de login no provedor de credenciais se estiver autenticando usuários:

// 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 é uma chamada assíncrona. Se um ID de identidade já estiver configurado no provedor, você pode chamar credentialsProvider.identityId para recuperar essa identidade, que é armazenada em cache localmente. No entanto, se um ID de identidade não estiver definido no seu provedor, a chamada será credentialsProvider.identityId retornadanil. Para obter mais informações, consulte a Referência do Amplify iOS SDK.

Se você ainda não tiver criado, crie um grupo de identidades no console do Amazon Cognito antes de usar fromCognitoIdentityPool.

Depois de configurar um grupo de identidades com seus provedores de identidade, você pode usar a fromCognitoIdentityPool função do @aws-sdk/credential-providers pacote para autenticar usuários. Em vez de definir um globalAWS.config.credentials, anexe o provedor de credenciais diretamente a cada cliente de serviço por meio de sua credentials propriedade. O SDK v3 resolve o provedor preguiçosamente na primeira vez que o cliente faz uma solicitação, portanto, não há nenhuma chamada separada para obter as credenciais. O exemplo a seguir conecta o provedor a umS3Client:

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;

A propriedade opcional logins é um mapa de nomes de provedor de identidade para os tokens de identidade para esses provedores. Como você obtém o token do seu provedor de identidade depende do provedor que usa. Por exemplo, se o Facebook for um de seus provedores de identidade, você poderá usar a FB.login função do Facebook SDK para obter um token de provedor de identidade:

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

Como recuperar uma identidade do Amazon Cognito

Você pode recuperar um identificador exclusivo do Amazon Cognito (ID de identidade) para seu usuário final. Se você permitir usuários não autenticados, poderá recuperá-los imediatamente. Se você autenticar usuários, recupere-os depois de definir os tokens de login. O fromCognitoIdentityPool provedor expõe as identityId credenciais que ele resolve, para que você possa lê-las a partir das credenciais resolvidas de um cliente que usa o provedor:

// Inside an async function: const { identityId } = await client.config.credentials();

Você pode usar o Amazon Cognito para fornecer credenciais temporárias com privilégios limitados ao seu aplicativo, para que seus usuários possam acessar os recursos. AWS O Amazon Cognito é compatível com identidades autenticadas e não autenticadas. Para fornecer AWS credenciais ao seu aplicativo, siga estas etapas.

O AWS SDK for Unity agora faz parte do SDK para .NET. Para começar a usar o Amazon Cognito no SDK para .NET, consulte o provedor de credenciais do Amazon Cognito no Guia do desenvolvedor. AWS SDK para .NET Ou consulte o Amplify Dev Center para obter opções para criar um aplicativo com. AWS Amplify

Como recuperar uma identidade do Amazon Cognito

É possível recuperar um identificador exclusivo (ID de identidade) do Amazon Cognito para o usuário final imediatamente se você estiver permitindo usuários não autenticados ou depois de configurar os tokens de login no provedor de credenciais se estiver autenticando usuários:

string identityId = await credentials.GetIdentityIdAsync();