Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mendapatkan kredensil
Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensyal hak istimewa terbatas sementara ke aplikasi Anda, sehingga pengguna dapat mengakses sumber daya. AWS Bagian ini menjelaskan cara mendapatkan kredensial dan bagaimana cara mengambil identitas Amazon Cognito dari kolam identitas.
Amazon Cognito mendukung identitas baik yang terautentikasi maupun yang tidak terautentikasi. Pengguna yang tidak diautentikasi tidak meminta agar identitas mereka diverifikasi, sehingga peran ini sesuai untuk pengguna tamu aplikasi Anda atau jika pengguna meminta agar identitas mereka diverifikasi dan itu tidak dipermasalahkan. Pengguna yang diautentikasi masuk ke aplikasi Anda melalui penyedia identitas pihak ketiga, atau kolam pengguna, yang memverifikasi identitas mereka. Pastikan Anda menjangkau izin sumber daya dengan tepat sehingga Anda tidak memberikan akses kepada mereka dari pengguna yang tidak terautentikasi.
Identitas Amazon Cognito identitas bukan kredensial. Mereka ditukar dengan kredensil menggunakan dukungan federasi identitas web di (). AWS Security Token Service AWS STS Untuk mendapatkan AWS kredensi bagi pengguna aplikasi Anda, gunakan penyedia kredensi kumpulan AWS identitas Cognito SDK Anda. Misalnya, dalam AWS SDK for JavaScript (v3), gunakan fromCognitoIdentityPool fungsi dari paket. @aws-sdk/credential-providers Identitas kemudian ditukar dengan kredensi menggunakan. AWS STS
Penyedia kredensial identitas web adalah bagian dari rantai penyedia kredensi default di SDK. AWS Untuk mengatur token kumpulan identitas Anda dalam config file lokal untuk AWS
SDK atau file AWS CLI, tambahkan entri web_identity_token_file profil. Lihat Mengasumsikan penyedia kredensi peran dalam Panduan Referensi AWS SDK dan Alat.
Untuk mempelajari lebih lanjut tentang cara mengisi kredensil identitas web di SDK Anda, lihat panduan pengembang SDK. Untuk hasil terbaik, mulailah proyek Anda dengan integrasi kumpulan identitas yang ada di dalamnya AWS Amplify.
AWS Sumber daya SDK untuk mendapatkan dan menyetel kredensional dengan kumpulan identitas
-
Federasi Kolam Identitas
(Android) di Amplify Dev Center -
Federasi Kolam Identitas
(iOS) di Amplify Dev Center -
Menggunakan Identitas Amazon Cognito untuk mengautentikasi pengguna di Panduan Pengembang AWS SDK untuk JavaScript
-
Penyedia kredensi Amazon Cognito di Panduan Pengembang AWS SDK untuk .NET
-
Tentukan Kredensil Secara Terprogram di Panduan Pengembang AWS SDK untuk Go
-
Menyediakan kredensi sementara dalam kode di Panduan Pengembang AWS SDK for Java 2.x
-
asumsikan RoleWithWebIdentityCredentialProvider penyedia dalam Panduan AWS SDK untuk PHP Pengembang
-
Asumsikan Peran Dengan Penyedia Identitas Web
dalam AWS SDK untuk Python (Boto3) dokumentasi -
Menentukan kredensi dan wilayah default Anda di Panduan Pengembang AWS SDK for Rust
Bagian berikut memberikan contoh kode di beberapa AWS SDK lama.
Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensyal hak istimewa terbatas sementara ke aplikasi Anda, sehingga pengguna dapat mengakses sumber daya. AWS Amazon Cognito mendukung identitas baik yang terautentikasi maupun yang tidak terautentikasi. Untuk memberikan AWS kredensi ke aplikasi Anda, ikuti langkah-langkah berikut.
Untuk menggunakan kumpulan identitas Amazon Cognito di aplikasi Android, siapkan. AWS Amplify Untuk informasi selengkapnya, lihat Otentikasi
Mengambil identitas Amazon Cognito
Jika Anda mengizinkan pengguna yang tidak diautentikasi, Anda dapat segera mengambil pengidentifikasi Amazon Cognito (ID identitas) unik untuk pengguna akhir Anda. Jika Anda mengautentikasi pengguna, Anda dapat mengambil ID identitas setelah menyetel token masuk di penyedia kredensial:
String identityId = credentialsProvider.getIdentityId(); Log.d("LogTag", "my ID is " + identityId);
catatan
Jangan panggil getIdentityId(), refresh(), atau getCredentials() di thread utama aplikasi Anda. Mulai Android 3.0 (API Level 11), aplikasi Anda akan secara otomatis gagal dan melempar file NetworkOnMainThreadExceptionAsyncTask. Untuk informasi lebih lanjut, lihat dokumentasi AndroidgetCachedIdentityId() untuk menarik ID, tetapi hanya jika hal tersebut sudah di-cache secara lokal. Jika tidak, metode ini akan memberikan nilai null.
Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensyal hak istimewa terbatas sementara ke aplikasi Anda, sehingga pengguna dapat mengakses sumber daya. AWS Kolam identitas Amazon Cognito mendukung identitas terautetikasi dan tidak terautentikasi. Untuk memberikan AWS kredensi ke aplikasi Anda, selesaikan langkah-langkah berikut.
Untuk menggunakan kumpulan identitas Amazon Cognito di aplikasi iOS, siapkan. AWS AmplifyUntuk informasi selengkapnya, lihat Otentikasi Swift dan Otentikasi
Mengambil identitas Amazon Cognito
Anda dapat segera menarik pengidentifikasi Amazon Cognito unik (ID identitas) untuk pengguna akhir Anda jika Anda mengizinkan pengguna yang tidak diautentikasi atau setelah Anda menyetel token login di penyedia kredensial jika Anda mengautentikasi pengguna:
// Retrieve your Amazon Cognito ID [[credentialsProvider getIdentityId] continueWithBlock:^id(AWSTask *task) { if (task.error) { NSLog(@"Error: %@", task.error); } else { // the task result will contain the identity id NSString *cognitoId = task.result; } return nil; }];
catatan
getIdentityId adalah panggilan asinkron. Jika ID identitas telah diatur pada penyedia layanan Anda, Anda dapat menghubungi credentialsProvider.identityId untuk menarik identitas itu, yang di-cache secara di lokasi tersebut. Namun, jika ID identitas tidak disetel pada penyedia Anda, panggilan akan credentialsProvider.identityId dikembalikannil. Untuk informasi selengkapnya, lihat referensi Amplify iOS SDK
Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensyal hak istimewa terbatas sementara ke aplikasi Anda sehingga pengguna dapat mengakses sumber daya. AWS Amazon Cognito mendukung identitas baik yang terautentikasi maupun yang tidak terautentikasi. Untuk memberikan AWS kredensi ke aplikasi Anda, ikuti langkah-langkah berikut.
Untuk menggunakan kumpulan identitas Amazon Cognito di aplikasi iOS, siapkan. AWS Amplify Untuk informasi selengkapnya, lihat Otentikasi Swift
Mengambil identitas Amazon Cognito
Anda dapat segera menarik pengidentifikasi Amazon Cognito unik (ID identitas) untuk pengguna akhir Anda jika Anda mengizinkan pengguna yang tidak diautentikasi atau setelah Anda menyetel token login di penyedia kredensial jika Anda mengautentikasi pengguna:
// Retrieve your Amazon Cognito ID credentialsProvider.getIdentityId().continueWith(block: { (task) -> AnyObject? in if (task.error != nil) { print("Error: " + task.error!.localizedDescription) } else { // the task result will contain the identity id let cognitoId = task.result! print("Cognito id: \(cognitoId)") } return task; })
catatan
getIdentityId adalah panggilan asinkron. Jika ID identitas telah diatur pada penyedia layanan Anda, Anda dapat menghubungi credentialsProvider.identityId untuk menarik identitas itu, yang di-cache secara di lokasi tersebut. Namun, jika ID identitas tidak disetel pada penyedia Anda, panggilan akan credentialsProvider.identityId dikembalikannil. Untuk informasi selengkapnya, lihat referensi Amplify iOS SDK
Jika Anda belum membuatnya, buat kolam identitas di Konsol Amazon CognitofromCognitoIdentityPool.
Setelah mengonfigurasi kumpulan identitas dengan penyedia identitas, Anda dapat menggunakan fromCognitoIdentityPool fungsi dari @aws-sdk/credential-providers paket untuk mengautentikasi pengguna. Daripada menetapkan globalAWS.config.credentials, lampirkan penyedia kredensyal langsung ke setiap klien layanan melalui propertinyacredentials. SDK v3 menyelesaikan penyedia dengan malas saat pertama kali klien membuat permintaan, jadi tidak ada panggilan terpisah untuk mendapatkan kredensyal. Contoh berikut melampirkan penyedia ke: S3Client
import { S3Client } from "@aws-sdk/client-s3"; import { fromCognitoIdentityPool } from "@aws-sdk/credential-providers"; // Set the region where your identity pool exists (for example, us-east-1 or eu-west-1) const region = "REGION"; // Attach the credentials provider to your service client const client = new S3Client({ region, credentials: fromCognitoIdentityPool({ identityPoolId: "IDENTITY_POOL_ID", logins: { // optional tokens, used for authenticated login "graph.facebook.com": "FBTOKEN", "www.amazon.com": "AMAZONTOKEN", "accounts.google.com": "GOOGLETOKEN", "appleid.apple.com": "APPLETOKEN" }, clientConfig: { region }, }), }); // Credentials are resolved lazily when the client first makes a request. // To inspect them directly, call the provider and await the result // (from inside an async function): const credentials = await client.config.credentials(); const { accessKeyId, secretAccessKey, sessionToken } = credentials;
Properti opsional logins adalah peta nama penyedia identitas untuk token identitas bagi penyedia tersebut. Bagaimana Anda bisa mendapatkan token dari penyedia identitas Anda tergantung pada penyedia yang Anda gunakan. Misalnya, jika Facebook adalah salah satu penyedia identitas Anda, Anda dapat menggunakan fungsi FB.login dari SDK Facebook
FB.login(function (response) { if (response.authResponse) { // logged in const region = "us-east-1"; const client = new S3Client({ region, credentials: fromCognitoIdentityPool({ identityPoolId: "us-east-1:1699ebc0-7900-4099-b910-2df94f52a030", logins: { "graph.facebook.com": response.authResponse.accessToken }, clientConfig: { region }, }), }); console.log('You are now logged in.'); } else { console.log('There was a problem logging you in.'); } });
Mengambil identitas Amazon Cognito
Anda dapat mengambil pengenal Amazon Cognito (ID identitas) unik untuk pengguna akhir Anda. Jika Anda mengizinkan pengguna yang tidak diautentikasi, Anda dapat segera mengambilnya. Jika Anda mengautentikasi pengguna, ambil setelah Anda mengatur token login. fromCognitoIdentityPoolPenyedia mengekspos kredensyal yang diselesaikannya, sehingga Anda dapat membacanya dari kredensi klien yang diselesaikan yang menggunakan penyedia: identityId
// Inside an async function: const { identityId } = await client.config.credentials();
Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensyal hak istimewa terbatas sementara ke aplikasi Anda, sehingga pengguna dapat mengakses sumber daya. AWS Amazon Cognito mendukung identitas baik yang terautentikasi maupun yang tidak terautentikasi. Untuk memberikan AWS kredensi ke aplikasi Anda, ikuti langkah-langkah berikut.
AWS SDK for Unity sekarang menjadi bagian dari. SDK untuk .NET Untuk memulai dengan Amazon Cognito di SDK untuk .NET, lihat Penyedia kredensyal Amazon Cognito di Panduan Pengembang. AWS SDK untuk .NET Atau lihat Amplify Dev Center
Mengambil identitas Amazon Cognito
Anda dapat segera menarik pengidentifikasi Amazon Cognito unik (ID identitas) untuk pengguna akhir Anda jika Anda mengizinkan pengguna yang tidak diautentikasi atau setelah Anda menyetel token login di penyedia kredensial jika Anda mengautentikasi pengguna:
string identityId = await credentials.GetIdentityIdAsync();