Skenario umum - AWS Identity and Access Management

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 Anda untuk menggunakan kredensi sementara saat mengakses. AWS Sudahkah Anda mempertimbangkan untuk menggunakan AWS IAM Identity Center? Anda dapat menggunakan Pusat IAM Identitas untuk mengelola akses ke beberapa secara terpusat Akun AWS dan memberi pengguna akses masuk tunggal yang MFA dilindungi ke semua akun yang ditetapkan dari satu tempat. Dengan IAM Identity Center, Anda dapat membuat dan mengelola identitas pengguna di Pusat IAM Identitas atau dengan mudah terhubung ke penyedia identitas kompatibel SAML 2.0 yang ada. Untuk informasi lebih lanjut, lihat Apa itu Pusat IAM Identitas? dalam AWS IAM Identity Center User Guide.

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 OIDCumumnya digunakan ketika aplikasi yang tidak berjalan AWS membutuhkan akses ke AWS sumber daya.

Ketika Anda ingin mengkonfigurasi federasi dengan iDP eksternal, Anda membuat penyedia IAM identitas untuk menginformasikan AWS tentang iDP eksternal dan konfigurasinya. Ini membangun kepercayaan antara IDP Anda Akun AWS dan eksternal. Topik berikut menyediakan skenario umum untuk menggunakan penyedia IAM identitas.

Amazon Cognito untuk aplikasi seluler

Cara yang lebih disukai untuk menggunakan OIDC federasi adalah dengan menggunakan Amazon Cognito. Misalnya, Adele pengembang sedang membangun game untuk perangkat seluler di mana data pengguna seperti skor dan profil disimpan di Amazon S3 dan Amazon DynamoDB. Adele juga dapat menyimpan data ini secara lokal di perangkat dan menggunakan Amazon Cognito untuk tetap disinkronkan di seluruh perangkat. Ia tahu bahwa untuk alasan keamanan dan pemeliharaan, kredensial keamanan jangka panjang AWS tidak boleh didistribusikan bersama dengan game. Dia juga tahu bahwa game akan memiliki banyak sekali pengguna. Untuk semua alasan ini, dia tidak ingin membuat identitas pengguna baru di IAM untuk setiap pemain. Sebagai gantinya, dia membangun game sehingga pengguna dapat masuk menggunakan identitas yang telah mereka buat dengan penyedia identitas eksternal (IDP) yang terkenal, seperti Login with Amazon, Facebook, Google, atau iDP yang kompatibel dengan OpenID Connect OIDC (). Game ini bisa memanfaatkan mekanisme autentikasi dari salah satu penyedia ini untuk memvalidasi identitas pengguna.

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. Dalam dirinya Akun AWS yang berisi bucket Amazon S3 dan tabel DynamoDB untuk game, Adele menggunakan Amazon Cognito untuk membuat IAM peran yang secara tepat menentukan izin yang dibutuhkan game. Jika dia menggunakan OIDC iDP, dia juga menciptakan entitas penyedia IAM OIDC identitas untuk membangun kepercayaan antara kumpulan identitas Amazon Cognito dalam dirinya Akun AWS dan iDP.

Dalam kode aplikasi, Adele memanggil antarmuka masuk untuk IdP yang sudah dikonfigurasi sebelumnya. IDP menangani semua detail membiarkan pengguna masuk, dan aplikasi mendapatkan token OAuth akses atau token OIDC ID dari penyedia. Aplikasi Adele dapat menukar informasi otentikasi ini dengan serangkaian kredensi keamanan sementara yang terdiri dari ID kunci AWS akses, kunci akses rahasia, dan token sesi. Aplikasi kemudian dapat menggunakan kredensi 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 ini juga dapat menggunakan Facebook, Google, atau iDP OIDC yang kompatibel, tetapi itu tidak ditampilkan di sini.

Contoh alur kerja menggunakan Amazon Cognito untuk pengguna federasi untuk aplikasi seluler

  1. Seorang pelanggan memulai aplikasi Anda di perangkat seluler. Aplikasi meminta pengguna untuk masuk.

  2. Aplikasi menggunakan sumber daya Login with Amazon untuk menerima kredensial pengguna.

  3. Aplikasi ini menggunakan API operasi Amazon Cognito GetId dan GetCredentialsForIdentity untuk menukar token Login with Amazon ID dengan token Amazon Cognito. Amazon Cognito, yang telah dikonfigurasi untuk mempercayai proyek Login with Amazon Anda, menghasilkan token yang ditukar dengan kredensi sesi sementara. AWS STS

  4. Aplikasi ini menerima kredensi keamanan sementara dari Amazon Cognito. Aplikasi Anda juga dapat menggunakan alur kerja Dasar (Klasik) di Amazon Cognito untuk mengambil token dari penggunaan. AWS STS AssumeRoleWithWebIdentity Untuk informasi selengkapnya, lihat Alur autentikasi kumpulan identitas (identitas gabungan) di Panduan Pengembang Amazon Cognito.

  5. Kredensial keamanan sementara dapat digunakan oleh aplikasi untuk mengakses setiap sumber daya AWS yang diperlukan oleh aplikasi untuk beroperasi. Peran yang terkait dengan kredensi keamanan sementara dan kebijakan yang ditetapkan menentukan apa yang dapat diakses.

Gunakan proses berikut untuk mengonfigurasi aplikasi agar menggunakan Amazon Cognito guna mengautentikasi pengguna dan memberikan akses aplikasi ke resource. AWS Untuk langkah-langkah khusus untuk menyelesaikan skenario ini, lihat dokumentasi untuk Amazon Cognito.

  1. (Opsional) Daftar sebagai pengembang dengan Login with Amazon, Facebook, Google, atau OpenID Connect (OIDC) lainnya —IdP yang kompatibel dan konfigurasikan satu atau beberapa aplikasi dengan penyedia. Langkah ini bersifat opsional karena Amazon Cognito juga mendukung akses tidak terotentikasi (tamu) untuk pengguna Anda.

  2. Pergi ke Amazon Cognito di. AWS Management Console 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 kumpulan identitas, Amazon Cognito membuat satu atau dua IAM peran (satu untuk identitas yang diautentikasi, dan satu untuk identitas “tamu” yang tidak diautentikasi) yang menentukan izin untuk pengguna Amazon Cognito.

  3. Integrasikan AWSAmplify dengan aplikasi Anda, dan impor file yang diperlukan untuk menggunakan Amazon Cognito.

  4. Buat instance penyedia kredensi Amazon Cognito, dengan 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 AWS Management Console menyediakan kode contoh untuk membantu Anda memulai.

  5. Saat aplikasi Anda mengakses AWS resource, teruskan instance penyedia kredensial ke objek klien, yang meneruskan kredensi keamanan sementara ke klien. Izin untuk kredensial didasarkan pada peran atau peran-peran yang Anda tetapkan sebelumnya.

Untuk informasi selengkapnya, lihat berikut ini:

OIDCfederasi untuk aplikasi seluler

Untuk hasil terbaik, gunakan Amazon Cognito sebagai broker identitas Anda untuk hampir semua skenario OIDC federasi. 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 OIDC federasi dengan memanggil secara manual AssumeRoleWithWebIdentityAPI, Anda dapat terus menggunakannya dan aplikasi Anda akan tetap berfungsi dengan baik.

Proses untuk menggunakan OIDC federasi tanpa Amazon Cognito mengikuti garis besar umum ini:

  1. 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 identifikasi aplikasi Anda dengan iDP.) Setiap iDP memberi Anda ID aplikasi yang unik untuk IDP tersebut, jadi jika Anda mengonfigurasi aplikasi yang sama dengan beberapa aplikasi IdPs, aplikasi Anda akan memiliki beberapa aplikasi. IDs Anda dapat mengonfigurasi beberapa aplikasi dengan setiap penyedia.

    Tautan eksternal berikut memberikan informasi tentang penggunaan beberapa penyedia identitas yang umum digunakan (IdPs):

    penting

    Jika Anda menggunakan penyedia OIDC identitas dari Google, Facebook, atau Amazon Cognito, jangan membuat penyedia IAM identitas terpisah di. AWS Management Console AWS memiliki penyedia OIDC identitas ini bawaan dan tersedia untuk Anda gunakan. Lewati langkah ini dan langsung buat peran baru menggunakan penyedia identitas Anda.

  2. Jika Anda menggunakan iDP selain Google, Facebook, atau Amazon Cognito yang kompatibel OIDC dengannya, buat IAM entitas penyedia identitas untuknya.

  3. 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 diambil oleh aplikasi jika pengguna masuk melalui Login with 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 (seperti Amazon.com) sebagai Principal (entitas tepercaya), dan sertakan Condition yang sesuai dengan ID aplikasi yang ditetapkan IdP. Contoh peran untuk penyedia yang berbeda dijelaskan dalam Buat peran untuk penyedia identitas pihak ketiga (federasi).

  4. Dalam aplikasi, autentikasi pengguna Anda dengan IdP. Spesifikasi tentang cara melakukan ini bervariasi baik menurut IDP yang Anda gunakan (Login with Amazon, Facebook, atau Google) dan di platform mana aplikasi Anda berjalan. Misalnya, metode otentikasi aplikasi Android dapat berbeda dari metode aplikasi iOS atau aplikasi web JavaScript berbasis.

    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.

  5. Di aplikasi Anda, buatlah panggilan berhenti menandatangani ke AssumeRoleWithWebIdentity tindakan untuk meminta kredensial keamanan sementara. Dalam permintaan, Anda meneruskan token autentikasi IDP dan menentukan Amazon Resource Name (ARN) untuk IAM peran yang Anda buat untuk IDP tersebut. AWS memverifikasi bahwa token tersebut tepercaya dan valid dan jika demikian, mengembalikan kredensi 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.

  6. Menggunakan kredenal keamanan sementara dari AssumeRoleWithWebIdentity respons, aplikasi Anda membuat permintaan yang ditandatangani ke AWS API operasi. 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 sufiks. 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 prinsip sesi pengguna federasi.

  7. 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 AssumeRoleWithWebIdentity untuk 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 Android, Anda dapat menggunakan tindakan mazonSTSCredentialsPenyedia A, yang mengelola kredensi IAM sementara, termasuk menyegarkannya sesuai kebutuhan. AWS SDK