

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
<a name="getting-credentials"></a>

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. A maneira recomendada para obter credenciais da AWS para os usuários da sua aplicação é usar `AWS.CognitoIdentityCredentials`. A identidade no objeto de credenciais é então trocada por credenciais usando. AWS STS

**nota**  
Se você criou o banco de identidades antes de fevereiro de 2015, precisará associar novamente os perfis ao banco de identidades para usar o construtor `AWS.CognitoIdentityCredentials` sem os perfis como parâmetros. Para isso, abra o [Console do Amazon Cognito](https://console.aws.amazon.com/cognito/home), escolha **Gerencie grupos de identidades**, selecione seu banco de identidades, escolha **Editar grupo de identidades**, especifique suas funções autenticadas e não autenticadas e salve as alterações. 

Os provedores de credenciais de identidade da Web fazem parte da cadeia de provedores de credenciais padrão em. 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](https://docs.aws.amazon.com/sdkref/latest/guide/feature-assume-role-credentials.html) no Guia de referência de ferramentas 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**
+ [Federação de bancos de identidades](https://docs.amplify.aws/lib/auth/advanced/q/platform/android/#identity-pool-federation) (Android) no Amplify Dev Center
+ [Federação de bancos de identidades](https://docs.amplify.aws/lib/auth/advanced/q/platform/ios/#identity-pool-federation) (iOS) no Amplify Dev Center
+ [Usando o Amazon Cognito Identity para autenticar usuários no Guia](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/loading-browser-credentials-cognito.html) do desenvolvedor AWS SDK para JavaScript 
+ [Provedor de credenciais do Amazon Cognito no Guia](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/cognito-creds-provider.html) do desenvolvedor AWS SDK para .NET 
+ [Especifique as credenciais programaticamente no Guia](https://aws.github.io/aws-sdk-go-v2/docs/configuring-sdk/#specify-credentials-programmatically) do desenvolvedor AWS SDK para Go 
+ [Forneça credenciais temporárias em código](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-explicit.html) no Guia do AWS SDK for Java 2.x desenvolvedor
+ [assumeRoleWithWebIdentityCredentialProvider](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials_provider.html#assume-role-with-web-identity-provider)provedor no Guia do AWS SDK para PHP desenvolvedor
+ [Assumir o perfil de provedor de identidades na web](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html#assume-role-with-web-identity-provider) na documentação do  AWS SDK para Python (Boto3) 
+ [Especificando suas credenciais e a região padrão no Guia](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/credentials.html) do desenvolvedor AWS SDK para Rust 

As seções a seguir fornecem exemplos de código em algumas versões antigas AWS SDKs.

## Android
<a name="getting-credentials-1.android"></a>

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 para seu aplicativo, siga as etapas abaixo.

Para usar um pool de identidade do Amazon Cognito em um aplicativo Android, configure. AWS Amplify Para ter mais informações, consulte [Autenticação](https://docs.amplify.aws/lib/auth/getting-started/q/platform/android/) 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, [NetworkOnMainThreadException](https://developer.android.com/reference/android/os/NetworkOnMainThreadException.html)se 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](https://developer.android.com/training/basics/network-ops/connecting.html#AsyncTask). 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. 

## iOS – Objective-C
<a name="getting-credentials-1.ios-objc"></a>

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](https://docs.amplify.aws/lib/auth/getting-started/q/platform/ios/) e [Autenticação do Flutter](https://docs.amplify.aws/lib/auth/getting-started/q/platform/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 configurado no provedor, chamar `credentialsProvider.identityId` retornará `nil`. Para obter mais informações, consulte a [Referência do Amplify iOS SDK](https://github.com/aws-amplify/aws-sdk-ios). 

## iOS – Swift
<a name="getting-credentials-1.ios-swift"></a>

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 para seu aplicativo, siga as etapas abaixo. 

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](https://docs.amplify.aws/lib/auth/getting-started/q/platform/ios/) 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 configurado no provedor, chamar `credentialsProvider.identityId` retornará `nil`. Para obter mais informações, consulte a [Referência do Amplify iOS SDK](https://github.com/aws-amplify/aws-sdk-ios). 

## JavaScript
<a name="getting-credentials-1.javascript"></a>

Se você ainda não tiver criado, crie um grupo de identidades no [console do Amazon Cognito](https://console.aws.amazon.com/cognito) antes de usar `AWS.CognitoIdentityCredentials`.

Depois de configurar um grupo de identidades com seus provedores de identidades, você poderá usar `AWS.CognitoIdentityCredentials` para autenticar usuários. Para configurar as credenciais de seu aplicativo para usar `AWS.CognitoIdentityCredentials`, defina a propriedade `credentials` do `AWS.Config` ou uma configuração por serviço. O exemplo a seguir usa `AWS.Config`: 

```
// Set the region where your identity pool exists (us-east-1, eu-west-1)
AWS.config.region = 'us-east-1';

// Configure the credentials provider to use your identity pool
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    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'
    }
});

// Make the call to obtain credentials
AWS.config.credentials.get(function(){

    // Credentials will be available when this function is called.
    var accessKeyId = AWS.config.credentials.accessKeyId;
    var secretAccessKey = AWS.config.credentials.secretAccessKey;
    var sessionToken = AWS.config.credentials.sessionToken;

});
```

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](https://developers.facebook.com/docs/facebook-login/web) para obter um token de provedor de identidade: 

```
FB.login(function (response) {
    if (response.authResponse) { // logged in
        AWS.config.credentials = new AWS.CognitoIdentityCredentials({
          IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030',
          Logins: {
            'graph.facebook.com': response.authResponse.accessToken
          }
        });

        console.log('You are now logged in.');
    } else {
        console.log('There was a problem logging you in.');
    }
});
```

**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:

```
var identityId = AWS.config.credentials.identityId;
```

## Unity
<a name="getting-credentials-1.unity"></a>

 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 para seu aplicativo, siga as etapas abaixo. 

O [AWS SDK for Unity](https://docs.aws.amazon.com/mobile/sdkforunity/developerguide/what-is-unity-plugin.html) agora faz parte do [SDK para .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/welcome.html). Para começar a usar o Amazon Cognito no SDK para .NET, consulte o provedor de [credenciais do Amazon Cognito](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/cognito-creds-provider.html) no Guia do desenvolvedor. AWS SDK para .NET Ou consulte o [Amplify Dev Center](https://docs.amplify.aws/) 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: 

```
credentials.GetIdentityIdAsync(delegate(AmazonCognitoIdentityResult<string> result) {
    if (result.Exception != null) {
        //Exception!
    }
    string identityId = result.Response;
});
```

## Xamarin
<a name="getting-credentials-1.xamarin"></a>

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 para seu aplicativo, siga as etapas abaixo.

O [AWS SDK for Xamarin](https://docs.aws.amazon.com/mobile/sdkforxamarin/developerguide/Welcome.html) agora faz parte do [SDK para .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/welcome.html). Para começar a usar o Amazon Cognito no SDK para .NET, consulte o provedor de [credenciais do Amazon Cognito](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/cognito-creds-provider.html) no Guia do desenvolvedor. AWS SDK para .NET Ou consulte o [Amplify Dev Center](https://docs.amplify.aws/) para obter opções para criar um aplicativo com. AWS Amplify

**nota**  
 **Observação:** se você criou o grupo de identidades antes de fevereiro de 2015, precisa reassociar as funções ao grupo de identidades para usar esse construtor sem as funções como parâmetros. Para isso, abra o [Console do Amazon Cognito](https://console.aws.amazon.com/cognito/home), escolha **Manage identity pools** (Gerenciar grupos de identidades), selecione seu grupo de identidades, escolha **Edit Identity Pool** (Editar grupo de identidades), especifique suas funções autenticadas e não autenticadas e salve as alterações. 

**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: 

```
var identityId = await credentials.GetIdentityIdAsync();
```