Como acessar os serviços da AWS usando um grupo de identidades após o acesso - 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 acessar os serviços da AWS usando um grupo de identidades após o acesso

Você pode permitir que os usuários façam login com um grupo de usuários e, em seguida, acessem os serviços da AWS usando um grupo de identidades.

Depois de uma autenticação bem-sucedida, sua aplicação Web ou móvel receberá tokens do grupo de usuários do Amazon Cognito. Você pode usar esses tokens para recuperar credenciais da AWS que permitem que sua aplicação acesse outros serviços da AWS. Para obter mais informações, consulte Conceitos básicos dos grupos de identidades do Amazon Cognito (identidades federadas).


        Acessar credenciais da AWS por meio de um grupo de usuários com um grupo de identidades

Para mais informações sobre o uso dos grupos de identidades junto com grupos de usuários para controlar o acesso aos recursos da AWS, consulte Como adicionar grupos a um grupo de usuários e Controle de acesso com base em perfil. Consulte também Conceitos de grupos de identidades (identidades federadas) para obter mais informações sobre grupos de identidades e o AWS Identity and Access Management.

Como configurar um grupo de usuários com o AWS Management Console

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.

Como configurar um grupo de identidades com o AWS Management Console

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

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. Selecione um banco de identidades.

  2. Selecione a guia Acesso do usuário.

  3. Selecione Adicionar provedor de identidade.

  4. Selecione Grupo de usuários do Amazon Cognito.

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

  6. 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 atribuir 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_role em tokens. Para ter mais informações sobre a declaração cognito:preferred_role, consulte Como atribuir valores de precedência a grupos.

      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 declaração, 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.

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

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

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

    1. Para não aplicar nenhuma tag de entidade principal, selecione Inativo.

    2. Para aplicar tags de entidade principal com base em declarações sub e aud, selecione Usar mapeamentos padrão.

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

  8. Selecione Save Changes (Salvar alterações).

Como integrar um grupo de usuários com um grupo de identidades

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>

O valor de <region> equivalerá à região especificada em ID do grupo de usuários. Por exemplo, cognito-idp.us-east-1.amazonaws.com/us-east-1_123456789.

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)