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á.
Permitindo acesso de convidado não autenticado às aplicações usando o Amazon Cognito.
Você pode usar a autenticação do Amazon Cognito como alternativa ao uso direto AWS Identity and Access Management (IAM) com SDKs de front-end e solicitações diretas de HTTPS.
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 Permitindo acesso de convidado não autenticado às aplicações usando o Amazon Cognito..
-
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.
O Amazon Cognito fornece autenticação, autorização e gerenciamento de usuários para suas aplicações Web e móveis. Você pode usar grupos de identidade não autenticados do Amazon Cognito com o Amazon Location como uma forma de os aplicativos recuperarem credenciais temporárias com escopo reduzido. AWS
Para obter mais informações, consulte Introdução aos Grupos de Usuários no Guia do Desenvolvedor do Amazon Cognito.
nota
Para desenvolvedores móveis, o Amazon Location fornece SDKs de autenticação móvel para iOS e Android. Consulte os seguintes repositórios do github para obter mais informações:
Como criar um grupo de identidades do Amazon Cognito
Você pode criar grupos de identidade do Amazon Cognito para permitir o acesso de convidados não autenticados ao seu aplicativo por meio do console do Amazon Cognito, do ou das APIs AWS CLIdo Amazon Cognito.
Importante
O pool que você cria deve estar na mesma Conta da AWS AWS região dos recursos do Amazon Location Service que você está usando.
Você pode usar políticas do IAM associadas a funções de identidade não autenticadas com as seguintes ações:
-
geo:GetMap*
-
geo:SearchPlaceIndex*
-
geo:GetPlace
-
geo:CalculateRoute*
-
geo:GetGeofence
-
geo:ListGeofences
-
geo:PutGeofence
-
geo:BatchDeleteGeofence
-
geo:BatchPutGeofence
-
geo:BatchEvaluateGeofences
-
geo:GetDevicePosition*
-
geo:ListDevicePositions
-
geo:BatchDeleteDevicePositionHistory
-
geo:BatchGetDevicePosition
-
geo:BatchUpdateDevicePosition
A inclusão de outras ações do Amazon Location não terá efeito, e identidades não autenticadas não poderão chamá-las.
Para criar um banco de identidades usando o console do Amazon Cognito
-
Acesse o console do Amazon Cognito
. -
Selecione Gerenciar grupos de identidades.
-
Selecione Criar novo banco de identidades e, em seguida, insira um nome para seu banco de identidades.
-
Na seção expansível Identidades não autenticadas, selecione Habilitar acesso a identidades não autenticadas.
-
Selecione Criar grupo.
-
Escolha quais perfis do IAM você deseja utilizar com seu banco de identidades.
-
Expanda Exibir detalhes.
-
Em Identidades não autenticadas, insira um nome de perfil.
-
Expanda a seção Exibir documento da política e selecione Editar para adicionar sua política.
-
Adicione sua política para conceder acesso aos seus recursos.
Veja a seguir exemplos de políticas para mapas, lugares, rastreadores e rotas. Para utilizar os exemplos na sua própria política, substitua os marcadores de posição
Região
eID da conta
:nota
Embora os grupos de identidade não autenticados sejam destinados à exposição em sites da Internet não seguros, observe que eles serão trocados por credenciais padrão com limite de tempo. AWS
É importante definir corretamente o escopo dos perfis do IAM associados aos bancos de identidades não autenticados.
-
Selecione Permitir para criar seus bancos de identidades.
O banco de identidades resultante segue a sintaxe <
region
>:<GUID
>.
Por exemplo: .
us-east-1:1sample4-5678-90ef-aaaa-1234abcd56ef
Para obter mais exemplos de políticas específicas para Amazon Location, consulte Exemplos de políticas baseadas em identidade do Amazon Location Service.
Usando os grupos de identidade do Amazon Cognito em JavaScript
O exemplo a seguir troca o pool de identidade não autenticado que você criou por credenciais que são usadas para buscar o descritor de estilo para seu recurso de mapa. ExampleMap
const AWS = require("aws-sdk"); const credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: "<identity pool ID>" // for example, us-east-1:1sample4-5678-90ef-aaaa-1234abcd56ef }); const client = new AWS.Location({ credentials, region: AWS.config.region || "<region>" }); console.log(await client.getMapStyleDescriptor("
ExampleMap
").promise());
nota
As credenciais recuperadas de identidades não autenticadas são válidas por uma hora.
Veja a seguir um exemplo de uma função que renova automaticamente as credenciais antes que elas expirem.
async function refreshCredentials() { await credentials.refreshPromise(); // schedule the next credential refresh when they're about to expire setTimeout(refreshCredentials, credentials.expireTime - new Date()); }
Para simplificar esse trabalho, você pode usar o Amazon Location JavaScript Auxiliar de autenticação. Isso serve tanto para obter as credenciais quanto para atualizá-las. Este exemplo usa o AWS SDK para JavaScript v3.
import { LocationClient, GetMapStyleDescriptorCommand } from "@aws-sdk/client-location"; import { withIdentityPoolId } from "@aws/amazon-location-utilities-auth-helper"; const identityPoolId = "<identity pool ID>"; // for example, us-east-1:1sample4-5678-90ef-aaaa-1234abcd56ef // Create an authentication helper instance using credentials from Cognito const authHelper = await withIdentityPoolId(identityPoolId); const client = new LocationClient({ region: "<region>", // The region containing both the identity pool and tracker resource ...authHelper.getLocationClientConfig(), // Provides configuration required to make requests to Amazon Location }); const input = { MapName: "ExampleMap", }; const command = new GetMapStyleDescriptorCommand(input); console.log(await client.send(command));
Próximas etapas
-
Para modificar funções, consulte o console do IAM
. -
Para gerenciar seus bancos de identidades, acesse o console do Amazon Cognito
.