Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erlauben des nicht authentifizierten Gastzugriffs auf Ihre Anwendung mit Amazon Cognito
Sie können die Amazon Cognito-Authentifizierung als Alternative zur direkten Verwendung von AWS Identity and Access Management (IAM) sowohl mit Frontend-SDKs als auch mit direkten HTTPS-Anfragen verwenden.
Sie können diese Form der Authentifizierung aus folgenden Gründen verwenden:
-
Nicht authentifizierte Benutzer – Wenn Sie eine Website mit anonymen Benutzern haben, können Sie Amazon Cognito-Identitätspools verwenden. Weitere Informationen finden Sie im Abschnitt auf Erlauben des nicht authentifizierten Gastzugriffs auf Ihre Anwendung mit Amazon Cognito.
-
Ihre eigene Authentifizierung – Wenn Sie Ihren eigenen Authentifizierungsprozess verwenden oder mehrere Authentifizierungsmethoden kombinieren möchten, können Sie Amazon Cognito Federated Identities verwenden. Weitere Informationen finden Sie unter Erste Schritte mit Verbundidentitäten im Amazon Cognito-Entwicklerhandbuch.
Amazon Cognito bietet Authentifizierung, Autorisierung und Benutzerverwaltung für Web- und mobile Apps. Sie können nicht authentifizierte Amazon Cognito-Identitätspools mit Amazon Location verwenden, um Anwendungen zu ermöglichen, temporäre, begrenzte AWS Anmeldeinformationen abzurufen.
Weitere Informationen finden Sie unter Erste Schritte mit Benutzerpools im Amazon Cognito-Entwicklerhandbuch.
Anmerkung
Für Entwickler von Mobilgeräten stellt Amazon Location SDKs für die mobile Authentifizierung sowohl für iOS als auch für Android bereit. Weitere Informationen finden Sie in den folgenden Github-Repositorys:
Amazon-Cognito-Identitätspool erstellen
Sie können Amazon Cognito-Identitätspools erstellen, um nicht authentifizierten Gastzugriff auf Ihre Anwendung über die Amazon Cognito-Konsole, die AWS CLIoder die Amazon Cognito-APIs zu ermöglichen.
Wichtig
Der von Ihnen erstellte Pool muss sich in demselben AWS-Konto und derselben AWS Region befinden wie die von Ihnen verwendeten Amazon Location Service-Ressourcen.
Sie können IAM-Richtlinien, die nicht authentifizierten Identitätsrollen zugeordnet sind, mit den folgenden Aktionen verwenden:
-
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
Das Einschließen anderer Amazon Location-Aktionen hat keine Auswirkungen und nicht authentifizierte Identitäten können sie nicht aufrufen.
So erstellen Sie einen Identitäten-Pool mit der Amazon Cognito-Konsole
-
Melden Sie sich bei der Amazon-Cognito-Konsole
an. -
Klicken Sie auf Manage Identity Pools (Identitäten-Pools verwalten).
-
Wählen Sie Neuen Identitäten-Pool erstellen und geben Sie dann einen Namen für Ihren Identitäten-Pool ein.
-
Wählen Sie im Abschnitt Einklappbare nicht authentifizierte Identitäten die Option Zugriff auf nicht authentifizierte Identitäten aktivieren aus.
-
Wählen Sie Pool erstellen.
-
Wählen Sie aus, welche IAM-Rollen Sie mit Ihrem Identitäten-Pool verwenden möchten.
-
Erweitern Sie Details anzeigen.
-
Geben Sie unter Nicht authentifizierte Identitäten einen Rollennamen ein.
-
Erweitern Sie den Abschnitt Richtliniendokument anzeigen und wählen Sie dann Bearbeiten, um Ihre Richtlinie hinzuzufügen.
-
Fügen Sie Ihre Richtlinie hinzu, um Zugriff auf Ihre -Ressourcen zu gewähren.
Im Folgenden finden Sie Richtlinienbeispiele für Karten, Orte, Tracker und Routen. Um die Beispiele für Ihre eigene Richtlinie zu verwenden, ersetzen Sie die Platzhalter
region
undaccountID
:Anmerkung
Während nicht authentifizierte Identitätspools für die Offenlegung auf ungesicherten Websites vorgesehen sind, beachten Sie, dass sie gegen standardmäßige, zeitlich begrenzte AWS Anmeldeinformationen ausgetauscht werden.
Es ist wichtig, die IAM-Rollen, die nicht authentifizierten Identitätspools zugeordnet sind, entsprechend einzugrenzen.
-
Wählen Sie Zulassen, um Ihre Identitätspools zu erstellen.
Der resultierende Identitätspool folgt der Syntax <
region
>:<GUID
>.
Beispielsweise:
us-east-1:1sample4-5678-90ef-aaaa-1234abcd56ef
Weitere Beispiele für Amazon Location finden Sie unter Beispiele für identitätsbasierte Richtlinien für Amazon Location Service.
Verwenden der Amazon Cognito-Identitätspools in JavaScript
Im folgenden Beispiel wird der von Ihnen erstellte nicht authentifizierte Identitätspool gegen Anmeldeinformationen ausgetauscht, die dann zum Abrufen des Stildeskriptors für Ihre Kartenressource verwendet werdenExampleMap
.
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());
Anmerkung
Abrufen von Anmeldeinformationen von nicht authentifizierten Identitäten sind eine Stunde lang gültig.
Im Folgenden finden Sie ein Beispiel für eine Funktion, die Anmeldeinformationen automatisch erneuert, bevor sie ablaufen.
async function refreshCredentials() { await credentials.refreshPromise(); // schedule the next credential refresh when they're about to expire setTimeout(refreshCredentials, credentials.expireTime - new Date()); }
Um diese Arbeit zu vereinfachen, können Sie den Amazon Location verwendenJavaScript Authentifizierungshelfer. Dies ersetzt sowohl das Abrufen der Anmeldeinformationen als auch deren Aktualisierung. In diesem Beispiel wird das AWS SDK für JavaScript v3 verwendet.
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));
Nächste Schritte
-
Um Ihre Rollen zu ändern, wechseln Sie zur IAM-Konsole
. -
Um Ihre Identitätspools zu verwalten, gehen Sie zur Amazon Cognito-Konsole
.