Como uso grupos de identidade do Amazon Cognito para conceder aos usuários acesso aos serviços da AWS?

3 minuto de leitura
0

Quero usar grupos de usuários do Amazon Cognito para dar aos usuários acesso aos recursos da AWS.

Resolução

Você pode integrar grupos de identidade do Amazon Cognito aos grupos de usuários do Amazon Cognito para emitir credenciais temporárias para acessar os recursos da AWS. Configure um provedor de autenticação ao configurar um grupo de identidades com um grupo de usuários. Depois de autenticar um usuário por meio do grupo de usuários, use o token de identidade do usuário com um fluxo de autenticação para recuperar credenciais temporárias do grupo de identidades. Há um fluxo de autenticação básico e um fluxo de autenticação aprimorado para recuperar credenciais temporárias.

Importante: no exemplo de comandos da AWS Command Line Interface (AWS CLI) a seguir, substitua todas as instâncias de exemplos de strings pelos seus valores. (Por exemplo, substitua “example_identity_pool_id” pelo seu ID do grupo de identidades ou “abcdef” pelo ID de identidade da sua região da AWS.)

Fluxo básico

Observação: caso receba erros ao executar comandos da AWS Command Line Interface (AWS CLI), verifique se está usando a versão mais recente da AWS CLI.

Execute as seguintes etapas para recuperar credenciais temporárias da AWS usando o authflow básico:

1.    No console do Amazon Cognito antigo, escolha Manage Identity Pools (Gerenciar grupos de identidades). Selecione o nome do grupo de identidades do Amazon Cognito que você está atualizando e escolha Edit identity pool (Editar grupo de identidades). Em Authentication flow settings (Configurações de fluxo de autenticação), selecione Allow Basic (Classic) Flow (Permitir fluxo básico [clássico]) e salve as alterações.

2.    Para gerar ou recuperar uma identidade de usuário no grupo de identidades, chame a API GetId.

Um exemplo do comando get-id:

aws cognito-identity get-id --identity-pool-id "example_identity_pool_id" --logins cognito-idp.example_region.amazonaws.com/example_cognito_user_pool_id=example_cognito_user_id_token

Um exemplo de saída:

{
    "IdentityId": "region:abcdef"
}

3.    Para recuperar o token de ID aberto, use o resultado da etapa 2 para chamar a API GetOpenIdToken.

Um exemplo do comando get-open-id-token:

aws cognito-identity get-open-id-token --identity-id "region:abcdef" --logins cognito-idp.example_region.amazonaws.com/example_user_pool_id=example_cognito_user_id_token

Um exemplo de saída:

{
    "IdentityId": "region:abcdef",
    "Token": "HIJKLMN"
}

4.    Para recuperar as credenciais temporárias da função autenticada, use o token da etapa 3 para chamar a API AssumeRoleWithWebIdentity.

Um exemplo do comando assume-role-with-web-identity:

aws sts assume-role-with-web-identity --role-arn "example_auth_role_arn_of_the_identity_pool" --web-identity-token "HIJKLMN" --role-session-name "example_session_name"

Um exemplo de saída:

{
    "Credentials": {
        AccessKeyId": "xxxxxxxxxxxx",
        SecretAccessKey": "xxxxxxxxxxxx",
        SessionToken": "xxxxxxxxxxxx",
        Expiration": ""
    },
    "SubjectFromWebIdentityToken": "",
    "AssumedRoleUser": {
        "AssumedRoleId": "",
        "Arn": ""
    },
    "Provider": "cognito-identity.amazonaws.com",
    "Audience": ""
}

Fluxo aprimorado

Execute as seguintes etapas para recuperar credenciais temporárias da AWS usando o authflow aprimorado:

1.    Para gerar ou recuperar uma identidade de usuário no grupo de identidades do Amazon Cognito, chame a API GetId.

Um exemplo do comando get-id:

aws cognito-identity get-id --identity-pool-id "example_identity_pool_id" --logins cognito-idp.example_region.amazonaws.com/example_cognito_user_pool_id=example_cognito_user_id_token

Um exemplo de saída:

{
    "IdentityId": "region:abcdef"
}

2.    Para recuperar credenciais temporárias do grupo de identidades, chame a API GetCredentialsForIdentity.

Um exemplo do comando get-credentials-for-identity:

aws cognito-identity get-credentials-for-identity --identity-id region:abcdef --logins cognito-idp.example_region.amazonaws.com/example_cognito_user_pool_id = example_cognito_user_id_token

Um exemplo de saída:

{
    "IdentityId": "region:abcdef",
    "Credentials": {
        "AccessKeyId": "xxxxxxxxxx",
        "SecretKey": "xxxxxxxxxx",
        "SessionToken": "xxxxxxxxxx",
        "Expiration": ""
    }
}

Para saber mais sobre controles de acesso complexos baseados em funções e controles de acesso baseados em atributos, consulte Fine-grained access control with Amazon Cognito identity pools (Controle de acesso refinado com grupos de identidade do Amazon Cognito).


Informações relacionadas

Fluxo de autenticação dos grupos de identidades (identidades federadas)

AWS OFICIAL
AWS OFICIALAtualizada há um ano