Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Skenario umum
catatan
Kami menyarankan Anda meminta pengguna manusia untuk menggunakan kredenSIAL sementara saat mengakses AWS. Sudahkah Anda mempertimbangkan untuk menggunakan AWS IAM Identity Center? Anda dapat menggunakan Pusat Identitas IAM untuk secara terpusat mengelola akses ke beberapa Akun AWS dan menyediakan akses masuk MFA-protected tunggal kepada pengguna ke semua akun yang ditugaskan dari satu tempat. Dengan IAM Identity Center, Anda dapat membuat dan mengelola identitas pengguna di Pusat Identitas IAM atau dengan mudah terhubung ke penyedia identitas yang kompatibel dengan SAML 2.0 yang ada. Untuk informasi selengkapnya, lihat Apa itu Pusat Identitas IAM? dalam Panduan Pengguna AWS IAM Identity Center .
Anda dapat menggunakan penyedia identitas eksternal (IdP) untuk mengelola identitas pengguna di luar AWS dan IdP eksternal. IdP eksternal dapat memberikan informasi identitas untuk AWS menggunakan OpenID Connect (OIDC) atau Security Assertion Markup Language (SAML). OIDC umumnya digunakan ketika aplikasi yang tidak berjalan AWS membutuhkan akses ke AWS sumber daya.
Bila Anda ingin mengonfigurasi federasi dengan IdP eksternal, Anda membuat penyedia identitas IAM untuk menginform asikan AWS tentang IdP eksternal dan konfigurasinya. Ini membangun kepercayaan antara Anda Akun AWS dan IdP eksternal. Topik berikut menyediakan skenario umum untuk menggunakan penyedia identitas IAM.
Amazon Cognito untuk aplikasi seluler
Cara yang lebih disukai untuk menggunakan federasi OIDC adalah dengan menggunakan Amazon Cognito.
Untuk mengaktifkan aplikasi seluler mengakses AWS sumber dayanya, Adele pertama-tama mendaftar untuk ID pengembang dengan pilihannya IdPs. Dia juga mengonfigurasi aplikasi dengan setiap penyedia ini. Di dalamnya Akun AWS yang berisi bucket Amazon S3 dan tabel DynamoDB untuk game tersebut, Adele menggunakan Amazon Cognito untuk membuat peran IAM yang secara tepat menentukan izin yang dibutuhkan game. Jika dia menggunakan IDC IdP, dia juga membuat entitas penyedia identitas IAM OIDC untuk membangun kepercayaan antara kumpulan identitas Amazon Cognito di dirinya dan IdP. Akun AWS
Dalam kode aplikasi, Adele memanggil antarmuka masuk untuk IdP yang sudah dikonfigurasi sebelumnya. IdP menangani semua detail yang memungkinkan pengguna masuk, dan aplikasi mendapatkan akses token OAuth atau token ID OIDC dari penyedia. Aplikasi Adele dapat menukar informasi otentikasi ini dengan satu set kredenSIAL keamanan sementara yang terdiri dari ID kunci AWS akses, kunci akses rahasia, dan token sesi. Aplikasi kemudian dapat menggunakan kredenSIAL ini untuk mengakses layanan web yang ditawarkan oleh AWS. Aplikasi ini terbatas dengan izin yang ditentukan dalam peran yang sudah diasumsikan.
Gambar berikut menunjukkan alur cara kerja yang disederhanakan, menggunakan Login with Amazon sebagai IdP. Untuk Langkah 2, aplikasi juga dapat menggunakan Facebook, Google, atau OIDC-compatible IdP apa pun, tetapi itu tidak ditampilkan di sini.
-
Seorang pelanggan memulai aplikasi Anda di perangkat seluler. Aplikasi meminta pengguna untuk masuk.
-
Aplikasi menggunakan sumber daya Login with Amazon untuk menerima kredensial pengguna.
-
Aplikasi ini menggunakan operasi Amazon Cognito API
GetIddanGetCredentialsForIdentityuntuk menukar Login dengan token ID Amazon dengan token Amazon Cognito. Amazon Cognito, yang telah dikonfigurasi untuk mempercayai proyek Login dengan Amazon Anda, menghasilkan token yang ditukar dengan AWS STS kredenSIAL sesi sementara. -
Aplikasi menerima kredenSIAL keamanan sementara dari Amazon Cognito. Aplikasi Anda juga dapat menggunakan alur kerja Dasar (Klasik) di Amazon Cognito untuk mengambil token dari AWS STS penggunaan
AssumeRoleWithWebIdentity. Untuk informasi selengkapnya, lihat Alu r otentikasi kumpulan identitas (identitas federasi) di Panduan Pengembang Amazon Cognito. -
Kredensial keamanan sementara dapat digunakan oleh aplikasi untuk mengakses setiap sumber daya AWS yang diperlukan oleh aplikasi untuk beroperasi. Peran yang terkait dengan kredentif keamanan sementara dan kebijakan yang ditetapkan menentukan apa yang dapat diakses.
Gunakan proses berikut untuk mengonfigurasi aplikasi Anda agar menggunakan Amazon Cognito untuk mengotentikasi pengguna dan memberikan aplikasi Anda akses ke AWS sumber daya. Untuk langkah-langkah khusus untuk menyelesaikan skenario ini, lihat dokumentasi untuk Amazon Cognito.
-
(Opsional) Mendaftar sebagai pengembang dengan Login dengan Amazon, Facebook, Google, atau IdP yang kompatibel dengan OpenID Connect (OIDC) lainnya dan konfigurasikan satu atau lebih aplikasi dengan penyedia. Langkah ini bersifat opsional karena Amazon Cognito juga mendukung akses tidak terotentikasi (tamu) untuk pengguna Anda.
-
Buka Amazon Cognito di Konsol Manajemen AWS
. Gunakan wizard Amazon Cognito untuk membuat kumpulan identitas, yang merupakan wadah yang digunakan Amazon Cognito untuk menjaga identitas pengguna akhir tetap tertata untuk aplikasi Anda. Anda dapat berbagi kolam identitas di antara aplikasi. Saat Anda menyiapkan kolam identitas, Amazon Cognito membuat satu atau dua peran IAM (satu untuk identitas terotentikasi, dan satu untuk identitas “tamu” tidak terotentikasi) yang menentukan izin bagi pengguna Amazon Cognito. -
Integrasikan AWS
Amplify dengan aplikasi Anda, dan impor file yang diperlukan untuk menggunakan Amazon Cognito. -
Buat instance penyedia kredenSIAL Amazon Cognito, meneruskan ID kumpulan identitas, Akun AWS nomor Anda, dan Nama Sumber Daya Amazon (ARN) dari peran yang Anda kaitkan dengan kumpulan identitas. Wizard Amazon Cognito di dalam Konsol Manajemen AWS menyediakan kode sampel untuk membantu Anda memulai.
-
Saat aplikasi mengakses AWS sumber daya, berikan instance penyedia kredenSIAL ke objek klien, yang meneruskan kredentif keamanan sementara ke klien. Izin untuk kredensial didasarkan pada peran atau peran-peran yang Anda tetapkan sebelumnya.
Untuk informasi selengkapnya, lihat berikut ini:
-
Masuk (Android)
di Dokumentasi Ker AWS Amplify angka Kerja. -
Masuk (iOS)
di Dokumentasi Ker AWS Amplify angka Kerja.
Federasi OIDC untuk aplikasi seluler
Untuk hasil terbaik, gunakan Amazon Cognito sebagai broker identitas Anda untuk hampir semua skenario federasi OIDC. Amazon Cognito mudah digunakan dan menyediakan kemampuan tambahan seperti akses anonim (tidak terotentikasi), dan sinkronisasi data pengguna di seluruh perangkat dan penyedia. Namun, jika Anda telah membuat aplikasi yang menggunakan federasi OIDC dengan memanggil AssumeRoleWithWebIdentity API secara manual, Anda dapat terus menggunakannya dan aplikasi Anda akan tetap berfungsi dengan baik.
Proses untuk menggunakan federasi OIDC tanpa Amazon Cognito mengikuti garis besar umum ini:
-
Daftarkan diri Anda sebagai developer dengan penyedia identitas eksternal (IdP) dan konfigurasi aplikasi Anda dengan IdP, yang memberikan ID unik untuk aplikasi Anda. (Berbeda IdPs menggunakan terminologi yang berbeda untuk proses ini. Garis besar ini menggunakan istilah konfigurasi untuk proses mengidentifikasi aplikasi Anda dengan IdP.) Setiap IdP memberi Anda ID aplikasi yang unik untuk IdP tersebut, jadi jika Anda mengonfigurasi aplikasi yang sama dengan beberapa IdPs, aplikasi Anda akan memiliki beberapa ID aplikasi. Anda dapat mengonfigurasi beberapa aplikasi dengan setiap penyedia.
Tautan eksternal berikut memberikan informasi tentang penggunaan beberapa penyedia identitas yang umum digunakan (IdPs):
-
Tambahkan Login Facebook ke Aplikasi atau Website Anda
di situs pengembang Facebook. -
Menggunakan OAuth 2.0 untuk Login (OpenID Connect)
di situs developer Google.
penting
Jika Anda menggunakan penyedia identitas OIDC dari Google, Facebook, atau Amazon Cognito, jangan membuat penyedia identitas IAM terpisah di. Konsol Manajemen AWS AWS memiliki penyedia identitas OIDC ini bawaan dan tersedia untuk Anda gunakan. Lewati langkah ini dan langsung buat peran baru menggunakan penyedia identitas Anda.
-
Jika Anda menggunakan IdP selain Google, Facebook, atau Amazon Cognito yang kompatibel dengan OIDC, buat entitas penyedia identitas IAM untuk itu.
-
Di dalam IAM, buat satu atau beberapa peran. Untuk setiap peran, tentukan siapa yang dapat mengambil peran (kebijakan kepercayaan) dan izin apa yang dimiliki pengguna aplikasi (kebijakan izin). Biasanya, Anda membuat satu peran untuk setiap IdP yang mendukung aplikasi. Misalnya, Anda dapat membuat peran yang diasumsikan oleh aplikasi jika pengguna masuk melalui Login dengan Amazon, peran kedua untuk aplikasi yang sama jika pengguna masuk melalui Facebook, dan peran ketiga untuk aplikasi jika pengguna masuk melalui Google. Untuk hubungan kepercayaan, tentukan IdP (like Amazon.com) sebagai
Principal(entitas tepercaya), dan sertakan yang cocok denganConditionID aplikasi yang ditetapkan IdP. Contoh peran untuk penyedia yang berbeda dijelaskan dalam Membuat peran untuk penyedia identitas pihak ketiga. -
Dalam aplikasi, autentikasi pengguna Anda dengan IdP. Spesifikasi tentang cara melakukan ini bervariasi sesuai dengan IdP yang Anda gunakan (Masuk dengan Amazon, Facebook, atau Google) dan di platform mana aplikasi Anda berjalan. Misalnya, metode otentikasi aplikasi Android dapat berbeda dari aplikasi iOS atau aplikasi JavaScript-based web.
Biasanya, jika pengguna belum masuk, IdP menampilkan halaman masuk. Setelah IdP mengautentikasi pengguna, IdP mengembalikan informasi dengan token autentikasi tentang pengguna ke aplikasi Anda. Informasi yang disertakan tergantung pada apa yang diekspos IdP dan informasi apa yang ingin dibagikan oleh pengguna. Anda dapat menggunakan informasi ini di aplikasi Anda.
-
Di aplikasi Anda, buatlah panggilan berhenti menandatangani ke
AssumeRoleWithWebIdentitytindakan untuk meminta kredensial keamanan sementara. Dalam permintaan, Anda meneruskan token otentikasi IdP dan menentukan Nama Sumber Daya Amazon (ARN) untuk peran IAM yang Anda buat untuk IdP tersebut. AWS memverifikasi bahwa token tepercaya dan valid, dan jika demikian, mengembalikan kredentif keamanan sementara ke aplikasi Anda yang memiliki izin untuk peran yang Anda beri nama dalam permintaan. Jawaban juga mencakup metadata tentang pengguna dari IdP, seperti ID pengguna unik yang dikaitkan IdP dengan pengguna. -
Menggunakan kredentif keamanan sementara dari
AssumeRoleWithWebIdentityrespons, aplikasi Anda membuat permintaan yang ditandatangani ke operasi AWS API. Informasi ID pengguna dari IdP dapat membedakan pengguna di aplikasi Anda. Misalnya, Anda dapat memasukkan objek ke folder Amazon S3 yang menyertakan ID pengguna sebagai awalan atau akhiran. Hal ini memungkinkan Anda membuat kebijakan kontrol akses yang mengunci folder sehingga hanya pengguna dengan ID tersebut yang tidak dapat mengaksesnya. Untuk informasi selengkapnya, lihat AWS STS prinsipal pengguna federasi. -
Aplikasi Anda harus menyimpan kredensial keamanan sementara sehingga Anda tidak perlu mendapatkan kredensial baru setiap kali aplikasi perlu membuat permintaan ke AWS. Secara default, kredensial akan berlaku selama satu jam. Saat kredensial kedaluwarsa (atau sebelum itu), Anda melakukan panggilan lain ke
AssumeRoleWithWebIdentityuntuk mendapatkan satu set kredensial keamanan sementara baru. Tergantung pada IdP dan cara mereka mengelola token, Anda mungkin harus menyegarkan token IdP sebelum melakukan panggilan baru keAssumeRoleWithWebIdentity, karena token IdP juga biasanya kedaluwarsa setelah waktu tetap. Jika Anda menggunakan AWS SDK untuk iOS atau AWS SDK untuk Android, Anda dapat menggunakan AmazonSTSCredentialsProvidertindakan tersebut, yang mengelola kredenSIAL sementara IAM, termasuk menyegarkannya sesuai kebutuhan.