Como autorizo o acesso às APIs do API Gateway usando escopos personalizados no Amazon Cognito?

6 minuto de leitura
0

Quero autorizar o acesso aos meus recursos de API do Amazon API Gateway usando escopos personalizados em um grupo de usuários do Amazon Cognito.

Breve descrição

Defina um servidor de recursos com escopos personalizados em seu grupo de usuários do Amazon Cognito. Em seguida, crie e configure um autorizador do Amazon Cognito para sua API do API Gateway para autenticar solicitações para seus recursos de API.

Se você tem clientes de aplicativos diferentes que precisam de níveis variados de acesso aos seus recursos de API, você pode definir escopos de acesso diferenciados. Considere quais níveis de acesso granular os diferentes clientes de aplicativos podem precisar e, em seguida, crie o design de acordo.

Resolução

Crie os seguintes pré-requisitos:

Adicione um servidor de recursos com escopos personalizados em seu grupo de usuários

1.    Abra o console do Amazon Cognito.

2.    Defina o servidor de recursos e os escopos personalizados.

3.    Depois de criar o servidor de recursos, escolha a guia Integração de aplicativos.

4.    Na seção Clientes e análises de aplicativos, selecione seu cliente de aplicativo.

5.    Na seção Interface de usuário hospedada, escolha Editar. Conclua as seguintes etapas:
Para a lista suspensa Tipos de concessão do OAuth 2.0, escolha Concessão implícita.
Na lista suspensa Escopos personalizados, escolha o escopo personalizado que você definiu.
Observação: o formato de um escopo personalizado é resourceServerIdentifier/scopeName. Quando um cliente solicita um escopo personalizado em um fluxo OAuth 2.0, a solicitação deve incluir o identificador completo do escopo nesse formato.

6.    Escolha Salvar alterações.

Se seus aplicativos móveis tiverem um componente do lado do servidor, use o fluxo de concessão de código de autorização e o Proof Key for Code Exchange (PKCE). Com o fluxo de concessão do código de autorização, os tokens ficam mais seguros e nunca são expostos diretamente ao usuário final.

Se sua configuração não contiver nenhuma lógica do lado do servidor, você poderá usar o fluxo de concessão implícito. A concessão implícita não gera tokens de atualização. Isso evita que os tokens de atualização sejam expostos ao cliente. Os tokens de atualização têm uma validade mais longa e recuperam tokens de ID e de acesso mais novos.

Importante: Não armazene os tokens de atualização em um ambiente do lado do cliente.

Para obter mais informações, consulte Terminologia das configurações do cliente do aplicativo. Para obter mais informações sobre as concessões OAuth 2.0 do grupo de usuários do Amazon Cognito, consulte Entender as concessões OAuth 2.0 do grupo de usuários do Amazon Cognito.

Criar um autorizador e integrá-lo à sua API

Para concluir as etapas a seguir, siga as instruções para integrar uma API REST com um grupo de usuários do Amazon Cognito.

1.    Para criar o autorizador, siga as instruções em Para criar um autorizador COGNITO_USER_POOLS usando o console do API Gateway.
Observação: após a criação, uma opção aparece no console para Testar seu autorizador. Isso requer um token de identidade. Para usar um token de acesso para testar sua configuração fora do console, consulte a seção Obter um token de acesso ao grupo de usuários para testes neste artigo.

2.    Para integrar o autorizador à sua API, siga as instruções em Para configurar um autorizador COGNITO_USER_POOLS em métodos.
Observação: para Escopos OAuth, insira o identificador completo de um escopo personalizado no formato resourceServerIdentifier/ScopeName.

3.    Implante sua API.

Obter um token de acesso ao pool de usuários para testes

Use a interface de usuário hospedada na web para seu grupo de usuários para fazer login e recuperar um token de acesso do servidor de autorização do Amazon Cognito. Ou use as implementações de endpoint OAuth 2.0 que estão disponíveis nos SDKs da AWS móveis e web para recuperar um token de acesso.

Observação: quando um cliente do aplicativo solicita autenticação por meio da interface web hospedada, a solicitação pode incluir qualquer combinação de escopos reservados pelo sistema ou escopos personalizados. Se o cliente não solicitar nenhum escopo, o servidor de autenticação retornará um token de acesso que contém todos os escopos associados ao cliente. Ao criar seu cliente de aplicativo, certifique-se de que o cliente inclua os escopos pretendidos na solicitação para evitar a concessão de permissões desnecessárias.

1.    Insira o seguinte URL em seu navegador da web:
https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl
Observação: substitua yourDomainPrefix e region pelos valores do seu grupo de usuários. Encontre-os no console do Amazon Cognito na guia Nome de domínio do seu grupo de usuários.
Substitua yourClientId pelo ID do seu cliente do aplicativo e substitua redirectURL pelo URL de retorno de chamada do seu cliente do aplicativo. Encontre-os no console na guia Configurações do cliente do aplicativo para seu grupo de usuários. Para obter mais informações, consulte Endpoint de login.

2.    Faça login no seu grupo de usuários como o usuário que você criou.

3.    Copie o token de acesso do URL na barra de endereço. O token é uma longa sequência de caracteres após access_token=.

Chamar sua API como um teste

Como teste, use o token de acesso como o valor do cabeçalho de autorização para chamar sua API usando o token de acesso. Você pode usar o aplicativo Postman (no site do Postman) ou o comando curl em uma interface de linha de comando. Para obter mais informações sobre curl, consulte o site do projeto curl.

Para usar o curl, execute o seguinte comando:

curl https://restApiId.execute-api.region.amazonaws.com/stageName/resourceName -H "Authorization: accessToken"

Observação: substitua restAPIid pelo ID da API. Substitua region pela região da AWS da sua API. Substitua stageName pelo nome do estágio em que sua API está implantada. Substitua resourceName pelo nome do recurso da API. Substitua accessToken pelo token que você copiou. Para obter mais informações, consulte Como invocar uma API REST no Amazon API Gateway.

Quando você configura tudo corretamente, você recebe um código de resposta 200 OK.

Informações relacionadas

Configurar um cliente de aplicativo de grupo de usuários

Escopo do token de acesso (Estrutura de Autorização OAuth 2.0)

AWS OFICIAL
AWS OFICIALAtualizada há um ano