

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á.

# Acessando Serviços da AWS usando um pool de identidades após o login
<a name="amazon-cognito-integrating-user-pools-with-identity-pools"></a>

Depois que seus usuários entrarem com um grupo de usuários, eles poderão acessar Serviços da AWS com credenciais de API temporárias emitidas de um grupo de identidades.

Sua aplicação web ou móvel recebe tokens de um grupo de usuários. Quando você configura seu grupo de usuários como um provedor de identidade para seu grupo de identidades, o grupo de identidades troca tokens por AWS credenciais temporárias. Essas credenciais podem ser definidas de acordo com as funções do IAM e suas políticas, que dão aos usuários acesso a um conjunto limitado de AWS recursos. Para obter mais informações, consulte [Fluxo de autenticação dos bancos de identidades](authentication-flow.md).

O diagrama a seguir mostra como uma aplicação faz login com um grupo de usuários, recupera as credenciais do banco de identidades e solicita um ativo de um AWS service (Serviço da AWS).

![\[Um diagrama de fluxo de um aplicativo que se autentica com um grupo de usuários do Amazon Cognito e autoriza o acesso AWS a recursos com um grupo de identidades.\]](http://docs.aws.amazon.com/pt_br/cognito/latest/developerguide/images/access-services-identity-pool.png)


Você pode usar as credenciais do banco de identidades para:
+ Fazer solicitações de autorização detalhadas para o Amazon Verified Permissions com as próprias credenciais do seu usuário.
+ Conecte-se a uma API REST do Amazon API Gateway ou a uma API AWS AppSync GraphQL que autorize conexões com o IAM.
+ Conectar-se a um backend de banco de dados, como Amazon DynamoDB ou Amazon RDS, que autoriza conexões com o IAM.
+ Recuperar ativos da aplicação de um bucket do Amazon S3.
+ Inicie uma sessão com um desktop WorkSpaces virtual da Amazon.

Os bancos de identidades não operam exclusivamente em uma sessão autenticada com um grupo de usuários. Eles também aceitam autenticação diretamente de provedores de identidades de terceiros e podem gerar credenciais para usuários convidados não autenticados.

Para obter mais informações sobre o uso de grupos de identidades junto com grupos de grupos de usuários para controlar o acesso aos seus AWS recursos, consulte [Como adicionar grupos a um grupo de usuários](cognito-user-pools-user-groups.md) [Controle de acesso com base em perfil](role-based-access-control.md) e. Além disso, para obter mais informações sobre grupos de identidades e AWS Identity and Access Management, consulte[Fluxo de autenticação dos bancos de identidades](authentication-flow.md).

## Configurando um grupo de usuários com o Console de gerenciamento da AWS
<a name="amazon-cognito-integrating-user-pools-with-identity-pools-setting-up"></a>

Crie um grupo de usuários do Amazon Cognito e anote o **ID de grupos de usuários** e o **ID do cliente da aplicação** de cada uma das suas aplicações clientes. Para obter mais informações sobre como criar grupos de usuários, consulte [Conceitos básicos dos grupos de usuários](getting-started-user-pools.md).

## Configurando um pool de identidades com o Console de gerenciamento da AWS
<a name="amazon-cognito-integrating-user-pools-with-identity-pools-configuring"></a>

O procedimento a seguir descreve como usar o Console de gerenciamento da AWS para integrar um grupo de identidades a um ou mais grupos de usuários e aplicativos clientes.

**Como adicionar um provedor de identidades (IdP) de grupos de usuários do Amazon Cognito**

1. Selecione **Bancos de identidades** no [console do Amazon Cognito](https://console.aws.amazon.com/cognito/home). Selecione um banco de identidades.

1. Selecione a guia **Acesso do usuário**.

1. Selecione **Adicionar provedor de identidade**.

1. Selecione **Grupo de usuários do Amazon Cognito**.

1. Insira um **ID de grupo de usuários** e um **ID de cliente de aplicativo**.

1. Para alterar o perfil que o Amazon Cognito solicita ao emitir credenciais para usuários que se autenticaram com esse provedor, defina **Configurações de perfil**.

   1. Você pode conceder aos usuários desse IdP o **Perfil padrão** que você configurou ao definir seu **Perfil autenticado** ou **Escolher perfil com regras**. Com um IdP de grupo de usuários do Amazon Cognito, você também pode **Escolher perfil com a reivindicação preferred\$1role em tokens**. Para ter mais informações sobre a declaração `cognito:preferred_role`, consulte [Como atribuir valores de precedência a grupos](cognito-user-pools-user-groups.md#assigning-precedence-values-to-groups).

      1. Se você escolheu **Escolher perfil com regras**, insira a **Declaração** de origem da autenticação do usuário, o **Operador** pelo qual você deseja comparar a reivindicação à regra, o **Valor** que gerará uma correspondência com essa opção de perfil e o **Perfil** que você deseja atribuir quando houver correspondência com a **Atribuição de perfil**. Selecione **Adicionar outra** para criar uma regra adicional com base em uma condição diferente.

      1. Se você selecionar **Escolher perfil com a reivindicação preferred\$1role em tokens**, o Amazon Cognito emitirá credenciais para o perfil na reivindicação do usuário `cognito:preferred_role`. Se nenhuma reivindicação de perfil preferencial estiver presente, o Amazon Cognito emitirá credenciais com base na **Resolução de função**.

   1. Selecione uma **Resolução de perfil**. Quando as declarações do usuário não correspondem às suas regras, você pode negar ou emitir credenciais para seu **Perfil autenticado**.

1. Para alterar as tags de identidade principal que o Amazon Cognito atribui ao emitir credenciais para usuários que se autenticaram com esse provedor, configure **Atributos para controle de acesso**.
   + Para não aplicar nenhuma tag de entidade principal, selecione **Inativo**.
   + Para aplicar tags de entidade principal com base em declarações `sub` e `aud`, selecione **Usar mapeamentos padrão**.
   + Para criar seu próprio esquema personalizado de atributos para as tags de entidade principal, selecione **Usar mapeamentos personalizados**. Depois, insira a **Chave de tag** que você deseja obter de cada **declaração** e representar em uma tag.

1. Selecione **Salvar alterações**.

## Como integrar um grupo de usuários com um grupo de identidades
<a name="amazon-cognito-integrating-user-pools-with-identity-pools-using"></a>

Depois que o usuário do aplicativo for autenticado, adicione o token de identidade desse usuário ao mapa de logins no provedor de credenciais. O nome do provedor dependerá do ID do grupo de usuários do Amazon Cognito. Ele terá a seguinte estrutura:

```
cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>
```

Você pode derivar o valor de a *<region>* partir da **ID do grupo de usuários**. Por exemplo, se o ID do grupo de usuários for`us-east-1_EXAMPLE1`, então *<region>* é`us-east-1`. Se o ID do grupo de usuários for`us-west-2_EXAMPLE2`, então *<region>* é`us-west-2`.

------
#### [ JavaScript ]

```
var cognitoUser = userPool.getCurrentUser();

if (cognitoUser != null) {
	cognitoUser.getSession(function(err, result) {
		if (result) {
			console.log('You are now logged in.');

			// Add the User's Id Token to the Cognito credentials login map.
			AWS.config.credentials = new AWS.CognitoIdentityCredentials({
				IdentityPoolId: 'YOUR_IDENTITY_POOL_ID',
				Logins: {
					'cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>': result.getIdToken().getJwtToken()
				}
			});
		}
	});
}
```

------
#### [ Android ]

```
cognitoUser.getSessionInBackground(new AuthenticationHandler() {
	@Override
	public void onSuccess(CognitoUserSession session) {
		String idToken = session.getIdToken().getJWTToken();

		Map<String, String> logins = new HashMap<String, String>();
		logins.put("cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>", session.getIdToken().getJWTToken());
		credentialsProvider.setLogins(logins);
	}

});
```

------
#### [ iOS - objective-C ]

```
AWSServiceConfiguration *serviceConfiguration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:nil];
AWSCognitoIdentityUserPoolConfiguration *userPoolConfiguration = [[AWSCognitoIdentityUserPoolConfiguration alloc] initWithClientId:@"YOUR_CLIENT_ID"  clientSecret:@"YOUR_CLIENT_SECRET" poolId:@"YOUR_USER_POOL_ID"];
[AWSCognitoIdentityUserPool registerCognitoIdentityUserPoolWithConfiguration:serviceConfiguration userPoolConfiguration:userPoolConfiguration forKey:@"UserPool"];
AWSCognitoIdentityUserPool *pool = [AWSCognitoIdentityUserPool CognitoIdentityUserPoolForKey:@"UserPool"];
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 identityPoolId:@"YOUR_IDENTITY_POOL_ID" identityProviderManager:pool];
```

------
#### [ iOS - swift ]

```
let serviceConfiguration = AWSServiceConfiguration(region: .USEast1, credentialsProvider: nil)
let userPoolConfiguration = AWSCognitoIdentityUserPoolConfiguration(clientId: "YOUR_CLIENT_ID", clientSecret: "YOUR_CLIENT_SECRET", poolId: "YOUR_USER_POOL_ID")
AWSCognitoIdentityUserPool.registerCognitoIdentityUserPoolWithConfiguration(serviceConfiguration, userPoolConfiguration: userPoolConfiguration, forKey: "UserPool")
let pool = AWSCognitoIdentityUserPool(forKey: "UserPool")
let credentialsProvider = AWSCognitoCredentialsProvider(regionType: .USEast1, identityPoolId: "YOUR_IDENTITY_POOL_ID", identityProviderManager:pool)
```

------