Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Izinkan akses tamu yang tidak diautentikasi ke aplikasi Anda menggunakan Amazon Cognito
Anda dapat menggunakan otentikasi Amazon Cognito sebagai alternatif untuk langsung menggunakan AWS Identity and Access Management (IAM) dengan permintaan front end SDKs dan langsung. HTTPS
Anda mungkin ingin menggunakan bentuk otentikasi ini karena alasan berikut:
-
Pengguna yang tidak diautentikasi — Jika Anda memiliki situs web dengan pengguna anonim, Anda dapat menggunakan kumpulan identitas Amazon Cognito. Untuk informasi lebih lanjut, lihat bagian diIzinkan akses tamu yang tidak diautentikasi ke aplikasi Anda menggunakan Amazon Cognito.
-
Otentikasi Anda sendiri — Jika Anda ingin menggunakan proses otentikasi Anda sendiri, atau menggabungkan beberapa metode otentikasi, Anda dapat menggunakan Identitas Federasi Amazon Cognito. Untuk informasi selengkapnya, lihat Memulai Identitas Federasi di Panduan Pengembang Amazon Cognito.
Amazon Cognito menyediakan otentikasi, otorisasi, dan manajemen pengguna untuk aplikasi web dan seluler. Anda dapat menggunakan kumpulan identitas Amazon Cognito yang tidak diautentikasi dengan Lokasi Amazon sebagai cara bagi aplikasi untuk mengambil kredenal sementara yang tercakup ke bawah. AWS
Untuk informasi selengkapnya, lihat Memulai Kumpulan Pengguna di Panduan Pengembang Amazon Cognito.
catatan
Untuk pengembang seluler, Amazon Location menyediakan otentikasi seluler SDKs untuk iOS dan Android, lihat GitHub repositori berikut untuk informasi selengkapnya:
Buat kumpulan identitas Amazon Cognito
Anda dapat membuat kumpulan identitas Amazon Cognito untuk mengizinkan akses tamu yang tidak diautentikasi ke aplikasi Anda melalui konsol Amazon Cognito, the, atau AWS CLI Amazon Cognito. APIs
penting
Kumpulan yang Anda buat harus sama Akun AWS dan AWS Wilayah sebagai sumber daya Amazon Location Service yang Anda gunakan.
Anda dapat menggunakan IAM kebijakan yang terkait dengan peran identitas yang tidak diautentikasi dengan tindakan berikut:
-
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
Menyertakan tindakan Lokasi Amazon lainnya tidak akan berpengaruh, dan identitas yang tidak diautentikasi tidak akan dapat memanggilnya.
Untuk membuat kumpulan identitas menggunakan konsol Amazon Cognito
-
Masuk ke Konsol Amazon Cognito
. -
Pilih Kelola Kolam Identitas.
-
Pilih Buat kumpulan identitas baru, lalu masukkan nama untuk kumpulan identitas Anda.
-
Dari bagian Identitas tidak diautentikasi yang dapat dilipat, pilih Aktifkan akses ke identitas yang tidak diautentikasi.
-
Pilih Buat kolam.
-
Pilih IAM peran mana yang ingin Anda gunakan dengan kumpulan identitas Anda.
-
Perluas Lihat Detail.
-
Di bawah Identitas tidak diautentikasi, masukkan nama peran.
-
Perluas bagian Lihat Dokumen Kebijakan, lalu pilih Edit untuk menambahkan kebijakan Anda.
-
Tambahkan kebijakan Anda untuk memberikan akses ke sumber daya Anda.
Berikut ini adalah contoh kebijakan untuk Peta, Tempat, Pelacak, dan Rute. Untuk menggunakan contoh untuk kebijakan Anda sendiri, ganti
region
andaccountID
placeholder:catatan
Meskipun kumpulan identitas yang tidak diautentikasi dimaksudkan untuk eksposur di situs internet yang tidak aman, perhatikan bahwa mereka akan ditukar dengan kredensi standar dan terbatas waktu. AWS
Penting untuk mencakup IAM peran yang terkait dengan kumpulan identitas yang tidak diautentikasi dengan tepat.
-
Pilih Izinkan untuk membuat kumpulan identitas Anda.
Kumpulan identitas yang dihasilkan mengikuti sintaks <
region
>:<GUID
>.
Sebagai contoh:
us-east-1:1sample4-5678-90ef-aaaa-1234abcd56ef
Untuk contoh kebijakan lainnya khusus untuk Lokasi Amazon, lihatContoh kebijakan berbasis identitas untuk Amazon Location Service.
Gunakan kumpulan identitas Amazon Cognito di JavaScript
Contoh berikut menukar kumpulan identitas tidak diautentikasi yang telah Anda buat untuk kredensi yang kemudian digunakan untuk mengambil deskriptor gaya untuk sumber daya peta Anda 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());
catatan
Kredensi yang diambil dari identitas yang tidak diautentikasi berlaku selama satu jam.
Berikut ini adalah contoh fungsi yang secara otomatis memperbarui kredensi sebelum kedaluwarsa.
async function refreshCredentials() { await credentials.refreshPromise(); // schedule the next credential refresh when they're about to expire setTimeout(refreshCredentials, credentials.expireTime - new Date()); }
Untuk menyederhanakan pekerjaan ini, Anda dapat menggunakan Lokasi JavaScript Pembantu otentikasi Amazon. Ini menggantikan keduanya mendapatkan kredensi, dan menyegarkannya. Contoh ini menggunakan AWS SDK for 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));
Langkah selanjutnya
-
Untuk memodifikasi peran Anda, buka IAMkonsol
. -
Untuk mengelola kumpulan identitas Anda, buka konsol Amazon Cognito
.