Usar o Amazon Cognito para autenticação - Amazon Location Service

Usar o Amazon Cognito para autenticação

Você pode usar a autenticação do Amazon Cognito como alternativa ao uso direto dos usuários do AWS Identity and Access Management (IAM) com SDKs de frontend e solicitações de SDK.

O Amazon Cognito fornece autenticação, autorização e gerenciamento de usuários para suas aplicações web e móveis. Você pode usar bancos de identidades não autenticados do Amazon Cognito com o Amazon Location como uma forma de os aplicativos recuperarem credenciais temporárias da AWS com escopo reduzido.

Para obter mais informações, consulte Introdução aos Grupos de Usuários no Guia do Desenvolvedor do Amazon Cognito.

Talvez você queira usar essa forma de autenticação pelos seguintes motivos:

  • Usuários não autenticados: se você tiver um site com usuários anônimos, poderá usar os bancos de identidades do Amazon Cognito.

    Para obter mais informações, consulte a seção em Usar o Amazon Cognito para autenticação.

  • Sua própria autenticação: se você quiser usar seu próprio processo de autenticação ou combinar vários métodos de autenticação, você pode usar as Identidades Federadas do Amazon Cognito.

    Para obter mais informações, consulte Conceitos básicos das identidades federadas no Guia do desenvolvedor do Amazon Cognito.

Usar o Amazon Cognito e o Amazon Location Service

Você pode usar políticas do AWS Identity and Access Management (IAM) associadas a funções de identidade não autenticadas com as seguintes ações:

Maps

Lista de ações dos mapas

  • geo-maps:GetStaticMap

  • geo-maps:GetTile

nota

Os nomes dos recursos para as ações acima são:

arn:aws:geo-maps:region::provider/default
Places

Lista de ações de locais:

  • geo-places:Geocode

  • geo-places:ReverseGeocode

  • geo-places:SearchNearby

  • geo-places:SearchText

  • geo-places:Autocomplete

  • geo-places:Suggest

  • geo-places:GetPlace

nota

Os nomes dos recursos para as ações acima são:

arn:aws:geo-places:region::provider/default
Routes

Lista de ações de rotas:

  • geo-routes:CalculateRoutes

  • geo-routes:CalculateRouteMatrix

  • geo-routes:CalculateIsolines

  • geo-routes:OptimizeWaypoints

  • geo-routes:SnapToRoads

nota

Os nomes dos recursos para as ações acima são:

arn:aws:geo-routes:region::provider/default
Geofences and Trackers

Lista de ações de geocercas e rastreadores

  • geo:GetGeofence

  • geo:ListGeofences

  • geo:PutGeofence

  • geo:BatchDeleteGeofence

  • geo:BatchPutGeofence

  • geo:BatchEvaluateGeofences

  • geo:GetDevicePosition*

  • geo:ListDevicePositions

  • geo:BatchDeleteDevicePositionHistory

  • geo:BatchGetDevicePosition

  • geo:BatchUpdateDevicePosition

nota

Os nomes dos recursos para as ações acima são:

arn:aws:geo:region:accountID:tracker/ExampleTracker
Previous version

Lista de ações da versão anterior:

  • geo:GetMap*

  • geo:SearchPlaceIndexForText

  • geo:SearchPlaceIndexForPosition

  • geo:GetPlace

  • geo:CalculateRoute

  • geo:CalculateRouteMatrix

nota

Os nomes dos recursos para as ações acima são:

Mapas

arn:aws:geo:region:accountID:map/ExampleMap

Locais

arn:aws:geo:region:accountID:place-index/ExamplePlaceIndex

Rotas

arn:aws:geo:region:accountID:route-calculator/ExampleCalculator

Como criar um banco de identidades do Amazon Cognito

Você pode criar bancos de identidades do Amazon Cognito para permitir acesso de convidados não autenticados ao seu aplicativo pelo console do Amazon Cognito, a AWS CLI, ou as APIs do Amazon Cognito.

Importante

O banco que você cria deve estar na mesma região Conta da AWS e AWS dos recursos do Amazon Location Service que você está usando.

Console

Para criar um banco de identidades usando o console do Amazon Cognito

  1. Acesse o console do Amazon Cognito.

  2. Selecione Gerenciar grupos de identidades.

  3. Selecione Criar novo banco de identidades e, em seguida, insira um nome para seu banco de identidades.

  4. Na seção expansível Identidades não autenticadas, selecione Habilitar acesso a identidades não autenticadas.

  5. Selecione Criar grupo.

  6. Escolha quais perfis do IAM você deseja utilizar com seu banco de identidades.

  7. Expanda Exibir detalhes.

  8. Em Identidades não autenticadas, insira um nome de perfil.

  9. Expanda a seção Exibir documento da política e selecione Editar para adicionar sua política.

  10. Adicione sua política para conceder acesso aos seus recursos.

    nota

    Consulte a seção Usar o Amazon Cognito e o Amazon Location Service acima para obter uma lista de ações.

    { "Version": "2012-10-17", "Statement": [ { Sid": "RoutesReadOnly", Effect": "Allow", Action": [ // add comma separated value from the previous section ], Resource": "value from previous section" } ] }
  11. Selecione Permitir para criar seus bancos de identidades.

Usar banco de identidades do Amazon Cognito na web

O exemplo a seguir troca o banco de identidades não autenticado que você criou por credenciais que são então usadas para chamar CalculateIsolines. Para simplificar esse trabalho, o exemplo usa os procedimentos de Como usar auxiliares de autenticação do Amazon Location Service. Isso serve tanto para obter as credenciais quanto para atualizá-las.

Este exemplo usa o SDK da AWS para JavaScript v3.

import { GeoRoutesClient, CalculateIsolinesCommand , } from "@aws-sdk/client-geo-routes"; // ES Modules import import { withIdentityPoolId } from "@aws/amazon-location-utilities-auth-helper"; const identityPoolId = "<identity pool ID>"; // for example, us-east-1:1sample4-5678-90ef-aaaa-1234abcd56ef const authHelper = await withIdentityPoolId(identityPoolId); const client = new GeoRoutesClient({ ...authHelper.getClientConfig(), region: "<region>", // The region containing the identity pool }); const input = { DepartNow: true, TravelMode: "Car", Origin: [-123.12327, 49.27531], Thresholds: { Time: [5, 10, 30], }, }; const command = new CalculateIsolinesCommand(input); const response = await client.send(command); console.log(JSON.stringify(response, null, 2))